Every API here is available over the APIs.io API and to AI agents over MCP.
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