Virtru policy.attributes.AttributesService API

/ / Attribute Service /

OpenAPI Specification

virtru-policy-attributes-attributesservice-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: authorization authorization.AuthorizationService policy.attributes.AttributesService API
  description: '/

    / Attribute Service

    /'
security: []
tags:
- name: policy.attributes.AttributesService
  description: '/

    / Attribute Service

    /'
paths:
  /policy.attributes.AttributesService/ListAttributes:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: ListAttributes
      description: "--------------------------------------*\n Attribute RPCs\n---------------------------------------"
      operationId: policy.attributes.AttributesService.ListAttributes
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.ListAttributesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.ListAttributesResponse'
  /policy.attributes.AttributesService/ListAttributeValues:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: ListAttributeValues
      description: "Deprecated\n Use GetAttribute"
      operationId: policy.attributes.AttributesService.ListAttributeValues
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.ListAttributeValuesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.ListAttributeValuesResponse'
      deprecated: true
  /policy.attributes.AttributesService/GetAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: GetAttribute
      operationId: policy.attributes.AttributesService.GetAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.GetAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.GetAttributeResponse'
  /policy.attributes.AttributesService/GetAttributeValuesByFqns:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: GetAttributeValuesByFqns
      description: "Deprecated: Use GetKeyMappingsByFqns for client-side key splits and\n GetEntitleableAttributesByFqns for server-side entitlement resolution."
      operationId: policy.attributes.AttributesService.GetAttributeValuesByFqns
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.GetAttributeValuesByFqnsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.GetAttributeValuesByFqnsResponse'
      deprecated: true
  /policy.attributes.AttributesService/GetKeyMappingsByFqns:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: GetKeyMappingsByFqns
      description: "Returns only key-mapping information (rule and effective KAS keys) for the\n requested attribute value FQNs, for client-side key split construction."
      operationId: policy.attributes.AttributesService.GetKeyMappingsByFqns
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.GetKeyMappingsByFqnsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.GetKeyMappingsByFqnsResponse'
  /policy.attributes.AttributesService/GetEntitleableAttributesByFqns:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: GetEntitleableAttributesByFqns
      description: "Returns only entitlement-relevant information (rule, value identity, ordered\n definition values, and subject mappings) for the requested attribute value\n FQNs, for server-side decisioning / entitlement resolution."
      operationId: policy.attributes.AttributesService.GetEntitleableAttributesByFqns
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.GetEntitleableAttributesByFqnsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.GetEntitleableAttributesByFqnsResponse'
  /policy.attributes.AttributesService/CreateAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: CreateAttribute
      operationId: policy.attributes.AttributesService.CreateAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.CreateAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.CreateAttributeResponse'
  /policy.attributes.AttributesService/UpdateAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: UpdateAttribute
      operationId: policy.attributes.AttributesService.UpdateAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.UpdateAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.UpdateAttributeResponse'
  /policy.attributes.AttributesService/DeactivateAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: DeactivateAttribute
      operationId: policy.attributes.AttributesService.DeactivateAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.DeactivateAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.DeactivateAttributeResponse'
  /policy.attributes.AttributesService/GetAttributeValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: GetAttributeValue
      description: "--------------------------------------*\n Value RPCs\n---------------------------------------"
      operationId: policy.attributes.AttributesService.GetAttributeValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.GetAttributeValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.GetAttributeValueResponse'
  /policy.attributes.AttributesService/CreateAttributeValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: CreateAttributeValue
      operationId: policy.attributes.AttributesService.CreateAttributeValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.CreateAttributeValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.CreateAttributeValueResponse'
  /policy.attributes.AttributesService/UpdateAttributeValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: UpdateAttributeValue
      operationId: policy.attributes.AttributesService.UpdateAttributeValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.UpdateAttributeValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.UpdateAttributeValueResponse'
  /policy.attributes.AttributesService/DeactivateAttributeValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: DeactivateAttributeValue
      operationId: policy.attributes.AttributesService.DeactivateAttributeValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.DeactivateAttributeValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.DeactivateAttributeValueResponse'
  /policy.attributes.AttributesService/AssignKeyAccessServerToAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: AssignKeyAccessServerToAttribute
      description: 'Deprecated: utilize AssignPublicKeyToAttribute'
      operationId: policy.attributes.AttributesService.AssignKeyAccessServerToAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToAttributeResponse'
      deprecated: true
  /policy.attributes.AttributesService/RemoveKeyAccessServerFromAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: RemoveKeyAccessServerFromAttribute
      description: 'Deprecated: utilize RemovePublicKeyFromAttribute'
      operationId: policy.attributes.AttributesService.RemoveKeyAccessServerFromAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromAttributeResponse'
      deprecated: true
  /policy.attributes.AttributesService/AssignKeyAccessServerToValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: AssignKeyAccessServerToValue
      description: 'Deprecated: utilize AssignPublicKeyToValue'
      operationId: policy.attributes.AttributesService.AssignKeyAccessServerToValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToValueResponse'
      deprecated: true
  /policy.attributes.AttributesService/RemoveKeyAccessServerFromValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: RemoveKeyAccessServerFromValue
      description: 'Deprecated: utilize RemovePublicKeyFromValue'
      operationId: policy.attributes.AttributesService.RemoveKeyAccessServerFromValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromValueResponse'
      deprecated: true
  /policy.attributes.AttributesService/AssignPublicKeyToAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: AssignPublicKeyToAttribute
      operationId: policy.attributes.AttributesService.AssignPublicKeyToAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToAttributeResponse'
  /policy.attributes.AttributesService/RemovePublicKeyFromAttribute:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: RemovePublicKeyFromAttribute
      operationId: policy.attributes.AttributesService.RemovePublicKeyFromAttribute
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromAttributeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromAttributeResponse'
  /policy.attributes.AttributesService/AssignPublicKeyToValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: AssignPublicKeyToValue
      operationId: policy.attributes.AttributesService.AssignPublicKeyToValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToValueResponse'
  /policy.attributes.AttributesService/RemovePublicKeyFromValue:
    post:
      tags:
      - policy.attributes.AttributesService
      summary: RemovePublicKeyFromValue
      operationId: policy.attributes.AttributesService.RemovePublicKeyFromValue
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromValueRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromValueResponse'
components:
  schemas:
    policy.attributes.RemovePublicKeyFromValueResponse:
      type: object
      properties:
        valueKey:
          title: value_key
          description: Required
          $ref: '#/components/schemas/policy.attributes.ValueKey'
      title: RemovePublicKeyFromValueResponse
      additionalProperties: false
    policy.attributes.RemoveKeyAccessServerFromValueRequest:
      type: object
      properties:
        valueKeyAccessServer:
          title: value_key_access_server
          description: Required
          $ref: '#/components/schemas/policy.attributes.ValueKeyAccessServer'
      title: RemoveKeyAccessServerFromValueRequest
      additionalProperties: false
      description: 'Deprecated: utilize RemovePublicKeyFromValueRequest'
    policy.Algorithm:
      type: string
      title: Algorithm
      enum:
      - ALGORITHM_UNSPECIFIED
      - ALGORITHM_RSA_2048
      - ALGORITHM_RSA_4096
      - ALGORITHM_EC_P256
      - ALGORITHM_EC_P384
      - ALGORITHM_EC_P521
      - ALGORITHM_HPQT_XWING
      - ALGORITHM_HPQT_SECP256R1_MLKEM768
      - ALGORITHM_HPQT_SECP384R1_MLKEM1024
      - ALGORITHM_MLKEM_768
      - ALGORITHM_MLKEM_1024
      description: Supported key algorithms.
    policy.SubjectMapping:
      type: object
      properties:
        id:
          type: string
          title: id
        attributeValue:
          title: attribute_value
          description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"'
          $ref: '#/components/schemas/policy.Value'
        subjectConditionSet:
          title: subject_condition_set
          description: the reusable SubjectConditionSet mapped to the given Attribute Value
          $ref: '#/components/schemas/policy.SubjectConditionSet'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/policy.Action'
          title: actions
          description: The actions permitted by subjects in this mapping
        namespace:
          title: namespace
          description: "the namespace containing this subject mapping\n possible this is empty. If so that means\n the Subject Mapping has not been migrated to a namespace."
          $ref: '#/components/schemas/policy.Namespace'
        metadata:
          title: metadata
          $ref: '#/components/schemas/common.Metadata'
      title: SubjectMapping
      additionalProperties: false
      description: 'Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute

        value + action(s) combination'
    common.Metadata:
      type: object
      properties:
        createdAt:
          title: created_at
          description: created_at set by server (entity who created will recorded in an audit event)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updatedAt:
          title: updated_at
          description: updated_at set by server (entity who updated will recorded in an audit event)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        labels:
          type: object
          title: labels
          additionalProperties:
            type: string
            title: value
          description: optional short description
      title: Metadata
      additionalProperties: false
      description: Struct to uniquely identify a resource with optional additional metadata
    policy.attributes.AssignKeyAccessServerToAttributeResponse:
      type: object
      properties:
        attributeKeyAccessServer:
          title: attribute_key_access_server
          $ref: '#/components/schemas/policy.attributes.AttributeKeyAccessServer'
      title: AssignKeyAccessServerToAttributeResponse
      additionalProperties: false
    policy.attributes.AttributeKey:
      type: object
      properties:
        attributeId:
          type: string
          title: attribute_id
          format: uuid
          description: Required
        keyId:
          type: string
          title: key_id
          format: uuid
          description: Required
      title: AttributeKey
      required:
      - attributeId
      - keyId
      additionalProperties: false
    policy.attributes.AttributeValueObligationTriggerRequest:
      type: object
      properties:
        obligationValue:
          title: obligation_value
          description: Required. Existing obligation value to associate with the newly created attribute value.
          $ref: '#/components/schemas/common.IdFqnIdentifier'
        action:
          title: action
          description: Required. Action that, together with the newly created attribute value, triggers the obligation value.
          $ref: '#/components/schemas/common.IdNameIdentifier'
        context:
          title: context
          description: Optional. Request context for the obligation trigger.
          $ref: '#/components/schemas/policy.RequestContext'
        metadata:
          title: metadata
          description: Optional. Common metadata for the obligation trigger.
          $ref: '#/components/schemas/common.MetadataMutable'
      title: AttributeValueObligationTriggerRequest
      required:
      - obligationValue
      - action
      additionalProperties: false
    policy.PolicyEnforcementPoint:
      type: object
      properties:
        clientId:
          type: string
          title: client_id
          minLength: 1
      title: PolicyEnforcementPoint
      additionalProperties: false
    policy.attributes.RemovePublicKeyFromAttributeResponse:
      type: object
      properties:
        attributeKey:
          title: attribute_key
          description: Required
          $ref: '#/components/schemas/policy.attributes.AttributeKey'
      title: RemovePublicKeyFromAttributeResponse
      additionalProperties: false
    policy.attributes.GetAttributeValueResponse:
      type: object
      properties:
        value:
          title: value
          $ref: '#/components/schemas/policy.Value'
      title: GetAttributeValueResponse
      additionalProperties: false
    policy.attributes.UpdateAttributeValueResponse:
      type: object
      properties:
        value:
          title: value
          $ref: '#/components/schemas/policy.Value'
      title: UpdateAttributeValueResponse
      additionalProperties: false
    policy.attributes.AssignPublicKeyToValueRequest:
      type: object
      properties:
        valueKey:
          title: value_key
          description: Required
          $ref: '#/components/schemas/policy.attributes.ValueKey'
      title: AssignPublicKeyToValueRequest
      required:
      - valueKey
      additionalProperties: false
    policy.attributes.DeactivateAttributeValueRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required
      title: DeactivateAttributeVal

# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virtru/refs/heads/main/openapi/virtru-policy-attributes-attributesservice-api-openapi.yml