Sift Stack Principal Attribute Service API

Service to manage ABAC principal attributes.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sift-stack-principalattributeservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sift-stack-principalattributeservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sift Principal Attribute Service API
  version: '1.0'
  description: Service to manage ABAC principal attributes.
servers:
- url: https://api.siftstack.com
  description: Production
- url: https://gov.api.siftstack.com
  description: Gov
security:
- BearerAuth: []
tags:
- name: PrincipalAttributeService
  description: Service to manage ABAC principal attributes.
paths:
  /api/v1/principal-attribute-enum-values:
    post:
      summary: CreatePrincipalAttributeEnumValue
      description: Create a principal attribute enum value.
      operationId: PrincipalAttributeService_CreatePrincipalAttributeEnumValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreatePrincipalAttributeEnumValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreatePrincipalAttributeEnumValueRequest'
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-enum-values/batch-archive:
    post:
      summary: BatchArchivePrincipalAttributeEnumValues
      description: Archives multiple principal attribute enum values and migrates all principal attribute values with those enum values to their respective replacement enum values.
      operationId: PrincipalAttributeService_BatchArchivePrincipalAttributeEnumValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchArchivePrincipalAttributeEnumValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchArchivePrincipalAttributeEnumValuesRequest'
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-enum-values/batch-unarchive:
    post:
      summary: BatchUnarchivePrincipalAttributeEnumValues
      description: Unarchives multiple principal attribute enum values.
      operationId: PrincipalAttributeService_BatchUnarchivePrincipalAttributeEnumValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchUnarchivePrincipalAttributeEnumValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchUnarchivePrincipalAttributeEnumValuesRequest'
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-enum-values/{archivedEnumValueId}/archive:
    post:
      summary: ArchivePrincipalAttributeEnumValue
      description: Archives a principal attribute enum value and migrates all principal attribute values with that enum value to a replacement enum value.
      operationId: PrincipalAttributeService_ArchivePrincipalAttributeEnumValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ArchivePrincipalAttributeEnumValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: archivedEnumValueId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                replacementEnumValueId:
                  type: string
                  description: 'When the archived_enum_value_id is archived all principal attribute values that reference it will be migrated to the replacement_enum_value_id

                    if provided. Otherwise, user-attributes that reference it will be archived as well.'
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-enum-values/{principalAttributeEnumValueId}:
    get:
      summary: GetPrincipalAttributeEnumValue
      description: Retrieves a principal attribute enum value.
      operationId: PrincipalAttributeService_GetPrincipalAttributeEnumValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetPrincipalAttributeEnumValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeEnumValueId
        in: path
        required: true
        schema:
          type: string
      tags:
      - PrincipalAttributeService
    patch:
      summary: UpdatePrincipalAttributeEnumValue
      description: Updates an existing principal attribute enum value.
      operationId: PrincipalAttributeService_UpdatePrincipalAttributeEnumValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdatePrincipalAttributeEnumValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeEnumValueId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/PrincipalAttributeService_UpdatePrincipalAttributeEnumValueBody'
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-enum-values/{principalAttributeEnumValueId}/unarchive:
    post:
      summary: UnarchivePrincipalAttributeEnumValue
      description: Unarchives a principal attribute enum value.
      operationId: PrincipalAttributeService_UnarchivePrincipalAttributeEnumValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UnarchivePrincipalAttributeEnumValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeEnumValueId
        in: path
        required: true
        schema:
          type: string
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys:
    get:
      summary: ListPrincipalAttributeKeys
      description: Lists principal attribute keys.
      operationId: PrincipalAttributeService_ListPrincipalAttributeKeys
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListPrincipalAttributeKeysResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: pageSize
        description: 'The maximum number of principal attribute keys to return. The service may return fewer than this value.

          If unspecified, at most 50 principal attribute keys will be returned. The maximum value is 1000. Values

          above 1000 will be coerced to 1000. Optional.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListPrincipalAttributeKeys` call.

          Provide this to retrieve a subsequent page of principal attribute keys.

          When paginating, all other parameters provided to `ListPrincipalAttributeKeys` must match the previous call

          that provided the page token. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are:

          ''principal_attribute_key_id'', ''display_name'', ''value_type'', ''created_by_user_id'', ''created_date'', ''modified_by_user_id, ''modified_date''

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).

          For more information about the fields used for filtering, please refer to this definition. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'How to order the retrieved principal attribute keys. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...".

          Available fields to order_by are `created_date`, ''modified_date'', ''display_name'', ''principal_attribute_key_id'', ''value_type'', ''description''

          If left empty, items are ordered by `created_date` in ascending order (oldest-first).

          For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)

          Example: "created_date desc,modified_date"'
        in: query
        required: false
        schema:
          type: string
      - name: organizationId
        in: query
        required: false
        schema:
          type: string
      - name: includeArchived
        description: If true, includes archived keys. Defaulta to false. Optional.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - PrincipalAttributeService
    post:
      summary: CreatePrincipalAttributeKey
      description: Create a principal attribute key.
      operationId: PrincipalAttributeService_CreatePrincipalAttributeKey
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreatePrincipalAttributeKeyResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreatePrincipalAttributeKeyRequest'
        description: CreatePrincipalAttributeKeyRequest is used to create a new principal attribute key.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/archive:
    post:
      summary: ArchivePrincipalAttributeKeys
      description: Archive principal attribute keys.
      operationId: PrincipalAttributeService_ArchivePrincipalAttributeKeys
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ArchivePrincipalAttributeKeysResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ArchivePrincipalAttributeKeysRequest'
        description: ArchivePrincipalAttributeKeysRequest is used to batch archive principal attribute keys by id.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/unarchive:
    post:
      summary: UnarchivePrincipalAttributeKeys
      description: Unarchive principal attribute keys.
      operationId: PrincipalAttributeService_UnarchivePrincipalAttributeKeys
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UnarchivePrincipalAttributeKeysResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UnarchivePrincipalAttributeKeysRequest'
        description: UnarchivePrincipalAttributeKeysRequest is used to batch unarchive principal attribute keys by id.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/{principalAttributeKeyId}:
    get:
      summary: GetPrincipalAttributeKey
      description: Retrieves a principal attribute key.
      operationId: PrincipalAttributeService_GetPrincipalAttributeKey
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetPrincipalAttributeKeyResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeKeyId
        in: path
        required: true
        schema:
          type: string
      tags:
      - PrincipalAttributeService
    patch:
      summary: UpdatePrincipalAttributeKey
      description: Updates an existing principal attribute key.
      operationId: PrincipalAttributeService_UpdatePrincipalAttributeKey
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdatePrincipalAttributeKeyResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeKeyId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                displayName:
                  type: string
                description:
                  type: string
                updateMask:
                  type: string
                  description: The list of fields to be updated. The fields available to be updated are 'description'.
              description: UpdatePrincipalAttributeKeyRequest is used to update an existing principal attribute key.
              required:
              - updateMask
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/{principalAttributeKeyId}/archive-impact:
    get:
      summary: CheckPrincipalAttributeKeyArchiveImpact
      description: Returns the count of active user principal-attribute values that would be archived with this key, and the count of active user-group principal-attribute value rows for this key (those rows stop contributing to evaluation once the key is archived).
      operationId: PrincipalAttributeService_CheckPrincipalAttributeKeyArchiveImpact
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CheckPrincipalAttributeKeyArchiveImpactResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeKeyId
        in: path
        required: true
        schema:
          type: string
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/{principalAttributeKeyId}/enum-values:
    get:
      summary: ListPrincipalAttributeEnumValues
      description: Lists principal attribute enum values for a given principal attribute key.
      operationId: PrincipalAttributeService_ListPrincipalAttributeEnumValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListPrincipalAttributeEnumValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeKeyId
        in: path
        required: true
        schema:
          type: string
      - name: pageSize
        description: 'The maximum number of enum values to return. The service may return fewer than this value.

          If unspecified, at most 50 enum values will be returned. The maximum value is 100; values above

          100 will be coerced to 100.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListPrincipalAttributeEnumValues` call.

          Provide this to retrieve the subsequent page.

          When paginating, all other parameters provided to `ListPrincipalAttributeEnumValues` must match

          the call that provided the page token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are `principal_attribute_enum_value_id`, `name`, `display_name`, `description`,

          `created_by_user_id`, `modified_by_user_id`, `created_date`, and `modified_date`.

          Archive state is controlled via the `include_archived` field below, not via filter.

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'How to order the retrieved enum values. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...".

          Available fields to order_by are `created_date`, `modified_date`, and `display_name`.

          If left empty, items are ordered by `created_date` in descending order (newest-first).

          For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)

          Example: "display_name,created_date desc"'
        in: query
        required: false
        schema:
          type: string
      - name: includeArchived
        description: Whether to include archived enum values. Defaults to false.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-keys/{principalAttributeKeyId}/principal-attribute-values:
    get:
      summary: ListPrincipalAttributeKeyValues
      description: Lists principal attribute values for a given principal attribute key.
      operationId: PrincipalAttributeService_ListPrincipalAttributeKeyValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListPrincipalAttributeKeyValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeKeyId
        description: The id of the principal attribute key to list values for.
        in: path
        required: true
        schema:
          type: string
      - name: principalType
        in: query
        required: true
        schema:
          type: string
          enum:
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP
          default: PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
      - name: pageSize
        description: 'The maximum number of principal attribute values to return. The service may return fewer than this value.

          If unspecified, at most 50 principal attribute values will be returned. The maximum value is 1000. Values

          above 1000 will be coerced to 1000. Optional.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListPrincipalAttributeKeyValues` call.

          Provide this to retrieve a subsequent page of principal attribute values.

          When paginating, all other parameters provided to `ListPrincipalAttributeKeyValues` must match the previous call

          that provided the page token. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are:

          ''principal_attribute_value_id'', ''principal_attribute_key_id'', ''principal_attribute_enum_value_id'', ''number_value'', ''boolean_value'', ''created_date'', ''created_by_user_id'', ''principal_id'', and ''principal_type''

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).

          For more information about the fields used for filtering, please refer to this definition. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'How to order the retrieved principal attribute values. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...".

          Available fields to order_by are `created_date`

          If left empty, items are ordered by `created_date` in ascending order (oldest-first).

          For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)

          Example: "created_date desc"'
        in: query
        required: false
        schema:
          type: string
      - name: includeArchived
        description: If true, include archived values. Defaults to false. Optional.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-values:
    get:
      summary: ListPrincipalAttributeValues
      description: Lists principal attribute values.
      operationId: PrincipalAttributeService_ListPrincipalAttributeValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListPrincipalAttributeValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalType
        in: query
        required: true
        schema:
          type: string
          enum:
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP
          default: PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
      - name: pageSize
        description: 'The maximum number of principal attribute values to return. The service may return fewer than this value.

          If unspecified, at most 50 principal attribute values will be returned. The maximum value is 1000. Values

          above 1000 will be coerced to 1000. Optional.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListPrincipalAttributeValues` call.

          Provide this to retrieve a subsequent page of principal attribute values.

          When paginating, all other parameters provided to `ListPrincipalAttributeValues` must match the previous call

          that provided the page token. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are:

          ''principal_attribute_value_id'', ''principal_attribute_key_id'', ''principal_attribute_enum_value_id'', ''number_value'', ''boolean_value'', ''created_date'', ''created_by_user_id'', ''principal_id'', and ''principal_type''.

          Archive state is controlled via the `include_archived` field below, not via filter.

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).

          For more information about the fields used for filtering, please refer to this definition. Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'How to order the retrieved principal attribute values. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...".

          Available fields to order_by are `created_date`

          If left empty, items are ordered by `created_date` in ascending order (oldest-first).

          For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)

          Example: "created_date desc"'
        in: query
        required: false
        schema:
          type: string
      - name: includeArchived
        description: If true, include archived values. Defaults to false. Optional.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-values/archive:
    post:
      summary: ArchivePrincipalAttributeValues
      description: Archive principal attribute values.
      operationId: PrincipalAttributeService_ArchivePrincipalAttributeValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ArchivePrincipalAttributeValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ArchivePrincipalAttributeValuesRequest'
        description: ArchivePrincipalAttributeValuesRequest is used to batch archive principal attribute values by id.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-values/batch:
    post:
      summary: BatchCreatePrincipalAttributeValue
      description: Creates a principal attribute value for multiple principals in a single operation.
      operationId: PrincipalAttributeService_BatchCreatePrincipalAttributeValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchCreatePrincipalAttributeValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchCreatePrincipalAttributeValueRequest'
        description: BatchCreatePrincipalAttributeValueRequest is used to batch create new principal attribute values.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-values/unarchive:
    post:
      summary: UnarchivePrincipalAttributeValues
      description: Unarchive principal attribute values.
      operationId: PrincipalAttributeService_UnarchivePrincipalAttributeValues
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UnarchivePrincipalAttributeValuesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UnarchivePrincipalAttributeValuesRequest'
        description: UnarchivePrincipalAttributeValuesRequest is used to batch unarchive principal attribute values by id.
        required: true
      tags:
      - PrincipalAttributeService
  /api/v1/principal-attribute-values/{principalAttributeValueId}:
    get:
      summary: GetPrincipalAttributeValue
      description: Retrieves a principal attribute value.
      operationId: PrincipalAttributeService_GetPrincipalAttributeValue
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetPrincipalAttributeValueResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: principalAttributeValueId
        in: path
        required: true
        schema:
          type: string
      - name: principalType
        in: query
        required: true
        schema:
          type: string
          enum:
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER
          - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP
          default: PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
      tags:
      - PrincipalAttributeService
components:
  schemas:
    v1PrincipalAttributePrincipalType:
      type: string
      enum:
      - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
      - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER
      - PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP
      default: PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED
      description: PrincipalAttributePrincipalType enumerates the supported principal types for principal attribute values.
    v1CreatePrincipalAttributeKeyRequest:
      type: object
      properties:
        displayName:
          type: string
        d

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sift-stack/refs/heads/main/openapi/sift-stack-principalattributeservice-api-openapi.yml