Approvals Service
Access
Access is an access request for a subject with a set of permission.
Example: Access { Subject: "organizations/demo/tenants/demo/applications/caller", Permissions: []string{"GET"} }
Field | Description | Validation Rule |
subject | string | string = { |
permissions | List of string | repeated = { |
metadata | tetrateio.api.tsb.q.v2.Metadata | – |
AccessRequest
AccessRequest is a request used for requesting or approving access to a resource.
Example: AccessRequest { Resource: "organizations/demo/tenants/demo/applications/target", Access: []Access{{ Subject: "organizations/demo/tenants/demo/applications/calling-app", Permissions: []string{"GET", "POST"} }} }
Field | Description | Validation Rule |
resource | string | string = { |
access | tetrateio.api.tsb.q.v2.Access | – |
ApprovalPolicy
ApprovalPolicy is a set of authorization rules that define access to a resource. When applied to a resource, the rules enforce access to the resource based on the permission set.
Example: ApprovalPolicy { Mode: ApprovalPolicy_REQUIRE_APPROVAL, Resource: "organizations/demo/tenants/demo/applications/target-app", Approved: []Access {{ Subject: "organizations/demo/tenants/demo/applications/calling-app", Permissions: []string{"GET", "POST"} }} }
Field | Description | Validation Rule |
mode | tetrateio.api.tsb.q.v2.ApprovalPolicy.Mode | enum = { |
resource | string | string = { |
requested | List of tetrateio.api.tsb.q.v2.Access | – |
approved | List of tetrateio.api.tsb.q.v2.Access | – |
metadata | tetrateio.api.tsb.q.v2.Metadata | – |
Mode
Name | Number | Description |
UNRESTRICTED | 0 | Allows all subjects in the same policy class to access the resource. |
ALLOW_REQUESTED | 1 | Allows only the subjects in the request and approved list to access the resource. |
REQUIRE_APPROVAL | 2 | Allows only the subjects in the approved list to access the resource. |
DeletePolicyRequest
DeletePolicyRequest is the request message for DeletePolicy.
Example: DeletePolicyRequest { Resource: "organizations/demo/tenants/demo/applications/target-app" }
Field | Description | Validation Rule |
resource | string | string = { |
GetPolicyRequest
GetPolicyRequest is the request message for GetPolicy.
Example: GetPolicyRequest { Resource: "organizations/demo/tenants/demo/applications/example" }
Field | Description | Validation Rule |
resource | string | string = { |
Metadata
Metadata includes additional information about an ApprovalPolicy or Access entity and their respective resources that they apply to.
Field | Description | Validation Rule |
details | tetrateio.api.tsb.q.v2.Metadata.Details | – |
rules | List of tetrateio.api.tsb.rbac.v2.Role.Rule | – |
Details
Details is additional information about a resource.
Field | Description | Validation Rule |
name | string | – |
description | string | – |
QueryPoliciesRequest
QueryPoliciesRequest is the request message for QueryPolicies.
Example: QueryPoliciesRequest { Parent: "organizations/demo/tenants/demo", Types: []string{"applications"}, IncludeDetails: true, IncludePermissions: true, }
Field | Description | Validation Rule |
parent | string | string = { |
types | List of string | repeated = { |
includeDetails | bool | – |
includePermissions | bool | – |
QueryPoliciesResponse
QueryPoliciesResponse is the response message for QueryPolicies.
Field | Description | Validation Rule |
policies | List of tetrateio.api.tsb.q.v2.ApprovalPolicy | – |
ResourceAndSubject
ResourceAndSubject is a resource and subject pair used for approval and deletion operations.
Example: ResourceAndSubject { Resource: "organizations/demo/tenants/demo/applications/target", Subject: "organizations/demo/tenants/demo/applications/caller" }
Field | Description | Validation Rule |
resource | string | string = { |
subject | string | string = { |