openapi: 3.1.0
info:
  title: Procivis One Core API
  description: |
    The Procivis One Core API enables the full lifecycle of credentials.
  contact:
    name: Procivis One Docs
    url: https://www.procivis.ch/en/procivis-one#signup
  license:
    name: Apache-2.0
    url: https://github.com/procivis/one-core/blob/main/LICENSE
  version: v1.71.1
servers:
- url: ''
  description: Local server url
- url: https://www.procivis-one.com
  description: Generated server url
paths:
  /api/credential-schema/v1/{id}:
    get:
      tags:
      - credential_schema_management
      summary: Retrieve credential schema
      description: Retrieves detailed information about a credential schema.
      operationId: get_credential_schema
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - format
                - organisationId
                - claims
                - schemaId
                - importedSourceUrl
                - allowSuspension
                - requiresWalletInstanceAttestation
                properties:
                  allowSuspension:
                    type: boolean
                  claims:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  format:
                    $ref: '#/components/schemas/CredentialFormat'
                  id:
                    type: string
                    format: uuid
                    description: |-
                      UUID of this credential schema. Use this value as `credentialSchemaId`
                      when creating credentials with this schema.
                  importedSourceUrl:
                    type: string
                  keyStorageSecurity:
                    $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  layoutProperties:
                    $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
                  layoutType:
                    $ref: '#/components/schemas/CredentialSchemaLayoutType'
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  requiresWalletInstanceAttestation:
                    type: boolean
                  revocationMethod:
                    $ref: '#/components/schemas/RevocationMethodId'
                  schemaId:
                    type: string
                    description: |-
                      Document type or credential type identifier used by the credential
                      format. This is the semantic identifier for the credential type, not
                      the database ID of this schema record.
                  transactionCode:
                    $ref: '#/components/schemas/CredentialSchemaTransactionCodeRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - credential_schema_management
      summary: Delete a credential schema
      description: Deletes a credential schema.
      operationId: delete_credential_schema
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential-schema/v1:
    get:
      tags:
      - credential_schema_management
      summary: List credential schemas
      description: Returns a list of credential schemas in an organization.
      operationId: get_credential_schema_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - format
          - createdDate
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: include[]
        in: query
        description: Additional fields to include in response objects.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - layoutProperties
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - schemaId
      - name: ids[]
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: schemaId
        in: query
        description: |-
          Return credential schemas associated with the specified `schemaId` or document
          type for ISO mdocs.
        required: false
        schema:
          type: string
      - name: formats[]
        in: query
        description: Return only credential schemas which use one of the specified credential formats.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: createdDateAfter
        in: query
        description: |-
          Return only credential schemas created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only credential schemas created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only credential schemas last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only credential schemas last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialSchemaListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - credential_schema_management
      summary: Create credential schema
      description: |
        Creates a credential schema, for issuing credentials.

        The `format`, `revocationMethod` and `datatype` values must
        reference specific configuration instances from your system
        configuration. This is because the system allows multiple
        configurations of the same type.

        Related guide: [Credential schemas](/credential-schemas)
      operationId: post_credential_schema
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCredentialSchemaRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential-schema/v1/import:
    post:
      tags:
      - credential_schema_management
      summary: Import credential schema
      description: |
        Imports a shared credential schema to a mobile verifier, for use in
        constructing proof schemas.

        After previewing the credential schema from the
        [share credential schema](../core/share-credential-schema.api.mdx) endpoint, pass
        the schema here, along with the uuid of the mobile verifier's organization,
        to import the credential schema.
      operationId: import_credential_schema
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportCredentialSchemaRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential-schema/v1/{id}/share:
    post:
      tags:
      - credential_schema_management
      summary: Share credential schema
      description: |
        Generates a url to share a credential schema with a mobile verifier.
        The mobile verifier can make an HTTP request on the resulting url to preview the shared credential
        schema and [import](../core/import-credential-schema.api.mdx) it to use it in proof schema creation.
      operationId: share_credential_schema
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-anchor/v1:
    get:
      tags:
      - trust_anchor
      summary: List trust anchors
      description: Returns a list of trust anchors in an organization.
      operationId: get_trust_anchors
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
          - type
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: name
        in: query
        description: |-
          Return only trust anchors with a name starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
      - name: isPublisher
        in: query
        description: Filter by trust anchors either published or subscribed to.
        required: false
        schema:
          type: string
          enum:
          - 'false'
          - 'true'
      - name: type
        in: query
        description: |-
          Return only trust anchors with a type starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - type
      - name: createdDateAfter
        in: query
        description: |-
          Return only trust anchors created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only trust anchors created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only trust anchors last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only trust anchors last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/ListTrustAnchorsResponseItemRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - trust_anchor
      summary: Add a trust anchor
      description: |
        Publishes a new trust anchor or subscribes to an existing trust anchor.

        The `type` value must reference specific configuration instances from
        your system configuration. This is because the system allows multiple
        configurations of the same type.
      operationId: create_trust_anchor
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTrustAnchorRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-anchor/v1/{id}:
    get:
      tags:
      - trust_anchor
      summary: Retrieve a trust anchor
      description: Returns details on a given trust anchor.
      operationId: get_trust_anchor
      parameters:
      - name: id
        in: path
        description: Trust anchor id
        required: true
        schema:
          $ref: '#/components/schemas/TrustAnchorId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - name
                - createdDate
                - lastModified
                - type
                - isPublisher
                - publisherReference
                properties:
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    $ref: '#/components/schemas/TrustAnchorId'
                  isPublisher:
                    type: boolean
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  publisherReference:
                    type: string
                  type:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - trust_anchor
      summary: Delete a trust anchor
      description: |
        Deletes a trust anchor. All trust entities on the deleted trust anchor
        are also deleted.
      operationId: delete_trust_anchor
      parameters:
      - name: id
        in: path
        description: Trust anchor id
        required: true
        schema:
          $ref: '#/components/schemas/TrustAnchorId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/did/v1/{id}:
    get:
      tags:
      - did_management
      summary: Retrieve a DID
      description: Returns detailed information about a DID.
      operationId: get_did
      parameters:
      - name: id
        in: path
        description: DID id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - did
                - type
                - method
                - keys
                - deactivated
                properties:
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  deactivated:
                    type: boolean
                  did:
                    $ref: '#/components/schemas/DidValue'
                  id:
                    $ref: '#/components/schemas/DidId'
                  keys:
                    $ref: '#/components/schemas/DidResponseKeysRestDTO'
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  method:
                    type: string
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  type:
                    $ref: '#/components/schemas/DidType'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    patch:
      tags:
      - did_management
      summary: Deactivate a DID
      description: |
        Deactivate a DID. See the [DID deactivation](/dids#deactivate-a-did)
        guide for a list of supported DID methods which allow deactivation.
      operationId: update_did
      parameters:
      - name: id
        in: path
        description: DID id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DidPatchRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/did/v1:
    get:
      tags:
      - did_management
      summary: List DIDs
      description: Returns a list of DIDs within an organization.
      operationId: get_did_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
          - method
          - type
          - did
          - deactivated
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: name
        in: query
        description: Return only DIDs with a name starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: did
        in: query
        description: Return all DIDs with addresses starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: type
        in: query
        description: |-
          Filter by DIDs created locally or DIDs of remote wallets from credentials
          issued or proofs requested.
        required: false
        schema:
          $ref: '#/components/schemas/DidType'
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - did
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: deactivated
        in: query
        description: Filter by active or deactivated DIDs.
        required: false
        schema:
          type: string
          enum:
          - 'false'
          - 'true'
      - name: keyAlgorithms[]
        in: query
        description: |-
          Return only DIDs which support the key algorithms specified here. Uses values
          from the configuration.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: keyRoles[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - AUTHENTICATION
            - ASSERTION_METHOD
            - KEY_AGREEMENT
            - CAPABILITY_INVOCATION
            - CAPABILITY_DELEGATION
            - UPDATE_KEY
      - name: keyStorages[]
        in: query
        description: |-
          Return only DIDs whose keys use the specified key storage type. Check the
          `keyStorage` object of the configuration for supported options.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: keyIds[]
        in: query
        description: Return only DIDs which use the specified keys.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: didMethods[]
        in: query
        description: |-
          Return only DIDs of the method(s) specified here. Check the `did` object
          of the configuration for supported options.
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/DidListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - did_management
      summary: Create a DID
      description: |
        Deprecated. Use the identifier API to create a DID as an identifier
          to use in issuing, holding, or verifying.

        When you create a DID as an identifier, both the identifier and the
        DID receive separate system IDs. You can access the DID's system ID
        from the identifier response to use with the DID API for operations
        like DID deactivation.
      operationId: post_did
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDidRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/did/v1/{id}/trust-entity:
    get:
      tags:
      - did_management
      summary: Retrieve the matching trust entity for a DID
      description: Returns details on the matching trust entity for a DID.
      operationId: get_did_trust_entity
      parameters:
      - name: id
        in: path
        description: DID id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - role
                - trustAnchor
                - state
                - entityKey
                - type
                properties:
                  ca:
                    $ref: '#/components/schemas/TrustEntityCertificateResponseRestDTO'
                    description: Human-readable X.509 certificate details.
                  content:
                    type: string
                    description: If `type` is `CA`, the certificate in PEM format.
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                    description: DID details.
                  entityKey:
                    $ref: '#/components/schemas/TrustEntityKey'
                    description: DID value or certificate's `subject`.
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                    description: Trust entity ID.
                  identifier:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Identifier details.
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type: string
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type: string
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                    description: The role the entity is trusted to perform.
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                    description: The entity's status on the trust anchor.
                  termsUrl:
                    type: string
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                    description: Trust anchor details.
                  type:
                    $ref: '#/components/schemas/TrustEntityTypeRest'
                  website:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/holder-wallet-unit/v1:
    post:
      tags:
      - holder_wallet_unit
      summary: Register with a Wallet Provider
      description: |
        Register a wallet unit with a Wallet Provider.
      operationId: wallet_unit_holder_register
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HolderRegisterWalletUnitRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/holder-wallet-unit/v1/{id}:
    get:
      tags:
      - holder_wallet_unit
      summary: Retrieve wallet registration details
      description: Retrieve details of a wallet unit's registration from the Wallet Provider.
      operationId: wallet_unit_holder_details
      parameters:
      - name: id
        in: path
        description: Wallet Unit ID
        required: true
        schema:
          $ref: '#/components/schemas/HolderWalletUnitId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - providerWalletUnitId
                - walletProviderUrl
                - walletProviderType
                - walletProviderName
                - status
                - authenticationKey
                properties:
                  authenticationKey:
                    $ref: '#/components/schemas/KeyListItemResponseRestDTO'
                  createdDate:
                    type: string
                    format: date-time
                  id:
                    $ref: '#/components/schemas/HolderWalletUnitId'
                  lastModified:
                    type: string
                    format: date-time
                  providerWalletUnitId:
                    $ref: '#/components/schemas/WalletUnitId'
                  status:
                    $ref: '#/components/schemas/WalletUnitStatusRestEnum'
                  walletProviderName:
                    type: string
                  walletProviderType:
                    $ref: '#/components/schemas/WalletProviderTypeRestEnum'
                  walletProviderUrl:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/holder-wallet-unit/v1/{id}/status:
    post:
      tags:
      - holder_wallet_unit
      summary: Check wallet status
      description: Check the status of a wallet unit. Active units return `204`. Revoked units return an error.
      operationId: wallet_unit_holder_status
      parameters:
      - name: id
        in: path
        description: Wallet Unit ID
        required: true
        schema:
          $ref: '#/components/schemas/HolderWalletUnitId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/certificate/v1/{id}:
    get:
      tags:
      - certificate_management
      summary: Get a certificate
      description: Retrieves detailed information about a certificate.
      operationId: get_certificate
      parameters:
      - name: id
        in: path
        description: Certificate id
        required: true
        schema:
          $ref: '#/components/schemas/CertificateId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - identifierId
                - createdDate
                - lastModified
                - name
                - chain
                - state
                - x509Attributes
                properties:
                  chain:
                    type: string
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    $ref: '#/components/schemas/CertificateId'
                  identifierId:
                    $ref: '#/components/schemas/IdentifierId'
                  key:
                    $ref: '#/components/schemas/KeyListItemResponseRestDTO'
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  state:
                    $ref: '#/components/schemas/CertificateStateRest'
                  x509Attributes:
                    $ref: '#/components/schemas/CertificateX509AttributesRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/jsonld-context/v1:
    get:
      tags:
      - jsonld
      summary: Retrieve JSON-lD context
      description: Returns the context of a JSON-LD credential. This is a [cached entity](/configure/caching).
      operationId: resolve_jsonld_context
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - context
                properties:
                  context: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/task/v1/run:
    post:
      tags:
      - task
      summary: Run task
      description: |
        Runs a task. Tasks can be also be run via the CLI after starting
        the core-server.

        Related guide: [Configuration](/configure)
      operationId: post_task
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/cache/v1:
    delete:
      tags:
      - cache
      summary: Prune cache
      description: |
        Removes cached entities. If types are not specified, all cached entities are pruned.

        Related guide: [Caching](/configure/caching)
      operationId: prune_cache
      parameters:
      - name: types[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - DID_DOCUMENT
            - JSON_LD_CONTEXT
            - STATUS_LIST_CREDENTIAL
            - VCT_METADATA
            - JSON_SCHEMA
            - TRUST_LIST
            - X509_CRL
            - ANDROID_ATTESTATION_CRL
            - OPENID_METADATA
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/handle-invitation:
    post:
      tags:
      - interaction
      summary: Handle invitation
      description: |
        For a wallet, handles the interaction once the wallet connects to a share
        endpoint URL (for example, scans the QR code of an offered credential or
        request for proof).

        To start the wallet-initiated Authorization Code Flow request for issuance,
        use the [initiate-issuance](/reference/core/initiate-issuance) endpoint.
      operationId: handle_invitation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HandleInvitationRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - interactionId
                - interactionType
                properties:
                  authorizationCodeFlowUrl:
                    type: string
                    description: |-
                      For issuer-initiated Authorization Code Flows, use this URL to start the
                      authorization process with the authorization server.
                  interactionId:
                    $ref: '#/components/schemas/InteractionId'
                  interactionType:
                    $ref: '#/components/schemas/InteractionTypeRestEnum'
                  keyAlgorithms:
                    type: array
                    items:
                      type: string
                  keyStorageSecurityLevels:
                    type: array
                    items:
                      $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
                  proofId:
                    $ref: '#/components/schemas/ProofId'
                    description: Requested proof.
                  protocol:
                    type: string
                  requiresWalletInstanceAttestation:
                    type: boolean
                  txCode:
                    $ref: '#/components/schemas/OpenID4VCITxCodeRestDTO'
                    description: |-
                      Metadata for entering a transaction code.
                      If a pre-authorized code is issued with a transaction code object, the
                      wallet user must input a transaction code to receive the offered credential.
                      This code is typically sent through a separate channel such as SMS or email.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/issuance-accept:
    post:
      tags:
      - interaction
      summary: Accept issuance
      description: |
        Accepts an offered credential. The system will generate a new
        identifier that matches issuer's restrictions. Alternatively,
        you can specify an existing identifier.

        `didId` is deprecated.
      operationId: issuance_accept
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuanceAcceptRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/issuance-reject:
    post:
      tags:
      - interaction
      summary: Reject issuance
      description: Rejects an offered credential.
      operationId: issuance_reject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuanceRejectRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/presentation-reject:
    post:
      tags:
      - interaction
      summary: Reject presentation
      description: Rejects a request to submit credentials.
      operationId: presentation_reject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresentationRejectRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/presentation-submit:
    post:
      tags:
      - interaction
      summary: Submit presentation
      description: |
        Submits a presentation in response to a request. Choose the
        identifier used to accept the credentials. This endpoint uses
          Presentation Exchange as the query language and should be used
          after "Presentation Definition (V1)".

        `didId` is deprecated.
      operationId: presentation_submit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresentationSubmitRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v2/presentation-submit:
    post:
      tags:
      - interaction
      summary: Submit presentation
      description: |
        Submits a presentation in response to a request. This endpoint uses DCQL
        as a query language and should be used after "Presentation Definition (V2)".
      operationId: presentation_submit_v2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresentationSubmitV2RequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/propose-proof:
    post:
      tags:
      - interaction
      summary: Propose a proof
      description: |
        Not for use via the API; this enables mobile wallets to initiate
        device engagement for offline flows. See the SDK.
      operationId: propose_proof
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposeProofRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - proofId
                - interactionId
                properties:
                  interactionId:
                    $ref: '#/components/schemas/InteractionId'
                  proofId:
                    $ref: '#/components/schemas/ProofId'
                  url:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/initiate-issuance:
    post:
      tags:
      - interaction
      summary: Initiate OID4VCI issuance
      description: |
        For wallets, starts the OpenID4VCI Authorization Code Flow.
      operationId: initiate_issuance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateIssuanceRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
                    description: Authorization endpoint URL
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/continue-issuance:
    post:
      tags:
      - interaction
      summary: Continue OID4VCI issuance
      description: |
        For wallet-initiated flows, continues the OpenID4VCI issuance process after
        completing authorization.
      operationId: continue_issuance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContinueIssuanceRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - interactionId
                - interactionType
                properties:
                  interactionId:
                    $ref: '#/components/schemas/InteractionId'
                    description: For reference.
                  interactionType:
                    $ref: '#/components/schemas/InteractionTypeRestEnum'
                  keyAlgorithms:
                    type: array
                    items:
                      type: string
                  keyStorageSecurityLevels:
                    type: array
                    items:
                      $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/did-resolver/v1/{didvalue}:
    get:
      tags:
      - did_management
      summary: Resolve a DID
      description: |
        Resolves a DID to its DID document, returning its verification relationships.
      operationId: resolve_did
      parameters:
      - name: didvalue
        in: path
        description: DID value
        required: true
        schema:
          $ref: '#/components/schemas/DidValue'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - '@context'
                - id
                - verificationMethod
                properties:
                  '@context': {}
                  alsoKnownAs:
                    type: array
                    items:
                      type: string
                  assertionMethod:
                    type: array
                    items:
                      type: string
                  authentication:
                    type: array
                    items:
                      type: string
                  capabilityDelegation:
                    type: array
                    items:
                      type: string
                  capabilityInvocation:
                    type: array
                    items:
                      type: string
                  id:
                    $ref: '#/components/schemas/DidValue'
                  keyAgreement:
                    type: array
                    items:
                      type: string
                  service:
                    type: array
                    items:
                      $ref: '#/components/schemas/DidServiceEndointRestDTO'
                  verificationMethod:
                    type: array
                    items:
                      $ref: '#/components/schemas/DidVerificationMethodRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}/presentation-definition:
    get:
      tags:
      - proof_management
      summary: Presentation definition (V1)
      description: |
        For wallets; after a wallet connects to a verifier's request for proof via the
        [Handle Invitation](../core/handle-invitation.api.mdx) endpoint, the presentation
        definition endpoint takes the resulting `proofId` and filters the wallet, returning
        credentials which match the verifier's request.

        This version uses Presentation Exchange as the query language.
      operationId: get_proof_presentation_definition
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - requestGroups
                - credentials
                properties:
                  credentials:
                    type: array
                    items:
                      $ref: '#/components/schemas/GetCredentialResponseRestDTO_CredentialDetailClaimResponseRestDTO'
                  requestGroups:
                    type: array
                    items:
                      $ref: '#/components/schemas/PresentationDefinitionRequestGroupResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v2/{id}/presentation-definition:
    get:
      tags:
      - proof_management
      summary: Presentation definition (V2)
      description: |
        For wallets; after a wallet connects to a verifier's request for proof via the
        [Handle Invitation](../core/handle-invitation.api.mdx) endpoint, the presentation
        definition endpoint takes the resulting `proofId` and filters the wallet,
        returning credentials which match the verifier's request.

        This version uses DCQL as the query language.
      operationId: get_proof_presentation_definition_v2
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - credentialQueries
                - credentialSets
                properties:
                  credentialQueries:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CredentialQueryResponseRestDTO'
                    propertyNames:
                      type: string
                  credentialSets:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialSetResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}:
    get:
      tags:
      - proof_management
      summary: Retrieve a proof request
      description: Returns detailed information about a proof request.
      operationId: get_proof_details
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - protocol
                - transport
                - state
                - role
                - organisationId
                - proofInputs
                properties:
                  claimsRemovedAt:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  completedDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  engagement:
                    type: string
                  id:
                    $ref: '#/components/schemas/ProofId'
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  profile:
                    type: string
                  proofInputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProofInputRestDTO'
                  protocol:
                    type: string
                  redirectUri:
                    type: string
                  requestedDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  retainUntilDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  role:
                    $ref: '#/components/schemas/ProofRoleRestEnum'
                  schema:
                    $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
                  state:
                    $ref: '#/components/schemas/ProofStateRestEnum'
                  transport:
                    type: string
                  verifier:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                  verifierCertificate:
                    $ref: '#/components/schemas/CertificateResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - proof_management
      summary: Delete proof request
      description: |
        Deletes a proof request that has not completed yet. If the request is in
        `REQUESTED` state then the proof is retracted instead, retaining history
        of the interaction.

        Related guide: [Manage proof requests](/verify/manage-proofs)
      operationId: delete_proof
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1:
    get:
      tags:
      - proof_management
      summary: List proof requests
      description: Returns a list of proof requests in an organization.
      operationId: get_proofs
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - schema.name
          - verifier
          - createdDate
          - state
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: |-
          Return only proof requests with a name starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
      - name: profiles[]
        in: query
        description: Filter by one or more country profiles.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: states[]
        in: query
        description: Filter by one or more proof states.
        required: false
        schema:
          type: array
          items:
            type: string
            description: The state representation of the proof request in the system.
            enum:
            - CREATED
            - PENDING
            - REQUESTED
            - ACCEPTED
            - REJECTED
            - RETRACTED
            - ERROR
            - INTERACTION_EXPIRED
      - name: roles[]
        in: query
        description: |-
          Filter proof requests by one or more roles: requested by the system
          or received by the system.
        required: false
        schema:
          type: array
          items:
            type: string
            description: The role the system has in relation to the proof.
            enum:
            - HOLDER
            - VERIFIER
      - name: proofSchemaIds[]
        in: query
        description: |-
          Filter proof requests by their associated proof schema. Pass an array
          of UUID strings.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: verifiers[]
        in: query
        description: |-
          Filter proof requests by their associated verifier identifiers.
          Pass an array of UUID strings.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: ids[]
        in: query
        description: Filter by one or more UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: createdDateAfter
        in: query
        description: |-
          Return only proof requests created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only proof requests created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only proof requests last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only proof requests last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: requestedDateAfter
        in: query
        description: |-
          Return only proof requests requested after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: requestedDateBefore
        in: query
        description: |-
          Return only proof requests requested before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: completedDateAfter
        in: query
        description: |-
          Return only proof requests completed after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: completedDateBefore
        in: query
        description: |-
          Return only proof requests completed before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProofListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - proof_management
      summary: Create a proof request
      description: |
        Creates a proof request, which can then be shared with a wallet holder.

        Choose what information to request (proof schema), an identifier, and
        which verification protocol to use.

        The `protocol` and `transport` values must reference specific configuration
        instances from your system configuration. This is because the system allows
        multiple configurations of the same type. For `protocol`, reference a configured
        instance of `verificationProtocol`.

        Related guide: [Verify workflow](/verify)
      operationId: post_proof
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProofRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}/share:
    post:
      tags:
      - proof_management
      summary: Request a proof
      description: |
        Creates a share URL from a proof request. A wallet holder can use this URL to access
        the proof request.

        For proof requests made with OID4VC, a Client ID Scheme can be specified in the params.
        If no scheme is specified the default scheme from the configuration will be used.
      operationId: share_proof
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: 'null'
              - $ref: '#/components/schemas/ShareProofRequestRestDTO'
            example:
              params:
                clientIdScheme: redirect_uri
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  expiresAt:
                    type: string
                    format: date-time
                    description: |-
                      URL becomes unusable by wallet holder at this time. Call the share
                      endpoint again to get a new URL.
                    example: 2023-06-09T14:19:57.000Z
                  url:
                    type: string
                    description: Share URL, typically encoded as a QR code.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}/claims:
    delete:
      tags:
      - proof_management
      summary: Delete claim data
      description: |
        For the specified proof, permanently deletes all claim data shared by the wallet
        holder. The proof request metadata and related history entries are still accessible.
      operationId: delete_proof_claims
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}:
    get:
      tags:
      - credential_management
      summary: Retrieve a credential
      description: Returns detailed information about a credential in the system.
      operationId: get_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - state
                - lastModified
                - schema
                - claims
                - role
                - protocol
                properties:
                  claims:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialDetailClaimResponseRestDTO'
                    description: Claims made by the credential issuer.
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  holder:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Credential holder metadata.
                  id:
                    type: string
                    format: uuid
                  issuanceDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  issuer:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Issuer metadata.
                  issuerCertificate:
                    $ref: '#/components/schemas/CertificateResponseRestDTO'
                    description: Certificate details if issuer used an X.509 to issue credential.
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  lvvcIssuanceDate:
                    type: string
                    format: date-time
                    description: For credentials issued with LVVC revocation.
                    example: 2023-06-09T14:19:57.000Z
                  mdocMsoValidity:
                    $ref: '#/components/schemas/MdocMsoValidityResponseRestDTO'
                    description: Validity details for ISO mdocs.
                  profile:
                    type: string
                    description: Country profile associated with this credential.
                  protocol:
                    type: string
                    description: Issuance protocol used to issue this credential.
                  redirectUri:
                    type: string
                    description: URI holder is redirected to after credential issuance.
                  revocationDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  role:
                    $ref: '#/components/schemas/CredentialRoleRestEnum'
                    description: |-
                      The role the system has in relation to the credential. For example,
                      if the system issued the credential this value will be `ISSUER`. If
                      the system received the credential as a wallet this value will be
                      `HOLDER`.
                  schema:
                    $ref: '#/components/schemas/CredentialDetailSchemaResponseRestDTO'
                    description: Schema of the credential.
                  state:
                    $ref: '#/components/schemas/CredentialStateRestEnum'
                  suspendEndDate:
                    type: string
                    format: date-time
                    description: Scheduled date for credential reactivation.
                    example: 2023-06-09T14:19:57.000Z
                  walletInstanceAttestation:
                    $ref: '#/components/schemas/WalletInstanceAttestationRestDTO'
                    description: |-
                      The wallet instance attestation that was provided by the holder's wallet
                      during credential issuance. This field is only present if the wallet
                      provided a valid attestation when the credential was issued. The
                      attestation serves as proof that the wallet app instance is a
                      legitimate installation and may be required for the issuance of certain
                      credentials.
                  walletUnitAttestation:
                    $ref: '#/components/schemas/WalletUnitAttestationRestDTO'
                    description: |-
                      The wallet unit attestation, or "key attestation", that was provided
                      by the holder's wallet during credential issuance. This field is
                      only present if the wallet provided a valid attestation when the
                      credential was issued, a requirement for the issuance of certain
                      credentials such as EU PIDs.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - credential_management
      summary: Delete a credential
      description: |
        Makes a credential no longer retrievable and records the history
        action `DELETED`.

        This has no impact on the holder's ability to keep and use the credential.

        Deletion cannot be completed if the credential state is `ACCEPTED` while
        the corresponding credential schema includes a revocation method. Credentials
        with no revocation method can be deleted in any state.
      operationId: delete_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1:
    get:
      tags:
      - credential_management
      summary: List credentials
      description: Returns a list of credentials within an organization.
      operationId: get_credential_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - createdDate
          - schema.name
          - issuer
          - state
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: include[]
        in: query
        description: Additional fields to include in response objects.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - layoutProperties
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: Return only credentials with a name starting with this string.
        required: false
        schema:
          type: string
      - name: profiles[]
        in: query
        description: Filter by one or more country profiles.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: roles[]
        in: query
        description: |-
          Filter credentials by one or more roles: issued by the system,
          verified by the system, or held by the system as a wallet.
        required: false
        schema:
          type: array
          items:
            type: string
            description: The role the system has in relation to the credential.
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: ids[]
        in: query
        description: Filter by one or more UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: states[]
        in: query
        description: Filter by one or more credential states.
        required: false
        schema:
          type: array
          items:
            type: string
            description: The state representation of the credential in the system.
            enum:
            - CREATED
            - PENDING
            - OFFERED
            - ACCEPTED
            - SUSPENDED
            - REJECTED
            - REVOKED
            - ERROR
            - INTERACTION_EXPIRED
      - name: issuers[]
        in: query
        description: Filter by one or more identifier IDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: searchText
        in: query
        description: Search for a string.
        required: false
        schema:
          type: string
      - name: searchType[]
        in: query
        description: |-
          Changes where `searchText` is searched. To search credentials,
          choose one or more `searchType`s and pass a `searchText`.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - CLAIM_NAME
            - CLAIM_VALUE
            - CREDENTIAL_SCHEMA_NAME
      - name: credentialSchemaIds[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: createdDateAfter
        in: query
        description: |-
          Return only credentials created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only credentials created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only credentials last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only credentials last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: issuanceDateAfter
        in: query
        description: |-
          Return only credentials issued after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: issuanceDateBefore
        in: query
        description: |-
          Return only credentials issued before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: revocationDateAfter
        in: query
        description: |-
          Return only credentials revoked after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: revocationDateBefore
        in: query
        description: |-
          Return only credentials revoked before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - credential_management
      summary: Create a credential
      description: |
        Creates a credential, which can then be issued to a wallet holder.

        Choose the type of credential to issue (credential schema), an
        identifier, an issuance protocol, and make claims about the subject.

        The `protocol` value must reference a configured instance of the
        `issuanceProtocol` object of your system configuration.

        Related guide: [Issuance workflow](/issue)
      operationId: post_credential
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCredentialRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}/reactivate:
    post:
      tags:
      - credential_management
      summary: Reactivate a credential
      description: |
        Reactivates a suspended credential.
        Related guide: [Manage credential status](/issue/manage-status)
      operationId: reactivate_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}/revoke:
    post:
      tags:
      - credential_management
      summary: Revoke a credential
      description: |
        Changes a credential state to `REVOKED`.
        Related guide: [Manage credential status](/issue/manage-status)
      operationId: revoke_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}/suspend:
    post:
      tags:
      - credential_management
      summary: Suspend a credential
      description: |
        Suspends a credential, rendering it invalid until it has been reactivated.
        Related guide: [Manage credential status](/issue/manage-status)
      operationId: suspend_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuspendCredentialRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}/share:
    post:
      tags:
      - credential_management
      summary: Issue a credential
      description: |
        Creates a share URL. A wallet holder can use this to access the
        offered credential.
      operationId: share_credential
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  expiresAt:
                    type: string
                    format: date-time
                    description: |-
                      URL becomes unusable by wallet holder at this time. Call the share
                      endpoint again to get a new URL.
                    example: 2023-06-09T14:19:57.000Z
                  transactionCode:
                    type: string
                    description: |-
                      The generated one-time code required for the holder to complete
                      credential issuance. Must be transmitted to the holder through a
                      secure out-of-band channel such as SMS or email to a verified
                      contact.
                  url:
                    type: string
                    description: Share URL, typically encoded as a QR code.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/revocation-check:
    post:
      tags:
      - credential_management
      summary: Check revocation
      description: |
        Checks whether a held credential has been suspended or revoked.

        This is only applicable to credentials with an associated revocation
        mechanism.

        This endpoint only works for credentials for which the `role` is `HOLDER`.
        Issuers and verifiers cannot check the status of credentials with this
        endpoint.

        For list-based revocation methods, the signed lists and DID documents
        containing the public keys used to verify the lists are cached. Use the
        `forceRefresh` parameter to force the system to retrieve these entities
        from the external resource.

        For mdocs and credentials issued with LVVC revocation, use the `forceRefresh`
        parameter to force the system to request a new MSO (for mdocs) or a new
        LVVC with the latest status.

        Related guide: [Caching](/configure/caching)
      operationId: credential_revocation_check
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialRevocationCheckRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                  - credentialId
                  - status
                  - success
                  properties:
                    credentialId:
                      type: string
                      format: uuid
                    reason:
                      type: string
                      description: |-
                        Explanation of why the revocation check failed. Only present
                        when `success: false`.
                    status:
                      $ref: '#/components/schemas/CredentialStateRestEnum'
                    success:
                      type: boolean
                      description: |-
                        Indicates whether the system performed the check as planned.
                        When using `forceRefresh`, indicates whether the external resource
                        was reached and gave a response. For mdocs this value will only be
                        `true` if a new MSO was issued.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/history/v1:
    get:
      tags:
      - history_management
      summary: List history events
      description: |
        Returns a list of history events for entities in the system.

        Related guide: [History](/history)
      operationId: get_history_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - createdDate
          - action
          - entityType
          - source
          - user
          - organisationId
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: entityTypes[]
        in: query
        description: Return only events associated with the specified entity type(s).
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - KEY
            - DID
            - CERTIFICATE
            - IDENTIFIER
            - CREDENTIAL
            - CREDENTIAL_SCHEMA
            - PROOF
            - PROOF_SCHEMA
            - ORGANISATION
            - BACKUP
            - TRUST_ANCHOR
            - TRUST_ENTITY
            - WALLET_UNIT
            - USER
            - PROVIDER
            - WALLET_RELYING_PARTY
            - STS_ROLE
            - STS_ORGANISATION
            - STS_IAM_ROLE
            - STS_TOKEN
            - SIGNATURE
      - name: entityIds[]
        in: query
        description: Return only events associated with the provided entity UUID(s).
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: actions[]
        in: query
        description: Return only events of the specified action(s).
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACCEPTED
            - CREATED
            - CSR_GENERATED
            - DEACTIVATED
            - DELETED
            - ERRORED
            - ISSUED
            - OFFERED
            - REJECTED
            - REQUESTED
            - REVOKED
            - PENDING
            - SUSPENDED
            - RESTORED
            - SHARED
            - IMPORTED
            - CLAIMS_REMOVED
            - ACTIVATED
            - WITHDRAWN
            - REMOVED
            - RETRACTED
            - UPDATED
            - REACTIVATED
            - EXPIRED
            - INTERACTION_CREATED
            - INTERACTION_ERRORED
            - INTERACTION_EXPIRED
      - name: createdDateAfter
        in: query
        description: |-
          Return only events which occurred after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only events which occurred before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: identifierId
        in: query
        description: Return only events associated with the provided Identifier UUID.
        required: false
        schema:
          $ref: '#/components/schemas/IdentifierId'
      - name: credentialId
        in: query
        description: Return only events associated with the provided credential UUID.
        required: false
        schema:
          $ref: '#/components/schemas/CredentialId'
      - name: credentialSchemaId
        in: query
        description: Return only events associated with the provided credential schema UUID.
        required: false
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: proofSchemaId
        in: query
        description: Return only events associated with the provided proof schema UUID.
        required: false
        schema:
          $ref: '#/components/schemas/ProofSchemaId'
      - name: users[]
        in: query
        description: |-
          Return only events associated with the provided users. Only applicable
          in STS authentication mode.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: sources[]
        in: query
        description: Return only events associated with the provided sources.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - CORE
            - BRIDGE
            - STS
            - WRPR
            - BFF
      - name: organisationIds[]
        in: query
        description: Specify the organizaton(s) from which to return history events.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: showSystemHistory
        in: query
        description: |-
          Controls cross-organization access. When `false` (default), returns
          events from the organization in your STS token, or requires at least
          one value in `organisationIds[]` if not using STS authentication.
          When `true`, returns events from all organizations; requires
          `SYSTEM_HISTORY_LIST` permission in STS authentication mode.
        required: false
        schema:
          type: string
          enum:
          - 'false'
          - 'true'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/HistoryResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - history_management
      summary: Create history event
      description: |
        Creates a new history entry managed outside core

        Related guide: [History](/history)
      operationId: create_history
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHistoryRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/history/v1/{id}:
    get:
      tags:
      - history_management
      summary: Retrieve history entry
      description: Returns details on a single event.
      operationId: get_history_entry
      parameters:
      - name: id
        in: path
        description: History id
        required: true
        schema:
          $ref: '#/components/schemas/HistoryId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - action
                - name
                - entityType
                - source
                properties:
                  action:
                    $ref: '#/components/schemas/HistoryAction'
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  entityId:
                    type: string
                    format: uuid
                  entityType:
                    $ref: '#/components/schemas/HistoryEntityType'
                  id:
                    $ref: '#/components/schemas/HistoryId'
                  metadata:
                    $ref: '#/components/schemas/HistoryMetadataRestEnum'
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  source:
                    $ref: '#/components/schemas/HistorySource'
                  target:
                    type: string
                  user:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-schema/v1:
    get:
      tags:
      - proof_schema_management
      summary: Retrieve proof schemas
      description: Returns a list of proof schemas.
      operationId: get_proof_schemas
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: |-
          Return only proof schemas with a name starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
      - name: ids[]
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: formats[]
        in: query
        description: Return only proof schemas which use only the specified credential formats.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: createdDateAfter
        in: query
        description: |-
          Return only proof schemas created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only proof schemas created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only proof schemas last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only proof schemas last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - proof_schema_management
      summary: Create proof schema
      description: |
        Creates a proof schema, for creating proof requests.

        Related guide: [Proof schemas](/proof-schemas)
      operationId: post_proof_schema
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProofSchemaRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-schema/v1/{id}:
    get:
      tags:
      - proof_schema_management
      summary: Retrieve proof schema
      description: Returns detailed information about a proof schema.
      operationId: get_proof_schema_detail
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/ProofSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - expireDuration
                - organisationId
                - proofInputSchemas
                properties:
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  expireDuration:
                    type: integer
                    format: int32
                    minimum: 0
                  id:
                    type: string
                    format: uuid
                  importedSourceUrl:
                    type: string
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  proofInputSchemas:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProofInputSchemaResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - proof_schema_management
      summary: Delete a proof schema
      description: Deletes a proof schema.
      operationId: delete_proof_schema
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/ProofSchemaId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-schema/v1/{id}/share:
    post:
      tags:
      - proof_schema_management
      summary: Share proof schema
      description: Generates a url to share a proof schema with a mobile verifier.
      operationId: share_proof_schema
      parameters:
      - name: id
        in: path
        description: Schema id
        required: true
        schema:
          $ref: '#/components/schemas/ProofSchemaId'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-schema/v1/import:
    post:
      tags:
      - proof_schema_management
      summary: Import proof schema
      description: |
        Imports a shared proof schema to a mobile verifier, for use in creating proof requests. After previewing
        the proof schema from the [share proof schema](../core/share-proof-schema.api.mdx) endpoint, pass the schema here, along with
        the uuid of the mobile verifier's organization, to import the proof schema.
      operationId: import_proof_schema
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportProofSchemaRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/identifier/v1:
    get:
      tags:
      - identifier_management
      summary: List identifiers
      description: Returns a list of identifiers within an organization.
      operationId: get_identifier_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
          - type
          - state
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: ids[]
        in: query
        description: Filter by one or more UUIDs.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/IdentifierId'
      - name: name
        in: query
        description: |-
          Return only identifiers with a name starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
      - name: types[]
        in: query
        description: Filter by one or more identifier types.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/IdentifierTypeRest'
      - name: states[]
        in: query
        description: Filter by one or more identifier states.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/IdentifierStateRest'
      - name: didMethods[]
        in: query
        description: Filter by one or more DID methods.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: isRemote
        in: query
        description: |-
          If true, return only identifiers from interactions with external
          actors. If false, return only identifiers local to the system.
        required: false
        schema:
          type: string
          enum:
          - 'false'
          - 'true'
      - name: keyAlgorithms[]
        in: query
        description: |-
          Return keys or DIDs whose keys use the specified algorithm. Check the
          `keyAlgorithm` object of the configuration for supported options.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: keyRoles[]
        in: query
        description: Return keys used as one or more verification methods of a DID.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - AUTHENTICATION
            - ASSERTION_METHOD
            - KEY_AGREEMENT
            - CAPABILITY_INVOCATION
            - CAPABILITY_DELEGATION
            - UPDATE_KEY
      - name: keyStorages[]
        in: query
        description: |-
          Return keys or DIDs whose keys use the specified storage type. Check the
          `keyStorage` object of the configuration for supported options.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: createdDateAfter
        in: query
        description: |-
          Return only identifiers created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only identifiers created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only identifiers last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only identifiers last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - totalPages
                - totalItems
                - values
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - identifier_management
      summary: Create an identifier
      description: |
        Creates a new identifier to use for issuing or verifying.

        All identifiers have an identifier ID used in credential operations
        (like the `issuer` field). The underlying resource (key, certificate,
        DID, or CA) has its own separate ID used with resource-specific APIs
        for management operations.

        For a key identifier: First, create the key using the key API. Then,
        use this API, passing the key ID and a name for the identifier. The
        identifier ID is used for credential operations. The key ID is used
        with the key API for key-specific management operations.

        For a certificate identifier: Use the key API to generate a key and
        a Certificate Signing Request (CSR). When you have a signed certificate,
        pass the certificate in PEM format, also specifying the original key
        ID and a name for the identifier. The identifier ID is used for
        credential operations. The certificate ID is used with the certificate
        API for certificate-specific operations like viewing certificate details
        or checking expiration.

        For a Certificate Authority identifier: Import an existing certificate
        chain by passing the full chain in PEM format (where the leaf certificate
        is a CA certificate signed by the key specified in `keyId`). Alternatively,
        generate a self-signed root CA by specifying a key and passing the
        certificate subject information in `selfSigned`. The identifier ID is used
        for credential operations. The CA certificate ID is used with the
        certificate API for CA-specific operations.

        For a DID identifier: Specify a name, the DID method, and the key(s) to
        use for the verification methods. The system assigns an identifier ID and
        a DID. The identifier ID is used for credential operations. The DID ID is
        used with the DID API for operations like deactivation or resolution.
      operationId: post_identifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIdentifierRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/identifier/v1/{id}:
    get:
      tags:
      - identifier_management
      summary: Retrieve an identifier
      description: Returns detailed information about an identifier.
      operationId: get_identifier
      parameters:
      - name: id
        in: path
        description: Identifier id
        required: true
        schema:
          $ref: '#/components/schemas/IdentifierId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - name
                - createdDate
                - lastModified
                - state
                - type
                - isRemote
                properties:
                  certificateAuthorities:
                    type: array
                    items:
                      $ref: '#/components/schemas/CertificateResponseRestDTO'
                  certificates:
                    type: array
                    items:
                      $ref: '#/components/schemas/CertificateResponseRestDTO'
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidResponseRestDTO'
                  id:
                    $ref: '#/components/schemas/IdentifierId'
                  isRemote:
                    type: boolean
                  key:
                    $ref: '#/components/schemas/KeyResponseRestDTO'
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  state:
                    $ref: '#/components/schemas/IdentifierStateRest'
                  type:
                    $ref: '#/components/schemas/IdentifierTypeRest'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - identifier_management
      summary: Delete an identifier
      description: Deletes an identifier.
      operationId: delete_identifier
      parameters:
      - name: id
        in: path
        description: Identifier id
        required: true
        schema:
          $ref: '#/components/schemas/IdentifierId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/identifier/v1/resolve-trust-entity:
    post:
      tags:
      - identifier_management
      summary: Resolve trust entities
      description: |
        Resolves trust entity information of supplied identifiers.

        For holders and verifiers: get identifiers from offered credentials or shared
        proofs and pass them here. The system checks the identifiers against your trust
        anchors and returns information for trusted entities.

        Note that trust information is informational only. Holders and verifiers can
        decide how to proceed with any given interaction.
      operationId: resolve_trust_entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResolveTrustEntitiesRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: '#/components/schemas/ResolvedIdentifierTrustEntityResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/wallet-unit/v1:
    get:
      tags:
      - wallet_unit
      summary: List wallet units
      description: |
        Returns a list of wallet units.
      operationId: get_wallet_unit_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - createdDate
          - lastModified
          - name
          - status
          - os
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: Return only wallet units with a name starting with this string.
        required: false
        schema:
          type: string
      - name: ids[]
        in: query
        description: Filter by specific wallet unit UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: status[]
        in: query
        description: Return only wallet units with the specified status.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - REVOKED
            - PENDING
            - ERROR
      - name: os[]
        in: query
        description: Return only wallet units with the specified operating systems.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - IOS
            - ANDROID
            - WEB
      - name: walletProviderType[]
        in: query
        description: Return only wallet units with the specified wallet provider types.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: attestation
        in: query
        description: Return only the wallet unit with the specified attestation.
        required: false
        schema:
          type: string
      - name: createdDateAfter
        in: query
        description: |-
          Return only wallet units created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only wallet units created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - totalPages
                - totalItems
                - values
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/WalletUnitResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/wallet-unit/v1/{id}:
    get:
      tags:
      - wallet_unit
      summary: Retrieve a wallet unit
      description: Returns details on a given wallet unit.
      operationId: get_wallet_unit_details
      parameters:
      - name: id
        in: path
        description: Wallet unit id
        required: true
        schema:
          $ref: '#/components/schemas/WalletUnitId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - os
                - status
                - walletProviderType
                - walletProviderName
                properties:
                  authenticationKeyJwk:
                    $ref: '#/components/schemas/PublicJwk'
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    $ref: '#/components/schemas/WalletUnitId'
                  lastIssuance:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  os:
                    $ref: '#/components/schemas/WalletUnitOsRestEnum'
                  status:
                    $ref: '#/components/schemas/WalletUnitStatusRestEnum'
                  walletProviderName:
                    type: string
                  walletProviderType:
                    $ref: '#/components/schemas/WalletProviderTypeRestEnum'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    delete:
      tags:
      - wallet_unit
      summary: Delete a wallet unit
      description: Permanently deletes a given wallet unit from the database, including history entries.
      operationId: remove_wallet_unit
      parameters:
      - name: id
        in: path
        description: Wallet unit id
        required: true
        schema:
          $ref: '#/components/schemas/WalletUnitId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/wallet-unit/v1/{id}/revoke:
    post:
      tags:
      - wallet_unit
      summary: Revoke a wallet unit
      description: |
        Revokes a wallet unit, preventing issuance of any new attestation. If Token
        Status List is enabled for WUAs, all existing attestations are revoked as well.
      operationId: revoke_wallet_unit
      parameters:
      - name: id
        in: path
        description: Wallet unit id
        required: true
        schema:
          $ref: '#/components/schemas/WalletUnitId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1/{id}:
    get:
      tags:
      - key
      summary: Retrieve key
      description: Returns detailed information about a key.
      operationId: get_key
      parameters:
      - name: id
        in: path
        description: Key id
        required: true
        schema:
          $ref: '#/components/schemas/KeyId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - organisationId
                - name
                - publicKey
                - keyType
                - storageType
                - isRemote
                properties:
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    $ref: '#/components/schemas/KeyId'
                  isRemote:
                    type: boolean
                  keyType:
                    type: string
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  publicKey:
                    type: string
                  storageType:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1:
    get:
      tags:
      - key
      summary: List keys
      description: Returns a list of keys created in an organization.
      operationId: get_key_list
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
          - publicKey
          - keyType
          - storageType
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: organisationId
        in: query
        description: |-
          Required when not using STS authentication mode. Specifies the
          organizational context for this operation. When using STS
          authentication, this value is derived from the token.
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: name
        in: query
        description: Return all keys with a name starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: keyTypes[]
        in: query
        description: Return only keys using the specified algorithms.
        required: false
        schema:
          type: array
          items:
            type: string
        example:
        - EDDSA
      - name: keyStorages[]
        in: query
        description: |-
          Return only keys using the specified storage types.
          Possible values come from your configuration.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: ids[]
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: isRemote
        in: query
        description: Return only keys being a remote.
        required: false
        schema:
          type: string
          enum:
          - 'false'
          - 'true'
      - name: createdDateAfter
        in: query
        description: |-
          Return only keys created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only keys created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only keys last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only keys last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - key
      summary: Create a key
      description: |
        Creates a key within an organization, which can be used to create a DID.

        The `keyType` and `storageType` values must reference specific configuration
        instances from your system configuration. This is because the system allows
        multiple configurations of the same type.

        Related guide: [Keys](/keys)
      operationId: post_key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1/{id}/generate-csr:
    post:
      tags:
      - key
      summary: Generate a CSR
      description: |
        Generates a Certificate Signing Request (CSR). Supports mDL document
        signing certificates (for mdoc issuance) and Certificate Authority
        (CA) certificates.

        Use the POST /identifier endpoint to import signed certificates and CAs.
      operationId: generate_csr
      parameters:
      - name: id
        in: path
        description: Key ID. Must be either `ECDSA` or `EDDSA`.
        required: true
        schema:
          $ref: '#/components/schemas/KeyId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyGenerateCSRRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - content
                properties:
                  content:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /ssi/did-web/v1/{id}/did.json:
    get:
      tags:
      - ssi
      summary: Retrieve did:web document
      description: |
        Retrieve a `did:web` document by its UUID.
      operationId: get_did_web_document
      parameters:
      - name: id
        in: path
        description: Did id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - '@context'
                - id
                - verificationMethod
                properties:
                  '@context': {}
                  alsoKnownAs:
                    type: array
                    items:
                      type: string
                  assertionMethod:
                    type: array
                    items:
                      type: string
                  authentication:
                    type: array
                    items:
                      type: string
                  capabilityDelegation:
                    type: array
                    items:
                      type: string
                  capabilityInvocation:
                    type: array
                    items:
                      type: string
                  id:
                    $ref: '#/components/schemas/DidValue'
                  keyAgreement:
                    type: array
                    items:
                      type: string
                  service:
                    type: array
                    items:
                      $ref: '#/components/schemas/DidServiceEndointRestDTO'
                  verificationMethod:
                    type: array
                    items:
                      $ref: '#/components/schemas/DidVerificationMethodRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
  /ssi/did-webvh/v1/{id}/did.jsonl:
    get:
      tags:
      - ssi
      summary: Retrieve did:webvh(did:tdw) document
      description: |
        Retrieve a `did:webvh` (or `did:tdw`) document by its UUID.
      operationId: get_did_webvh_log
      parameters:
      - name: id
        in: path
        description: Did id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      responses:
        '200':
          description: success response
          content:
            text/jsonl: {}
        '400':
          description: invalid did method
        '404':
          description: did not found
        '500':
          description: internal server error
  /ssi/revocation/v1/list/{id}:
    get:
      tags:
      - ssi
      summary: Revocation - retrieve list
      description: |
        Retrieve a revocation list by its UUID.
      operationId: get_revocation_list_by_id
      parameters:
      - name: id
        in: path
        description: Revocation list id
        required: true
        schema:
          $ref: '#/components/schemas/RevocationListId'
      responses:
        '200':
          description: OK
          content:
            application/jwt:
              schema:
                type: string
              example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
            application/ld+json:
              schema:
                type: string
              example:
                '@context':
                - https://www.w3.org/ns/credentials/v2
                credentialSubject:
                  encodedList: uH4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA
                  id: https://example.com/status/3#list
                  statusPurpose: revocation
                  type: BitstringStatusList
                id: https://example.com/credentials/status/3
                issuer: did:example:12345
                type:
                - VerifiableCredential
                - BitstringStatusListCredential
            application/statuslist+jwt:
              schema:
                type: string
        '404':
          description: Revocation list not found
        '500':
          description: Server error
  /ssi/revocation/v1/lvvc/{id}:
    get:
      tags:
      - ssi
      summary: Get LVVC by credential
      description: |
        Retrieve the LVVC of a credential by the credential's UUID. This is needed to
        check the validity of credential's issued with the LVVC revocation method.
      operationId: get_lvvc_by_credential_id
      parameters:
      - name: id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LVVCIssuerResponseRestDTO'
        '400':
          description: Credential in PENDING, REQUESTED or CREATED state/Invalid holder token
        '404':
          description: Credential not found
        '500':
          description: Server error
      security:
      - remote-agent: []
  /ssi/revocation/v1/crl/{id}:
    get:
      tags:
      - ssi
      summary: Revocation - retrieve CRL
      description: |
        Retrieve a CRL by its UUID.
      operationId: get_crl_by_id
      parameters:
      - name: id
        in: path
        description: Revocation list id
        required: true
        schema:
          $ref: '#/components/schemas/RevocationListId'
      responses:
        '200':
          description: OK
          content:
            application/pkix-crl: {}
        '404':
          description: Revocation list not found
        '500':
          description: Server error
  /ssi/context/v1/{id}:
    get:
      tags:
      - ssi
      summary: Retrieve @context
      description: |
        Retrieve the `@context` of a JSON-LD credential by the UUID of the
        credential schema.
      operationId: get_json_ld_context
      parameters:
      - name: id
        in: path
        description: context id or credentialSchemaId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/JsonLDContextResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/trust/v1/{trustAnchorId}:
    get:
      tags:
      - ssi
      summary: Retrieve Trust List
      description: |
        Retrieve a trust list by the UUID of the trust anchor.
      operationId: ssi_get_trust_list
      parameters:
      - name: trustAnchorId
        in: path
        description: Trust anchor id
        required: true
        schema:
          $ref: '#/components/schemas/TrustAnchorId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTrustAnchorResponseRestDTO'
        '400':
          description: Trust anchor type is not SIMPLE_TRUST_LIST
        '404':
          description: Trust anchor not found
        '500':
          description: Server error
  /ssi/trust-entity/v1/{didValue}:
    get:
      tags:
      - ssi
      summary: Retrieve a trust entity
      description: |
        Retrieve a trust entity by the value of the DID.
      operationId: ssi_get_trust_entity
      parameters:
      - name: didValue
        in: path
        description: DID value
        required: true
        schema:
          $ref: '#/components/schemas/DidValue'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - role
                - trustAnchor
                - state
                - entityKey
                - type
                properties:
                  ca:
                    $ref: '#/components/schemas/TrustEntityCertificateResponseRestDTO'
                    description: Human-readable X.509 certificate details.
                  content:
                    type: string
                    description: If `type` is `CA`, the certificate in PEM format.
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                    description: DID details.
                  entityKey:
                    $ref: '#/components/schemas/TrustEntityKey'
                    description: DID value or certificate's `subject`.
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                    description: Trust entity ID.
                  identifier:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Identifier details.
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type: string
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type: string
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                    description: The role the entity is trusted to perform.
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                    description: The entity's status on the trust anchor.
                  termsUrl:
                    type: string
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                    description: Trust anchor details.
                  type:
                    $ref: '#/components/schemas/TrustEntityTypeRest'
                  website:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - remote-agent: []
    patch:
      tags:
      - ssi
      summary: Update a trust entity
      description: |
        Update a trust entity by its DID value.
      operationId: ssi_patch_trust_entity
      parameters:
      - name: didValue
        in: path
        description: DID value
        required: true
        schema:
          $ref: '#/components/schemas/DidValue'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchTrustEntityRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - remote-agent: []
  /ssi/trust-entity/v1:
    post:
      tags:
      - ssi
      summary: Create a trust entity
      description: |
        Add a trust entity to a trust anchor.
      operationId: ssi_post_trust_entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SSIPostTrustEntityRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - remote-agent: []
  /ssi/schema/v1/{id}:
    get:
      tags:
      - ssi
      summary: Retrieve credential schema service
      description: |
        Retrieve a credential schema by its UUID.
      operationId: ssi_get_credential_schema
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialSchemaResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/proof-schema/v1/{id}:
    get:
      tags:
      - ssi
      summary: Retrieve proof schema service
      description: |
        Retrieve a proof schema by its UUID.
      operationId: ssi_get_proof_schema
      parameters:
      - name: id
        in: path
        description: Proof schema id
        required: true
        schema:
          $ref: '#/components/schemas/ProofSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProofSchemaResponseRestDTO'
        '404':
          description: Proof schema not found
        '500':
          description: Server error
  /ssi/vct/v1/{organisationId}/{vctType}:
    get:
      tags:
      - ssi
      summary: Retrieve SD-JWT VC type metadata service
      description: |
        Retrieve the type metadata of an SD-JWT VC credential.
      operationId: ssi_get_sd_jwt_vc_type_metadata
      parameters:
      - name: organisationId
        in: path
        description: Organization id
        required: true
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: vctType
        in: path
        description: VctType
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SdJwtVcTypeMetadataResponseRestDTO'
        '404':
          description: Type metadata not found
        '500':
          description: Server error
  /ssi/ca/{id}:
    get:
      tags:
      - ssi
      summary: Certificate Authority - retrieve certificate
      description: |
        Retrieve a Certificate Authority certificate by its UUID.
      operationId: ssi_get_certificate_authority
      parameters:
      - name: id
        in: path
        description: Certificate Authority id
        required: true
        schema:
          $ref: '#/components/schemas/CertificateId'
      responses:
        '200':
          description: OK
          content:
            application/pkix-cert: {}
        '404':
          description: Certificate Authority not found
        '500':
          description: Server error
  /ssi/wallet-unit/v1:
    post:
      tags:
      - ssi
      summary: Register wallet unit
      description: |
        Register new wallet unit.
      operationId: register_wallet_unit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterWalletUnitRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    $ref: '#/components/schemas/WalletUnitId'
                  nonce:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
  /ssi/wallet-unit/v1/{id}/activate:
    post:
      tags:
      - ssi
      summary: Activates wallet unit
      description: |
        Activates wallet unit.
      operationId: activate_wallet_unit
      parameters:
      - name: id
        in: path
        description: Wallet unit id
        required: true
        schema:
          $ref: '#/components/schemas/WalletUnitId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletUnitActivationRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
  /ssi/wallet-unit/v1/{id}/issue-attestation:
    post:
      tags:
      - ssi
      summary: Issues wallet attestations
      description: |
        Issue wallet app and wallet unit attestations.
      operationId: issue_wallet_unit_attestation
      parameters:
      - name: id
        in: path
        description: Wallet unit id
        required: true
        schema:
          $ref: '#/components/schemas/WalletUnitId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueWalletUnitAttestationRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  waa:
                    type: array
                    items:
                      type: string
                    description: deprecated, replaced by `wia`
                    deprecated: true
                  wia:
                    type: array
                    items:
                      type: string
                  wua:
                    type: array
                    items:
                      type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - wallet-unit: []
  /ssi/wallet-provider/v1/{walletProvider}:
    get:
      tags:
      - ssi
      summary: Returns metadata of given wallet provider
      description: |
        Returns metadata of given wallet provider.
      operationId: get_wallet_provider_metadata
      parameters:
      - name: walletProvider
        in: path
        description: Wallet provider
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - walletUnitAttestation
                - name
                properties:
                  appVersion:
                    $ref: '#/components/schemas/AppVersionRestDTO'
                  name:
                    type: string
                  walletUnitAttestation:
                    $ref: '#/components/schemas/WalletUnitAttestationMetadataRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
  /.well-known/openid-credential-issuer/ssi/openid4vci/final-1.0/{protocol_id}/{credential_schema_id}:
    get:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Retrieve issuer metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_get_issuer_metadata
      parameters:
      - name: protocol_id
        in: path
        description: Issuance protocol id
        required: true
        schema:
          type: string
      - name: credential_schema_id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIIssuerMetadataResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /.well-known/oauth-authorization-server/ssi/openid4vci/final-1.0/{protocol_id}/{credential_schema_id}:
    get:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - OAuth authorization server
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_oauth_authorization_server
      parameters:
      - name: protocol_id
        in: path
        description: Issuance protocol id
        required: true
        schema:
          type: string
      - name: credential_schema_id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthAuthorizationServerMetadataRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/final-1.0/{credential_schema_id}/offer/{credential_id}:
    get:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Retrieve credential offer
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_get_credential_offer
      parameters:
      - name: credential_schema_id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: credential_id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIFinal1CredentialOfferRestDTO'
        '400':
          description: Invalid request
        '404':
          description: Credential not found
        '500':
          description: Server error
  /ssi/openid4vci/final-1.0/{id}/token:
    post:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Create token
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_create_token
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: OAuth-Client-Attestation
        in: header
        description: OAuth Client Attestation JWT for attestation-based client authentication
        required: false
        schema:
          type: string
      - name: OAuth-Client-Attestation-PoP
        in: header
        description: OAuth Client Attestation Proof of Possession JWT
        required: false
        schema:
          type: string
      requestBody:
        description: Token request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VCITokenRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCITokenResponseRestDTO'
        '400':
          description: OIDC token errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
  /ssi/openid4vci/final-1.0/{id}/credential:
    post:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Create credential
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_create_credential
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Credential request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenID4VCIFinal1CredentialRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIFinal1CredentialResponseRestDTO'
        '400':
          description: OIDC credential errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
      security:
      - openID4VCI: []
  /ssi/openid4vci/final-1.0/{id}/notification:
    post:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Credential notification
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_credential_notification
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Notification request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenID4VCINotificationRequestRestDTO'
        required: true
      responses:
        '204':
          description: OK
        '400':
          description: OIDC credential errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
      security:
      - openID4VCI: []
  /ssi/openid4vci/final-1.0/{protocol_id}/nonce:
    post:
      tags:
      - openid4vci-final1_0
      summary: OID4VC - Generate nonce
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_final1_0_nonce
      parameters:
      - name: protocol_id
        in: path
        description: Issuance protocol id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCINonceResponseRestDTO'
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{id}/.well-known/openid-credential-issuer:
    get:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - Retrieve issuer metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_get_issuer_metadata
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIIssuerMetadataResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{id}/.well-known/oauth-authorization-server:
    get:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - OAuth authorization server
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_oauth_authorization_server
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthAuthorizationServerMetadataRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{id}/.well-known/openid-configuration:
    get:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - Service discovery
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_service_discovery
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIDiscoveryResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{credential_schema_id}/offer/{credential_id}:
    get:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - Retrieve credential offer
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_get_credential_offer
      parameters:
      - name: credential_schema_id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: credential_id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCICredentialOfferRestDTO'
        '400':
          description: Invalid request
        '404':
          description: Credential not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{id}/token:
    post:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - Create token
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_create_token
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: grant_type
        in: query
        required: true
        schema:
          type: string
        example: urn:ietf:params:oauth:grant-type:pre-authorized_code
      - name: pre-authorized_code
        in: query
        required: false
        schema:
          type: string
      - name: refresh_token
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCITokenResponseRestDTO'
        '400':
          description: OIDC token errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
  /ssi/openid4vci/draft-13-swiyu/{id}/credential:
    post:
      tags:
      - openid4vci-draft13-swiyu
      summary: OID4VC - Create credential
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_swiyu_create_credential
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Credential request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenID4VCICredentialRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCISwiyuCredentialResponseRestDTO'
        '400':
          description: OIDC credential errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
      security:
      - openID4VCI: []
  /ssi/openid4vci/draft-13/{id}/.well-known/openid-credential-issuer:
    get:
      tags:
      - openid4vci-draft13
      summary: OID4VC - Retrieve issuer metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_get_issuer_metadata
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIIssuerMetadataResponseRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13/{credential_schema_id}/offer/{credential_id}:
    get:
      tags:
      - openid4vci-draft13
      summary: OID4VC - Retrieve credential offer
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_get_credential_offer
      parameters:
      - name: credential_schema_id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      - name: credential_id
        in: path
        description: Credential id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCICredentialOfferRestDTO'
        '400':
          description: Invalid request
        '404':
          description: Credential not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13/{id}/.well-known/oauth-authorization-server:
    get:
      tags:
      - openid4vci-draft13
      summary: OID4VC - OAuth authorization server
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_oauth_authorization_server
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthAuthorizationServerMetadataRestDTO'
        '404':
          description: Credential schema not found
        '500':
          description: Server error
  /ssi/openid4vci/draft-13/{id}/token:
    post:
      tags:
      - openid4vci-draft13
      summary: OID4VC - Create token
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_create_token
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Token request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VCITokenRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCITokenResponseRestDTO'
        '400':
          description: OIDC token errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
  /ssi/openid4vci/draft-13/{id}/credential:
    post:
      tags:
      - openid4vci-draft13
      summary: OID4VC - Create credential
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_create_credential
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Credential request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenID4VCICredentialRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCICredentialResponseRestDTO'
        '400':
          description: OIDC credential errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
      security:
      - openID4VCI: []
  /ssi/openid4vci/draft-13/{id}/notification:
    post:
      tags:
      - openid4vci-draft13
      summary: OID4VC - Credential notification
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vci_draft13_credential_notification
      parameters:
      - name: id
        in: path
        description: Credential schema id
        required: true
        schema:
          $ref: '#/components/schemas/CredentialSchemaId'
      requestBody:
        description: Notification request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenID4VCINotificationRequestRestDTO'
        required: true
      responses:
        '204':
          description: OK
        '400':
          description: OIDC credential errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Credential schema not found
        '409':
          description: Wrong credential state
        '500':
          description: Server error
      security:
      - openID4VCI: []
  /ssi/openid4vp/draft-20/response:
    post:
      tags:
      - openid4vp-draft20
      summary: OID4VC - Verifier direct post
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft20_direct_post
      requestBody:
        description: Verifier request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VPDirectPostRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDirectPostResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '409':
          description: Wrong proof state
        '500':
          description: Server error
  /ssi/openid4vp/draft-20/{id}/presentation-definition:
    get:
      tags:
      - openid4vp-draft20
      summary: OID4VC - Verifier presentation definition
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft20_presentation_definition
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPPresentationDefinitionResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/draft-20/{id}/client-metadata:
    get:
      tags:
      - openid4vp-draft20
      summary: OID4VC - Client metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft20_client_metadata
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDraftClientMetadataResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/draft-20/{id}/client-request:
    get:
      tags:
      - openid4vp-draft20
      summary: OID4VC - Proof request data
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft20_client_request
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/oauth-authz-req+jwt:
              schema:
                type: string
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/final-1.0/response:
    post:
      tags:
      - openid4vp-final-1.0
      summary: OID4VC - Verifier direct post
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_final1_0_direct_post
      requestBody:
        description: Verifier request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VPDirectPostRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDirectPostResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '409':
          description: Wrong proof state
        '500':
          description: Server error
  /ssi/openid4vp/final-1.0/{id}/client-metadata:
    get:
      tags:
      - openid4vp-final-1.0
      summary: OID4VC - Client metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_final1_0_client_metadata
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientMetadata'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/final-1.0/{id}/client-request:
    get:
      tags:
      - openid4vp-final-1.0
      summary: OID4VC - Proof request data
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_final1_0_client_request
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/oauth-authz-req+jwt:
              schema:
                type: string
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/draft-20-swiyu/response/{id}:
    post:
      tags:
      - openid4vp-draft20-swiyu
      summary: OID4VC - Verifier direct post
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft20_swiyu_direct_post
      parameters:
      - name: id
        in: path
        description: Interaction id
        required: true
        schema:
          $ref: '#/components/schemas/InteractionId'
      requestBody:
        description: Verifier request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VPDirectPostRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDirectPostResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '409':
          description: Wrong proof state
        '500':
          description: Server error
  /ssi/openid4vp/draft-25/response:
    post:
      tags:
      - openid4vp-draft25
      summary: OID4VC - Verifier direct post
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft25_direct_post
      requestBody:
        description: Verifier request
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OpenID4VPDirectPostRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDirectPostResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '409':
          description: Wrong proof state
        '500':
          description: Server error
  /ssi/openid4vp/draft-25/{id}/presentation-definition:
    get:
      tags:
      - openid4vp-draft25
      summary: OID4VC - Verifier presentation definition
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft25_presentation_definition
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPPresentationDefinitionResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/draft-25/{id}/client-metadata:
    get:
      tags:
      - openid4vp-draft25
      summary: OID4VC - Client metadata
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft25_client_metadata
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VPDraftClientMetadataResponseRestDTO'
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /ssi/openid4vp/draft-25/{id}/client-request:
    get:
      tags:
      - openid4vp-draft25
      summary: OID4VC - Proof request data
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: oid4vp_draft25_client_request
      parameters:
      - name: id
        in: path
        description: Proof id
        required: true
        schema:
          $ref: '#/components/schemas/ProofId'
      responses:
        '200':
          description: OK
          content:
            application/oauth-authz-req+jwt:
              schema:
                type: string
        '400':
          description: OIDC Verifier errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenID4VCIErrorResponseRestDTO'
        '404':
          description: Proof does not exist
        '500':
          description: Server error
  /api/config/v1:
    get:
      tags:
      - other
      summary: Retrieve configuration
      description: |
        Returns the system configuration.

        While the system configuration cannot be modified via the API, it
        is partially exposed through the API. Understanding the configuration
        is important for determining which solution components are available,
        how to invoke each component, and how to retrieve capabilities and
        instance reports.

        The API uses a pattern of referencing configuration instances rather
        than specifying types directly. Always check your system configuration
        to determine the correct reference identifiers for:

        - Credential formats
        - Key algorithms
        - Key storage providers
        - Issuance protocols
        - Verification protocols
        - Revocation methods
        - Datatypes
        - Transport protocols
        - Trust management solutions
        - DID methods

        Related guide: [Configuration](/configure)
      operationId: get_config
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - format
                - identifier
                - issuanceProtocol
                - verificationProtocol
                - transport
                - revocation
                - did
                - datatype
                - keyAlgorithm
                - keySecurityLevel
                - keyStorage
                - trustManagement
                - cacheEntities
                - task
                - blobStorage
                - frontend
                - credentialIssuer
                - verificationEngagement
                - walletProvider
                - signer
                properties:
                  blobStorage:
                    type: object
                    description: Blob storage
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  cacheEntities:
                    type: object
                    description: Entities held in temporary storage.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  credentialIssuer:
                    type: object
                    description: OpenID4VCI authorization code flow
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  datatype:
                    type: object
                    description: Datatypes for claim validation.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  did:
                    type: object
                    description: DID methods used for identifying agents.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  format:
                    type: object
                    description: Credential formats for issuing, holding and verifying.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  frontend:
                    type: object
                    description: Frontend configuration
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  identifier:
                    type: object
                    description: Identifier types to associate entities to schemas, credentials, trust lists and proofs.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  issuanceProtocol:
                    type: object
                    description: Protocols for the issuance of credentials.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  keyAlgorithm:
                    type: object
                    description: Key algorithms used for signatures.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  keySecurityLevel:
                    type: object
                    description: Supported key storage security levels.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  keyStorage:
                    type: object
                    description: How keys are stored.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  revocation:
                    type: object
                    description: Revocation methods for credential status.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  signer:
                    type: object
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  task:
                    type: object
                    description: Maintenance tasks
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  transport:
                    type: object
                    description: Transport protocols over which to communicate.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  trustManagement:
                    type: object
                    description: Trust management solutions.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  verificationEngagement:
                    type: object
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  verificationProtocol:
                    type: object
                    description: Protocols for the verification of credentials.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
                  walletProvider:
                    type: object
                    additionalProperties: {}
                    propertyNames:
                      type: string
                    example: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-entity/v1:
    get:
      tags:
      - trust_entity
      summary: List trust entities
      description: Returns a list of trust entities in an organization.
      operationId: get_trust_entities
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - role
          - lastModified
          - state
          - entityKey
          - type
          - createdDate
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: types[]
        in: query
        description: Filter by one or more trust entity types.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - DID
            - CA
      - name: entityKey
        in: query
        description: Specify entities to return by their DID value or their certificate `subject`.
        required: false
        schema:
          $ref: '#/components/schemas/TrustEntityKey'
      - name: role
        in: query
        description: Filter by role.
        required: false
        schema:
          $ref: '#/components/schemas/TrustEntityRoleRest'
      - name: trustAnchorId
        in: query
        description: Return only entities from the specified trust anchor.
        required: false
        schema:
          $ref: '#/components/schemas/TrustAnchorId'
      - name: didId
        in: query
        description: Filter by specific DID UUIDs.
        required: false
        schema:
          $ref: '#/components/schemas/DidId'
      - name: exact[]
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: organisationId
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: states[]
        in: query
        description: Filter by one or more states.
        required: false
        schema:
          type: array
          items:
            type: string
            description: Trust entity state.
            enum:
            - ACTIVE
            - REMOVED
            - WITHDRAWN
            - REMOVED_AND_WITHDRAWN
      - name: createdDateAfter
        in: query
        description: |-
          Return only entities created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only entities created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only entities last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only entities last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/ListTrustEntitiesResponseItemRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - trust_entity
      summary: Create a trust entity
      description: Adds a trust entity to a trust anchor.
      operationId: create_trust_entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTrustEntityRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-entity/v1/{id}:
    get:
      tags:
      - trust_entity
      summary: Retrieve a trust entity
      description: Returns details on a given trust entity.
      operationId: get_trust_entity_details
      parameters:
      - name: id
        in: path
        description: Trust Entity id
        required: true
        schema:
          $ref: '#/components/schemas/TrustEntityId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - role
                - trustAnchor
                - state
                - entityKey
                - type
                properties:
                  ca:
                    $ref: '#/components/schemas/TrustEntityCertificateResponseRestDTO'
                    description: Human-readable X.509 certificate details.
                  content:
                    type: string
                    description: If `type` is `CA`, the certificate in PEM format.
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                    description: DID details.
                  entityKey:
                    $ref: '#/components/schemas/TrustEntityKey'
                    description: DID value or certificate's `subject`.
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                    description: Trust entity ID.
                  identifier:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Identifier details.
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type: string
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type: string
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                    description: The role the entity is trusted to perform.
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                    description: The entity's status on the trust anchor.
                  termsUrl:
                    type: string
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                    description: Trust anchor details.
                  type:
                    $ref: '#/components/schemas/TrustEntityTypeRest'
                  website:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    patch:
      tags:
      - trust_entity
      summary: Update a trust entity
      description: Updates a trust entity in a trust anchor.
      operationId: update_trust_entity
      parameters:
      - name: id
        in: path
        description: Trust entity ID
        required: true
        schema:
          $ref: '#/components/schemas/TrustEntityId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchTrustEntityRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-entity/remote/v1:
    post:
      tags:
      - trust_entity
      summary: Create a remote trust entity
      description: Create a trust entity inside a remote trust anchor
      operationId: create_remote_trust_entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRemoteTrustEntityRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/trust-entity/remote/v1/{did_id}:
    get:
      tags:
      - trust_entity
      summary: Retrieve a remote trust entity
      description: Returns details of a remote trust entity.
      operationId: get_remote_trust_entity
      parameters:
      - name: did_id
        in: path
        description: DID id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - createdDate
                - lastModified
                - name
                - role
                - trustAnchor
                - state
                - entityKey
                - type
                properties:
                  ca:
                    $ref: '#/components/schemas/TrustEntityCertificateResponseRestDTO'
                    description: Human-readable X.509 certificate details.
                  content:
                    type: string
                    description: If `type` is `CA`, the certificate in PEM format.
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                    description: DID details.
                  entityKey:
                    $ref: '#/components/schemas/TrustEntityKey'
                    description: DID value or certificate's `subject`.
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                    description: Trust entity ID.
                  identifier:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
                    description: Identifier details.
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type: string
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type: string
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                    description: The role the entity is trusted to perform.
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                    description: The entity's status on the trust anchor.
                  termsUrl:
                    type: string
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                    description: Trust anchor details.
                  type:
                    $ref: '#/components/schemas/TrustEntityTypeRest'
                  website:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    patch:
      tags:
      - trust_entity
      summary: Update a remote trust entity
      description: Updates a trust entity inside a remote trust anchor.
      operationId: update_remote_trust_entity
      parameters:
      - name: did_id
        in: path
        description: DID id
        required: true
        schema:
          $ref: '#/components/schemas/DidId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchTrustEntityRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/organisation/v1/{id}:
    get:
      tags:
      - organisation_management
      summary: Retrieve organization
      description: Returns information about an organization.
      operationId: get_organisation
      parameters:
      - name: id
        in: path
        description: Organization id
        required: true
        schema:
          $ref: '#/components/schemas/OrganisationId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - name
                - createdDate
                - lastModified
                properties:
                  createdDate:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  deactivatedAt:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    type: string
                    format: uuid
                  lastModified:
                    type: string
                    format: date-time
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  walletProvider:
                    type: string
                  walletProviderIssuer:
                    $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    patch:
      tags:
      - organisation_management
      summary: Update or insert organization
      description: |
        Updates the name or deactivates an organization if it exists, otherwise creates
        a new organization using the provided UUID and name.
      operationId: patch_organisation
      parameters:
      - name: id
        in: path
        description: Organization id
        required: true
        schema:
          $ref: '#/components/schemas/OrganisationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertOrganisationRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/organisation/v1:
    get:
      tags:
      - organisation_management
      summary: List organizations
      description: Returns a list of organizations in the system.
      operationId: get_organisations
      parameters:
      - name: page
        in: query
        description: The page number to retrieve (0-based indexing).
        required: true
        schema:
          type: integer
          format: int32
          minimum: 0
        example: 0
      - name: pageSize
        in: query
        description: Number of items to return per page. If omitted, defaults to 30.
        required: true
        schema:
          type: integer
          format: int32
          default: 30
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: The field value to sort results by.
        required: false
        schema:
          type: string
          enum:
          - name
          - createdDate
      - name: sortDirection
        in: query
        description: |-
          Direction to sort results. If a sorting value is passed, the
          direction defaults to ASC.
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: name
        in: query
        description: Return all organisations with a name starting with this string. Not case-sensitive.
        required: false
        schema:
          type: string
      - name: exact[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: createdDateAfter
        in: query
        description: |-
          Return only organisations created after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: createdDateBefore
        in: query
        description: |-
          Return only organisations created before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedAfter
        in: query
        description: |-
          Return only organisations last modified after this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedBefore
        in: query
        description: |-
          Return only organisations last modified before this time.
          Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - values
                - totalPages
                - totalItems
                properties:
                  totalItems:
                    type: integer
                    format: int64
                    minimum: 0
                  totalPages:
                    type: integer
                    format: int64
                    minimum: 0
                  values:
                    type: array
                    items:
                      $ref: '#/components/schemas/GetOrganisationDetailsResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - organisation_management
      summary: Create organization
      description: |
        Creates an organization. If no UUID is passed, one will be created.
        If no name is passed, the UUID will be used.

        All entities and transactions belong to one organization. The system
        supports the creation of as many organizations as is needed.
      operationId: post_organisation
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: 'null'
              - $ref: '#/components/schemas/CreateOrganisationRequestRestDTO'
            example:
              id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              name: default organisation
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    $ref: '#/components/schemas/OrganisationId'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/signature/v1:
    post:
      tags:
      - signature
      summary: Create a signature
      description: |
        Creates signature.

        The `signer` value must reference a specific signature provider
        configured in your system.
      operationId: create_signature
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSignatureRequestRestDTO'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - result
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID used to revoke the signature.
                  result:
                    type: string
                    description: Signer-specific signature representation.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/signature/v1/{id}/revoke:
    post:
      tags:
      - signature
      summary: Revoke a signature
      description: |
        Revokes a previously-created signature.
      operationId: revoke_signature
      parameters:
      - name: id
        in: path
        description: Signature id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/signature/v1/revocation-check:
    post:
      tags:
      - signature
      summary: Retrieve revocation information of specified signatures
      description: |
        Returns revocation information about the specified signatures.
      operationId: signature_revocation_check
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignatureRevocationCheckRequestRestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/SignatureStatusInfoRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    $ref: '#/components/schemas/Cause'
                  code:
                    type: string
                  message:
                    type: string
      security:
      - bearer: []
  /api/build-info/v1:
    get:
      tags:
      - other
      summary: Retrieve version
      description: Returns version information for Procivis One.
      operationId: get_build_info
      responses:
        '200':
          description: Ok
  /health:
    get:
      tags:
      - other
      summary: Health check
      description: Returns a `204` response when the system is healthy.
      operationId: health_check
      responses:
        '204':
          description: No content
  /metrics:
    get:
      tags:
      - other
      summary: Retrieve metrics
      description: Returns system metrics.
      operationId: get_metrics
      responses:
        '200':
          description: OK
        '500':
          description: Internal error
components:
  schemas:
    AppVersionRestDTO:
      type: object
      required:
      - minimum
      properties:
        minimum:
          type: string
        minimumRecommended:
          type: string
        reject:
          type: array
          items:
            type: string
        updateScreen:
          $ref: '#/components/schemas/UpdateScreenRestDTO'
    ApplicableCredentialOrFailureHintRestEnum:
      oneOf:
      - type: object
        required:
        - applicableCredentials
        properties:
          applicableCredentials:
            type: array
            items:
              $ref: '#/components/schemas/GetCredentialResponseRestDTO_CredentialDetailClaimExtResponseRestDTO'
      - type: object
        required:
        - failureHint
        properties:
          failureHint:
            $ref: '#/components/schemas/CredentialQueryFailureHintResponseRestDTO'
    Boolean:
      type: string
      enum:
      - 'false'
      - 'true'
    CacheTypeRestEnum:
      type: string
      enum:
      - DID_DOCUMENT
      - JSON_LD_CONTEXT
      - STATUS_LIST_CREDENTIAL
      - VCT_METADATA
      - JSON_SCHEMA
      - TRUST_LIST
      - X509_CRL
      - ANDROID_ATTESTATION_CRL
      - OPENID_METADATA
    Cause:
      type: object
      required:
      - message
      properties:
        message:
          type: string
    CertificateId:
      type: string
      format: uuid
    CertificateResponseRestDTO:
      type: object
      required:
      - id
      - identifierId
      - createdDate
      - lastModified
      - name
      - chain
      - state
      - x509Attributes
      properties:
        chain:
          type: string
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/CertificateId'
        identifierId:
          $ref: '#/components/schemas/IdentifierId'
        key:
          $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        state:
          $ref: '#/components/schemas/CertificateStateRest'
        x509Attributes:
          $ref: '#/components/schemas/CertificateX509AttributesRestDTO'
    CertificateStateRest:
      type: string
      enum:
      - NOT_YET_ACTIVE
      - ACTIVE
      - REVOKED
      - EXPIRED
    CertificateX509AttributesRestDTO:
      type: object
      required:
      - serialNumber
      - notBefore
      - notAfter
      - issuer
      - subject
      - fingerprint
      - extensions
      properties:
        extensions:
          type: array
          items:
            $ref: '#/components/schemas/CertificateX509ExtensionRestDTO'
        fingerprint:
          type: string
        issuer:
          type: string
        notAfter:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        notBefore:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        serialNumber:
          type: string
        subject:
          type: string
    CertificateX509ExtensionRestDTO:
      type: object
      required:
      - oid
      - value
      - critical
      properties:
        critical:
          type: boolean
        oid:
          type: string
        value:
          type: string
    ClaimProofSchemaRequestRestDTO:
      type: object
      description: |-
        Defines the set of attributes being requested when making proof requests
        using this schema.
      required:
      - id
      - required
      properties:
        id:
          type: string
          format: uuid
          description: The `id` of the attribute being requested, from the `claims` object.
        required:
          type: boolean
          description: Whether the attribute is required in the proof request.
      additionalProperties: false
    ClientIdSchemeRestEnum:
      type: string
      enum:
      - redirect_uri
      - verifier_attestation
      - decentralized_identifier
      - x509_san_dns
      - x509_hash
    ClientMetadata:
      type: object
      required:
      - vp_formats_supported
      properties:
        encrypted_response_enc_values_supported:
          type: array
          items:
            $ref: '#/components/schemas/EncryptionAlgorithm'
        id_token_encrypted_response_alg:
          type: string
        id_token_encrypted_response_enc:
          type: string
        jwks:
          $ref: '#/components/schemas/ClientMetadataJwks'
        jwks_uri:
          type: string
        subject_syntax_types_supported:
          type: array
          items:
            type: string
        vp_formats_supported:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PresentationFormat'
          propertyNames:
            type: string
    ClientMetadataJwks:
      type: object
      required:
      - keys
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/PublicJwk'
    ConfigRestDTO:
      type: object
      required:
      - format
      - identifier
      - issuanceProtocol
      - verificationProtocol
      - transport
      - revocation
      - did
      - datatype
      - keyAlgorithm
      - keySecurityLevel
      - keyStorage
      - trustManagement
      - cacheEntities
      - task
      - blobStorage
      - frontend
      - credentialIssuer
      - verificationEngagement
      - walletProvider
      - signer
      properties:
        blobStorage:
          type: object
          description: Blob storage
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        cacheEntities:
          type: object
          description: Entities held in temporary storage.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        credentialIssuer:
          type: object
          description: OpenID4VCI authorization code flow
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        datatype:
          type: object
          description: Datatypes for claim validation.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        did:
          type: object
          description: DID methods used for identifying agents.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        format:
          type: object
          description: Credential formats for issuing, holding and verifying.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        frontend:
          type: object
          description: Frontend configuration
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        identifier:
          type: object
          description: Identifier types to associate entities to schemas, credentials, trust lists and proofs.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        issuanceProtocol:
          type: object
          description: Protocols for the issuance of credentials.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        keyAlgorithm:
          type: object
          description: Key algorithms used for signatures.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        keySecurityLevel:
          type: object
          description: Supported key storage security levels.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        keyStorage:
          type: object
          description: How keys are stored.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        revocation:
          type: object
          description: Revocation methods for credential status.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        signer:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        task:
          type: object
          description: Maintenance tasks
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        transport:
          type: object
          description: Transport protocols over which to communicate.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        trustManagement:
          type: object
          description: Trust management solutions.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        verificationEngagement:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        verificationProtocol:
          type: object
          description: Protocols for the verification of credentials.
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        walletProvider:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
    ContinueIssuanceRequestRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          description: |-
            Starts with the `redirectUri` and is used to continue the
            Authorization Code Flow issuance process.
          example: myapp://example/credential-offer?code=xxx&clientId=myWallet&...
      additionalProperties: false
    ContinueIssuanceResponseRestDTO:
      type: object
      required:
      - interactionId
      - interactionType
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
          description: For reference.
        interactionType:
          $ref: '#/components/schemas/InteractionTypeRestEnum'
        keyAlgorithms:
          type: array
          items:
            type: string
        keyStorageSecurityLevels:
          type: array
          items:
            $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
    CreateCaCSRRequestRestDTO:
      type: object
      required:
      - subject
      properties:
        subject:
          $ref: '#/components/schemas/KeyGenerateCSRRequestSubjectRestDTO'
      additionalProperties: false
    CreateCertificateAuthorityRequestRestDTO:
      type: object
      required:
      - keyId
      properties:
        chain:
          type: string
          description: |-
            Full certificate chain in PEM format, where the leaf certificate
            is a CA certificate signed by the key specified in keyId. The
            chain should include all certificates from the leaf CA up to the root.
        keyId:
          $ref: '#/components/schemas/KeyId'
        name:
          type: string
        selfSigned:
          $ref: '#/components/schemas/CreateSelfSignedCertificateAuthorityRequestRestDTO'
          description: |-
            Configuration to generate a self-signed root CA. Provide certificate
            subject details and validity period. The system creates and signs the
            certificate using the specified keyId.
      additionalProperties: false
    CreateCertificateRequestRestDTO:
      type: object
      required:
      - chain
      - keyId
      properties:
        chain:
          type: string
          description: |-
            Full certificate chain in PEM format, where the leaf certificate is
            signed by the key specified in keyId. The chain should include all
            certificates from the leaf up to the root.
        keyId:
          $ref: '#/components/schemas/KeyId'
        name:
          type: string
      additionalProperties: false
    CreateCredentialRequestRestDTO:
      type: object
      required:
      - credentialSchemaId
      - protocol
      - claimValues
      properties:
        claimValues:
          type: array
          items:
            $ref: '#/components/schemas/CredentialRequestClaimRestDTO'
          description: |-
            Attribute from the credential schema, together with the
            corresponding claim being made.
        credentialSchemaId:
          $ref: '#/components/schemas/CredentialSchemaId'
          description: |-
            UUID of the credential schema to use for this credential. The `id`
            field is returned when creating a credential schema; do not use the
            `schemaId` (document type) value.
        issuer:
          $ref: '#/components/schemas/IdentifierId'
          description: |-
            UUID of the identifier to use for issuing this credential. This
            references an identifier entry (which could be a DID, key, or certificate)
            created via the identifiers API. Use the `id` field from the identifier,
            not the actual DID string or key value.
        issuerCertificate:
          $ref: '#/components/schemas/CertificateId'
          description: |-
            If multiple active certificates are available under the issuer,
            use this value to specify which certificate should be used
            for this credential. If a certificate isn't specified here,
            an active certificate will be used.
        issuerDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidId'
            description: Deprecated. Use `issuer` to set the identifier, regardless of type.
        issuerKey:
          $ref: '#/components/schemas/KeyId'
          description: |-
            If multiple keys are specified for the assertion method of the DID,
            use this value to specify which key should be used as the assertion
            method for this credential. If a key isn't specified here, the first
            key listed during DID creation will be used.
        profile:
          type: string
          description: Optional profile to associate with this credential
        protocol:
          type: string
          description: |-
            Issuance protocol to use for issuing the credential to a wallet. Check
            your `issuanceProtocol` configuration for supported options and
            reference the configured instance name.
          enum:
          - OPENID4VCI_DRAFT13
          - OPENID4VCI_DRAFT13_SWIYU
          - OPENID4VCI_FINAL1
          - OPENID4VCI_FINAL1_HAIP
        redirectUri:
          type: string
          description: |-
            When a credential is accepted, the holder will be redirected to the
            resource specified here, if redirects are enabled in the system
            configuration. The URI must use a scheme (for example `https`, `myapp`)
            that is allowed by the system configuration.
      additionalProperties: false
    CreateCredentialSchemaRequestRestDTO:
      type: object
      required:
      - name
      - format
      - claims
      properties:
        allowSuspension:
          type: boolean
          description: |-
            If `true` and the chosen revocation method allows for suspension,
            credentials issued with this schema can be suspended.
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaRequestRestDTO'
          description: |-
            Defines the set of claims to be asserted when using this credential
            schema.
        externalSchema:
          type: boolean
          deprecated: true
        format:
          type: string
          description: |-
            Choose a credential format for credentials issued using this
            credential schema. Check the `format` object of the configuration
            for supported options and reference the configuration instance.
          enum:
          - JSON_LD_BBSPLUS
          - JSON_LD_CLASSIC
          - JWT
          - MDOC
          - PHYSICAL_CARD
          - SD_JWT
          - SD_JWT_VC
          - SD_JWT_VC_SWIYU
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
          description: |-
            Specifies key storage security requirements that the holder's wallet
            must meet for credential issuance.
        layoutProperties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
            description: |-
              Determines the general appearance of the credential in the holder's
              wallet and the options supported in `layoutProperties`.
          default: CARD
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          type: string
          description: |-
            Choose a revocation method for credentials issued using this
            credential schema. Check the `revocation` object of the configuration
            for supported options and reference the configuration instance.
          enum:
          - BITSTRINGSTATUSLIST
          - CRL
          - LVVC
          - MDOC_MSO_UPDATE_SUSPENSION
          - NONE
          - TOKENSTATUSLIST
        schemaId:
          type:
          - string
          - 'null'
          description: |-
            Identifier for the credential schema. For ISO mdoc, this specifies
            the DocType (for example, `org.iso.18013.5.1.mDL`). For SD-JWT VC,
            this specifies the `vct` value. If omitted, the system auto-generates
            an identifier using the credential schema's UUID. Must be unique
            within the organization.
          example: org.iso.18013.5.1.mDL
        transactionCode:
          $ref: '#/components/schemas/CredentialSchemaTransactionCodeRequestRestDTO'
          description: |-
            Optional transaction code configuration. When included, credentials
            issued from this schema will require holders to submit a generated
            one-time code to complete issuance.
      additionalProperties: false
    CreateDidRequestKeysRestDTO:
      type: object
      description: |-
        Each DID has five verification relationships defining the verification
        method used for different purposes. Related guide: [Keys object](/dids#keys-object)
      required:
      - authentication
      - assertionMethod
      - keyAgreement
      - capabilityInvocation
      - capabilityDelegation
      properties:
        assertionMethod:
          type: array
          items:
            $ref: '#/components/schemas/KeyId'
        authentication:
          type: array
          items:
            $ref: '#/components/schemas/KeyId'
        capabilityDelegation:
          type: array
          items:
            $ref: '#/components/schemas/KeyId'
        capabilityInvocation:
          type: array
          items:
            $ref: '#/components/schemas/KeyId'
        keyAgreement:
          type: array
          items:
            $ref: '#/components/schemas/KeyId'
      additionalProperties: false
    CreateDidRequestRestDTO:
      type: object
      required:
      - name
      - method
      - keys
      properties:
        keys:
          $ref: '#/components/schemas/CreateDidRequestKeysRestDTO'
        method:
          type: string
          description: |-
            Choose a DID method to create the DID. Check the `did` object of the
            configuration for supported options and reference the configuration
            instance.
          example: WEB
        name:
          type: string
          description: The DID name must be unique within the organization.
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        params:
          type: object
          description: The parameters passed into the DID method.
      additionalProperties: false
    CreateHistoryRequestRestDTO:
      type: object
      required:
      - action
      - name
      - entityType
      - source
      properties:
        action:
          $ref: '#/components/schemas/HistoryAction'
        entityId:
          $ref: '#/components/schemas/EntityId'
        entityType:
          $ref: '#/components/schemas/HistoryEntityType'
        metadata: {}
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        source:
          $ref: '#/components/schemas/ExternalHistorySource'
        target:
          type: string
      additionalProperties: false
    CreateIdentifierDidRequestRestDTO:
      type: object
      required:
      - method
      - keys
      properties:
        keys:
          $ref: '#/components/schemas/CreateDidRequestKeysRestDTO'
        method:
          type: string
          description: |-
            Specify the DID method. Check the `did` object of your configuration
            for supported options.
          enum:
          - JWK
          - KEY
          - WEB
          - WEBVH
        name:
          type: string
        params: {}
      additionalProperties: false
    CreateIdentifierKeyRequestRestDTO:
      type: object
      required:
      - keyId
      properties:
        keyId:
          $ref: '#/components/schemas/KeyId'
      additionalProperties: false
    CreateIdentifierRequestRestDTO:
      type: object
      required:
      - name
      properties:
        certificateAuthorities:
          type: array
          items:
            $ref: '#/components/schemas/CreateCertificateAuthorityRequestRestDTO'
          description: Create a CA identifier.
        certificates:
          type: array
          items:
            $ref: '#/components/schemas/CreateCertificateRequestRestDTO'
          description: Create a certificate identifier.
        did:
          $ref: '#/components/schemas/CreateIdentifierDidRequestRestDTO'
          description: Create a DID identifier.
        key:
          $ref: '#/components/schemas/CreateIdentifierKeyRequestRestDTO'
          description: Create a key identifier.
        keyId:
          $ref: '#/components/schemas/KeyId'
          description: Deprecated. Use `key` instead.
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
      additionalProperties: false
    CreateOrganisationRequestRestDTO:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/OrganisationId'
        name:
          type: string
      additionalProperties: false
    CreateOrganisationResponseRestDTO:
      type: object
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/OrganisationId'
    CreateProofRequestRestDTO:
      type: object
      required:
      - proofSchemaId
      - protocol
      properties:
        engagement:
          type: string
          description: |-
            Not for use via the API; for mobile configurations to specify device
            engagement type.
        isoMdlEngagement:
          type: string
          description: |-
            Not for use via the API; for ISO mDL verification over BLE using the
            SDK.
        profile:
          type: string
          description: Optional profile to associate with this proof request.
        proofSchemaId:
          $ref: '#/components/schemas/ProofSchemaId'
          description: Choose a proof schema to use.
        protocol:
          type: string
          description: |-
            Specify the verification protocol to use for credential exchange. Check
            the `verificationProtocol` object of the configuration for supported options and
            reference the configuration instance.
          enum:
          - MDOC_OPENID4VP
          - OPENID4VP_DRAFT20
          - OPENID4VP_DRAFT20_SWIYU
          - OPENID4VP_DRAFT25
          - OPENID4VP_DRAFT25_EUDI
          - OPENID4VP_FINAL1
          - OPENID4VP_FINAL1_HAIP
        redirectUri:
          type: string
          description: |-
            When a shared proof is accepted, the holder will be redirected to
            the resource specified here, if redirects are enabled in the system
            configuration. The URI must use a scheme (for example `https`, `myapp`)
            that is allowed by the system configuration.
        scanToVerify:
          $ref: '#/components/schemas/ScanToVerifyRequestRestDTO'
          description: Only for use when verifying VC Barcodes.
        transport:
          type: array
          items:
            type: string
            enum:
            - HTTP
          description: |-
            Specify the transport protocol to use for credential exchange. Check
            the `transport` object of the configuration for supported options and
            reference the configuration instance.
        verifier:
          $ref: '#/components/schemas/IdentifierId'
          description: Choose an identifier to use when making the request.
        verifierCertificate:
          $ref: '#/components/schemas/CertificateId'
          description: |-
            If multiple active certificates are available under the verifier,
            use this value to specify which certificate should be used
            for this proof request. If a certificate isn't specified here,
            an active certificate will be used.
        verifierDid:
          $ref: '#/components/schemas/DidId'
          description: Choose a DID to use as an identifier.
        verifierKey:
          $ref: '#/components/schemas/KeyId'
          description: |-
            If multiple keys are specified for the authentication method of the
            DID, use this value to specify which key should be used as the
            authentication method for this proof request. If a key isn't
            specified here, the first key listed during DID creation will be
            used.
      additionalProperties: false
    CreateProofSchemaRequestRestDTO:
      type: object
      required:
      - name
      - proofInputSchemas
      properties:
        expireDuration:
          type: integer
          format: int32
          description: |-
            Defines the length of storage of received proofs, in seconds. After
            the defined duration, the received proof and its data are deleted
            from the system. If 0, the proofs received when using this proof
            schema will not be deleted.
          minimum: 0
        name:
          type: string
          minLength: 1
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputSchemaRequestRestDTO'
          minItems: 1
      additionalProperties: false
    CreateRemoteTrustEntityRequestRestDTO:
      type: object
      required:
      - didId
      - name
      - role
      properties:
        didId:
          $ref: '#/components/schemas/DidId'
          description: Specify local DID.
        logo:
          type: string
          description: base64 encoded image. Maximum size = 50kb.
        name:
          type: string
          description: Specify the entity name.
        privacyUrl:
          type: string
          description: Specify the Privacy Policy URL.
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        termsUrl:
          type: string
          description: Specify a Terms of Service URL.
        trustAnchorId:
          $ref: '#/components/schemas/TrustAnchorId'
          description: Specify trust anchor ID.
        website:
          type: string
          description: Specify the entity's domain name.
      additionalProperties: false
    CreateSelfSignedCertificateAuthorityRequestRestDTO:
      type: object
      required:
      - content
      - signer
      properties:
        content:
          $ref: '#/components/schemas/CreateCaCSRRequestRestDTO'
        signer:
          type: string
          enum:
          - ACCESS_CERTIFICATE
          - REGISTRATION_CERTIFICATE
          - X509_CERTIFICATE
        validityEnd:
          type: string
          format: date-time
        validityStart:
          type: string
          format: date-time
      additionalProperties: false
    CreateSignatureRequestRestDTO:
      type: object
      required:
      - issuer
      - signer
      - data
      properties:
        data:
          description: |-
            Signer-specific request data. Structure varies based on signer
            value. See the Signatures guide for complete specifications.
        issuer:
          $ref: '#/components/schemas/IdentifierId'
          description: |-
            Identifier ID of the signing entity. Must be a CA identifier for
            X.509 and Access Certificates, or a Certificate identifier for
            Registration Certificates. Ensure the identifier is registered
            on the appropriate trust lists.
        issuerCertificate:
          $ref: '#/components/schemas/CertificateId'
          description: |-
            Specific certificate to use from the issuer identifier. Omit
            for automatic selection.
        issuerKey:
          $ref: '#/components/schemas/KeyId'
          description: |-
            Specific key to use from the issuer identifier. Omit for
            automatic selection.
        signer:
          type: string
          description: |-
            Type of signature to create. This must reference a configured
            `signer` object.
          enum:
          - ACCESS_CERTIFICATE
          - REGISTRATION_CERTIFICATE
          - X509_CERTIFICATE
        validityEnd:
          type: string
          format: date-time
          description: |-
            Pass nothing to set the maximum validity period allowed
            by the configuration or choose a datetime with a shorter
            validity period.
        validityStart:
          type: string
          format: date-time
          description: |-
            Pass nothing to start validity now or choose a datetime
            in the future.
      additionalProperties: false
    CreateSignatureResponseRestDTO:
      type: object
      required:
      - id
      - result
      properties:
        id:
          type: string
          format: uuid
          description: ID used to revoke the signature.
        result:
          type: string
          description: Signer-specific signature representation.
    CreateTrustAnchorRequestRestDTO:
      type: object
      required:
      - name
      - type
      properties:
        isPublisher:
          type: boolean
          description: |-
            If true the created trust anchor will be published. If subscribing
            to an existing trust anchor, omit or set to false. The remote anchor must
            be specified via `publisherReference`.
        name:
          type: string
          description: Must be unique.
        publisherReference:
          type: string
          description: |-
            URL of the remote trust anchor to subscribe to.
            This must be provided if and only if `isPublisher=false`.
        type:
          type: string
          description: |-
            Specify the type of trust management anchor to publish or subscribe
            to. Check the `trustManagement` object of the configuration for supported
            options and reference the configuration instance.
          example: SIMPLE_TRUST_LIST
      additionalProperties: false
    CreateTrustEntityRequestRestDTO:
      type: object
      required:
      - name
      - role
      - trustAnchorId
      - organisationId
      properties:
        content:
          type: string
          description: For certificates, put the PEM content here.
        didId:
          $ref: '#/components/schemas/DidId'
          description: Specify DID ID.
        identifierId:
          $ref: '#/components/schemas/IdentifierId'
          description: Specify the identifier to add to the trust list.
        logo:
          type: string
          description: base64 encoded image. Maximum size = 50kb.
        name:
          type: string
          description: Specify the entity name.
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        privacyUrl:
          type: string
          description: Specify the Privacy Policy URL.
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
          description: |-
            Whether the entity is a trusted issuer, verifier, or both. For certificates,
            whether the CA is trusted to sign for an issuer, a verifier, or both.
        termsUrl:
          type: string
          description: Specify a Terms of Service URL.
        trustAnchorId:
          $ref: '#/components/schemas/TrustAnchorId'
          description: Specify which trust anchor to add the entity to.
        type:
          $ref: '#/components/schemas/TrustEntityTypeRest'
          description: |-
            If passing an identifier via `identifierId` or a certificate via `content`,
            specify the type of entity. If no type is specified the system expects a
            `didId`.
        website:
          type: string
          description: Specify the entity's domain name.
      additionalProperties: false
    CredentialClaimSchemaRequestRestDTO:
      type: object
      required:
      - key
      - datatype
      - required
      properties:
        array:
          type: boolean
          description: If `true`, an array can be passed for this attribute during issuance.
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaRequestRestDTO'
          description: |-
            If the `datatype` is `OBJECT`, the nested claims go in this array.
            Otherwise this array is empty.
        datatype:
          type: string
          description: The type of data accepted for this attribute.
          enum:
          - ARRAY
          - BIRTH_DATE
          - BOOLEAN
          - COUNT
          - DATE
          - EMAIL
          - MDL_PICTURE
          - NUMBER
          - OBJECT
          - PICTURE
          - STRING
          - SWIYU_PICTURE
        key:
          type: string
        required:
          type: boolean
      additionalProperties: false
    CredentialClaimSchemaResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - key
      - datatype
      - required
      - array
      - claims
      properties:
        array:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        datatype:
          type: string
        id:
          type: string
          format: uuid
        key:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        required:
          type: boolean
    CredentialConfigurationSupportedResponseRestDTO:
      type: object
      properties:
        proofTypesSupported:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ProofTypeSupported'
          propertyNames:
            type: string
    CredentialDetailClaimExtResponseRestDTO:
      type: object
      required:
      - path
      - schema
      - value
      - userSelection
      - required
      properties:
        path:
          type: string
        required:
          type: boolean
        schema:
          $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        userSelection:
          type: boolean
        value:
          $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimExtResponseRestDTO'
    CredentialDetailClaimResponseRestDTO:
      type: object
      required:
      - path
      - schema
      - value
      properties:
        path:
          type: string
        schema:
          $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        value:
          $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimResponseRestDTO'
    CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimExtResponseRestDTO:
      oneOf:
      - type: boolean
      - type: number
        format: double
      - type: integer
        format: int64
      - type: string
      - type: array
        items:
          type: object
          required:
          - path
          - schema
          - value
          - userSelection
          - required
          properties:
            path:
              type: string
            required:
              type: boolean
            schema:
              $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
            userSelection:
              type: boolean
            value:
              $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimExtResponseRestDTO'
    CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimResponseRestDTO:
      oneOf:
      - type: boolean
      - type: number
        format: double
      - type: integer
        format: int64
      - type: string
      - type: array
        items:
          type: object
          required:
          - path
          - schema
          - value
          properties:
            path:
              type: string
            schema:
              $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
            value:
              $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimResponseRestDTO'
    CredentialDetailSchemaResponseRestDTO:
      type: object
      description: Credential schema used to issue the credential.
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - organisationId
      - schemaId
      - allowSuspension
      - requiresWalletInstanceAttestation
      properties:
        allowSuspension:
          type: boolean
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        format:
          $ref: '#/components/schemas/CredentialFormat'
        id:
          type: string
          format: uuid
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
          description: Storage security requirements the key storage of the wallet must meet.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          $ref: '#/components/schemas/RevocationMethodId'
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
    CredentialFormat:
      type: string
    CredentialId:
      type: string
      format: uuid
    CredentialListIncludeEntityTypeRestEnum:
      type: string
      enum:
      - layoutProperties
    CredentialListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - state
      - lastModified
      - schema
      - role
      - protocol
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        issuer:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        profile:
          type: string
          description: Profile associated with this credential
        protocol:
          type: string
        revocationDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/CredentialRoleRestEnum'
        schema:
          $ref: '#/components/schemas/CredentialSchemaListItemResponseRestDTO'
        state:
          $ref: '#/components/schemas/CredentialStateRestEnum'
        suspendEndDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
    CredentialQueryFailureHintResponseRestDTO:
      type: object
      required:
      - reason
      properties:
        credentialSchema:
          $ref: '#/components/schemas/CredentialSchemaResponseRestDTO'
        reason:
          $ref: '#/components/schemas/CredentialQueryFailureReasonRestEnum'
    CredentialQueryFailureReasonRestEnum:
      type: string
      enum:
      - NO_CREDENTIAL
      - VALIDITY
      - CONSTRAINT
    CredentialQueryResponseRestDTO:
      allOf:
      - $ref: '#/components/schemas/ApplicableCredentialOrFailureHintRestEnum'
      - type: object
        required:
        - multiple
        properties:
          multiple:
            type: boolean
    CredentialRequestClaimRestDTO:
      type: object
      required:
      - claimId
      - path
      properties:
        claimId:
          type: string
          format: uuid
          description: ID of the attribute from the credential schema.
        path:
          type: string
          description: Path to the particular claim key within the structure of the credential schema.
        value:
          type: string
          description: Claim being asserted in issuance.
      additionalProperties: false
    CredentialRevocationCheckRequestRestDTO:
      type: object
      description: Array of credentials to be checked for revocation status.
      required:
      - credentialIds
      properties:
        credentialIds:
          type: array
          items:
            $ref: '#/components/schemas/CredentialId'
        forceRefresh:
          type: boolean
      additionalProperties: false
    CredentialRevocationCheckResponseRestDTO:
      type: object
      required:
      - credentialId
      - status
      - success
      properties:
        credentialId:
          type: string
          format: uuid
        reason:
          type: string
          description: |-
            Explanation of why the revocation check failed. Only present
            when `success: false`.
        status:
          $ref: '#/components/schemas/CredentialStateRestEnum'
        success:
          type: boolean
          description: |-
            Indicates whether the system performed the check as planned.
            When using `forceRefresh`, indicates whether the external resource
            was reached and gave a response. For mdocs this value will only be
            `true` if a new MSO was issued.
    CredentialRoleRestEnum:
      type: string
      description: The role the system has in relation to the credential.
      enum:
      - HOLDER
      - ISSUER
      - VERIFIER
    CredentialSchemaBackgroundPropertiesRestDTO:
      type: object
      properties:
        color:
          type: string
        image:
          type: string
      additionalProperties: false
    CredentialSchemaCodePropertiesRestDTO:
      type: object
      required:
      - attribute
      - type
      properties:
        attribute:
          type: string
        type:
          $ref: '#/components/schemas/CredentialSchemaCodeTypeRestEnum'
      additionalProperties: false
    CredentialSchemaCodeTypeRestEnum:
      type: string
      enum:
      - BARCODE
      - MRZ
      - QR_CODE
    CredentialSchemaId:
      type: string
      format: uuid
    CredentialSchemaLayoutPropertiesRestDTO:
      type: object
      description: Design the appearance of the credential in the holder's wallet.
      properties:
        background:
          $ref: '#/components/schemas/CredentialSchemaBackgroundPropertiesRestDTO'
        code:
          $ref: '#/components/schemas/CredentialSchemaCodePropertiesRestDTO'
        logo:
          $ref: '#/components/schemas/CredentialSchemaLogoPropertiesRestDTO'
        pictureAttribute:
          type: string
        primaryAttribute:
          type: string
        secondaryAttribute:
          type: string
      additionalProperties: false
    CredentialSchemaLayoutType:
      type: string
      enum:
      - CARD
      - DOCUMENT
      - SINGLE_ATTRIBUTE
    CredentialSchemaListIncludeEntityTypeRestEnum:
      type: string
      enum:
      - layoutProperties
    CredentialSchemaListItemResponseRestDTO:
      type: object
      description: Credential schema details.
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - importedSourceUrl
      - schemaId
      - allowSuspension
      - requiresWalletInstanceAttestation
      properties:
        allowSuspension:
          type: boolean
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        format:
          $ref: '#/components/schemas/CredentialFormat'
        id:
          type: string
          format: uuid
          description: |-
            UUID of this credential schema. Use this value as `credentialSchemaId`
            when creating credentials with this schema.
        importedSourceUrl:
          type: string
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
          description: Indication of what type of key storage the wallet should use.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          $ref: '#/components/schemas/RevocationMethodId'
        schemaId:
          type: string
          description: |-
            Document type or credential type identifier used by the credential
            format. This is the semantic identifier for the credential type, not
            the database ID of this schema record.
    CredentialSchemaLogoPropertiesRestDTO:
      type: object
      properties:
        backgroundColor:
          type: string
        fontColor:
          type: string
        image:
          type: string
      additionalProperties: false
    CredentialSchemaResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - organisationId
      - claims
      - schemaId
      - importedSourceUrl
      - allowSuspension
      - requiresWalletInstanceAttestation
      properties:
        allowSuspension:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        format:
          $ref: '#/components/schemas/CredentialFormat'
        id:
          type: string
          format: uuid
          description: |-
            UUID of this credential schema. Use this value as `credentialSchemaId`
            when creating credentials with this schema.
        importedSourceUrl:
          type: string
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          $ref: '#/components/schemas/RevocationMethodId'
        schemaId:
          type: string
          description: |-
            Document type or credential type identifier used by the credential
            format. This is the semantic identifier for the credential type, not
            the database ID of this schema record.
        transactionCode:
          $ref: '#/components/schemas/CredentialSchemaTransactionCodeRestDTO'
    CredentialSchemaShareResponseRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
    CredentialSchemaTransactionCodeRequestRestDTO:
      type: object
      required:
      - type
      - length
      properties:
        description:
          type: string
          description: |-
            Optional context provided to holders about the transaction code,
            such as where to find it or how to use it. Maximum 300 characters.
        length:
          type: integer
          format: int32
          description: Number of characters in generated codes. Must be between 4 and 10.
          minimum: 0
        type:
          $ref: '#/components/schemas/TransactionCodeTypeRestEnum'
          description: |-
            Character set for generated codes. `NUMERIC` uses digits 0-9.
            `ALPHANUMERIC` uses letters and digits.
      additionalProperties: false
    CredentialSchemaTransactionCodeRestDTO:
      type: object
      required:
      - type
      - length
      properties:
        description:
          type: string
        length:
          type: integer
          format: int32
          minimum: 0
        type:
          $ref: '#/components/schemas/TransactionCodeTypeRestEnum'
    CredentialSchemasExactColumn:
      type: string
      enum:
      - name
      - schemaId
    CredentialSetResponseRestDTO:
      type: object
      required:
      - required
      - options
      properties:
        options:
          type: array
          items:
            type: array
            items:
              type: string
        required:
          type: boolean
    CredentialSigningAlgValueRestEnum:
      oneOf:
      - type: string
      - type: integer
        format: int64
    CredentialStateRestEnum:
      type: string
      description: The state representation of the credential in the system.
      enum:
      - CREATED
      - PENDING
      - OFFERED
      - ACCEPTED
      - SUSPENDED
      - REJECTED
      - REVOKED
      - ERROR
      - INTERACTION_EXPIRED
    DcqlSubmissionRestDTO:
      type: object
      required:
      - vp_token
      properties:
        vp_token:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          propertyNames:
            type: string
    DidDocumentRestDTO:
      type: object
      required:
      - '@context'
      - id
      - verificationMethod
      properties:
        '@context': {}
        alsoKnownAs:
          type: array
          items:
            type: string
        assertionMethod:
          type: array
          items:
            type: string
        authentication:
          type: array
          items:
            type: string
        capabilityDelegation:
          type: array
          items:
            type: string
        capabilityInvocation:
          type: array
          items:
            type: string
        id:
          $ref: '#/components/schemas/DidValue'
        keyAgreement:
          type: array
          items:
            type: string
        service:
          type: array
          items:
            $ref: '#/components/schemas/DidServiceEndointRestDTO'
        verificationMethod:
          type: array
          items:
            $ref: '#/components/schemas/DidVerificationMethodRestDTO'
    DidId:
      type: string
      format: uuid
      description: DID details. See the [DID](/dids) guide.
    DidListItemResponseRestDTO:
      type: object
      description: DID details.
      required:
      - id
      - createdDate
      - lastModified
      - name
      - did
      - type
      - method
      - deactivated
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deactivated:
          type: boolean
        did:
          $ref: '#/components/schemas/DidValue'
        id:
          $ref: '#/components/schemas/DidId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        method:
          type: string
        name:
          type: string
        type:
          $ref: '#/components/schemas/DidType'
    DidPatchRequestRestDTO:
      type: object
      properties:
        deactivated:
          type: boolean
      additionalProperties: false
    DidResponseKeysRestDTO:
      type: object
      description: The key, or keys, defining the verification relationships of the DID.
      required:
      - authentication
      - assertionMethod
      - keyAgreement
      - capabilityInvocation
      - capabilityDelegation
      properties:
        assertionMethod:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        authentication:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        capabilityDelegation:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        capabilityInvocation:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        keyAgreement:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
    DidResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - did
      - type
      - method
      - keys
      - deactivated
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deactivated:
          type: boolean
        did:
          $ref: '#/components/schemas/DidValue'
        id:
          $ref: '#/components/schemas/DidId'
        keys:
          $ref: '#/components/schemas/DidResponseKeysRestDTO'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        method:
          type: string
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        type:
          $ref: '#/components/schemas/DidType'
    DidServiceEndointRestDTO:
      type: object
      required:
      - id
      - type
      - serviceEndpoint
      properties:
        id:
          type: string
        serviceEndpoint: {}
        type:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
    DidType:
      type: string
      description: Whether a DID was locally created or is the DID of a remote wallet.
      enum:
      - REMOTE
      - LOCAL
    DidValue:
      type: string
      format: uri
      examples:
      - did:key:z6MkqfAeg81kn2x4fns8j2rGq1bhdJhT6f3Wh88hLLEq24v2
    DidVerificationMethodRestDTO:
      type: object
      required:
      - id
      - type
      - controller
      - publicKeyJwk
      properties:
        controller:
          type: string
        id:
          type: string
        publicKeyJwk:
          $ref: '#/components/schemas/PublicJwk'
        type:
          type: string
    EmptyEntry:
      type: object
      additionalProperties: false
    EncryptionAlgorithm:
      type: string
      enum:
      - A128GCM
      - A256GCM
      - A128CBC-HS256
    EntityId:
      type: string
      format: uuid
    EntityResponseRestDTO:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
    ErrorResponseRestDTO:
      type: object
      required:
      - code
      - message
      properties:
        cause:
          $ref: '#/components/schemas/Cause'
        code:
          type: string
        message:
          type: string
    ExactColumn:
      type: string
      enum:
      - name
    ExactDidFilterColumnRestEnum:
      type: string
      enum:
      - name
      - did
    ExactIdentifierFilterColumnRestEnum:
      type: string
      enum:
      - name
    ExactTrustAnchorFilterColumnRestEnum:
      type: string
      enum:
      - name
      - type
    ExtendedSubjectClaimsRestDTO:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/ProcivisSubjectClaimValueRestDTO'
    ExtendedSubjectRestDTO:
      type: object
      properties:
        keys:
          $ref: '#/components/schemas/ExtendedSubjectClaimsRestDTO'
        wallet_storage_type:
          $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    ExternalHistorySource:
      type: string
      enum:
      - BRIDGE
      - STS
      - WRPR
      - BFF
    GenericAlgs:
      type: object
      properties:
        alg:
          type: array
          items:
            type: string
      additionalProperties: false
    GetCredentialResponseRestDTO_CredentialDetailClaimExtResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - state
      - lastModified
      - schema
      - claims
      - role
      - protocol
      properties:
        claims:
          type: array
          items:
            type: object
            required:
            - path
            - schema
            - value
            - userSelection
            - required
            properties:
              path:
                type: string
              required:
                type: boolean
              schema:
                $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
              userSelection:
                type: boolean
              value:
                $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimExtResponseRestDTO'
          description: Claims made by the credential issuer.
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        holder:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
          description: Credential holder metadata.
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        issuer:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
          description: Issuer metadata.
        issuerCertificate:
          $ref: '#/components/schemas/CertificateResponseRestDTO'
          description: Certificate details if issuer used an X.509 to issue credential.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        lvvcIssuanceDate:
          type: string
          format: date-time
          description: For credentials issued with LVVC revocation.
          example: 2023-06-09T14:19:57.000Z
        mdocMsoValidity:
          $ref: '#/components/schemas/MdocMsoValidityResponseRestDTO'
          description: Validity details for ISO mdocs.
        profile:
          type: string
          description: Country profile associated with this credential.
        protocol:
          type: string
          description: Issuance protocol used to issue this credential.
        redirectUri:
          type: string
          description: URI holder is redirected to after credential issuance.
        revocationDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/CredentialRoleRestEnum'
          description: |-
            The role the system has in relation to the credential. For example,
            if the system issued the credential this value will be `ISSUER`. If
            the system received the credential as a wallet this value will be
            `HOLDER`.
        schema:
          $ref: '#/components/schemas/CredentialDetailSchemaResponseRestDTO'
          description: Schema of the credential.
        state:
          $ref: '#/components/schemas/CredentialStateRestEnum'
        suspendEndDate:
          type: string
          format: date-time
          description: Scheduled date for credential reactivation.
          example: 2023-06-09T14:19:57.000Z
        walletInstanceAttestation:
          $ref: '#/components/schemas/WalletInstanceAttestationRestDTO'
          description: |-
            The wallet instance attestation that was provided by the holder's wallet
            during credential issuance. This field is only present if the wallet
            provided a valid attestation when the credential was issued. The
            attestation serves as proof that the wallet app instance is a
            legitimate installation and may be required for the issuance of certain
            credentials.
        walletUnitAttestation:
          $ref: '#/components/schemas/WalletUnitAttestationRestDTO'
          description: |-
            The wallet unit attestation, or "key attestation", that was provided
            by the holder's wallet during credential issuance. This field is
            only present if the wallet provided a valid attestation when the
            credential was issued, a requirement for the issuance of certain
            credentials such as EU PIDs.
    GetCredentialResponseRestDTO_CredentialDetailClaimResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - state
      - lastModified
      - schema
      - claims
      - role
      - protocol
      properties:
        claims:
          type: array
          items:
            type: object
            required:
            - path
            - schema
            - value
            properties:
              path:
                type: string
              schema:
                $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
              value:
                $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO_CredentialDetailClaimResponseRestDTO'
          description: Claims made by the credential issuer.
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        holder:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
          description: Credential holder metadata.
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        issuer:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
          description: Issuer metadata.
        issuerCertificate:
          $ref: '#/components/schemas/CertificateResponseRestDTO'
          description: Certificate details if issuer used an X.509 to issue credential.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        lvvcIssuanceDate:
          type: string
          format: date-time
          description: For credentials issued with LVVC revocation.
          example: 2023-06-09T14:19:57.000Z
        mdocMsoValidity:
          $ref: '#/components/schemas/MdocMsoValidityResponseRestDTO'
          description: Validity details for ISO mdocs.
        profile:
          type: string
          description: Country profile associated with this credential.
        protocol:
          type: string
          description: Issuance protocol used to issue this credential.
        redirectUri:
          type: string
          description: URI holder is redirected to after credential issuance.
        revocationDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/CredentialRoleRestEnum'
          description: |-
            The role the system has in relation to the credential. For example,
            if the system issued the credential this value will be `ISSUER`. If
            the system received the credential as a wallet this value will be
            `HOLDER`.
        schema:
          $ref: '#/components/schemas/CredentialDetailSchemaResponseRestDTO'
          description: Schema of the credential.
        state:
          $ref: '#/components/schemas/CredentialStateRestEnum'
        suspendEndDate:
          type: string
          format: date-time
          description: Scheduled date for credential reactivation.
          example: 2023-06-09T14:19:57.000Z
        walletInstanceAttestation:
          $ref: '#/components/schemas/WalletInstanceAttestationRestDTO'
          description: |-
            The wallet instance attestation that was provided by the holder's wallet
            during credential issuance. This field is only present if the wallet
            provided a valid attestation when the credential was issued. The
            attestation serves as proof that the wallet app instance is a
            legitimate installation and may be required for the issuance of certain
            credentials.
        walletUnitAttestation:
          $ref: '#/components/schemas/WalletUnitAttestationRestDTO'
          description: |-
            The wallet unit attestation, or "key attestation", that was provided
            by the holder's wallet during credential issuance. This field is
            only present if the wallet provided a valid attestation when the
            credential was issued, a requirement for the issuance of certain
            credentials such as EU PIDs.
    GetIdentifierListItemResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - state
      - type
      - isRemote
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/IdentifierId'
        isRemote:
          type: boolean
          description: |-
            Whether the identifier belongs to the system or comes from an interaction
            with an external actor.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        state:
          $ref: '#/components/schemas/IdentifierStateRest'
        type:
          $ref: '#/components/schemas/IdentifierTypeRest'
    GetIdentifierListResponseRestDTO:
      type: object
      required:
      - totalPages
      - totalItems
      - values
      properties:
        totalItems:
          type: integer
          format: int64
          minimum: 0
        totalPages:
          type: integer
          format: int64
          minimum: 0
        values:
          type: array
          items:
            $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
    GetIdentifierResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - state
      - type
      - isRemote
      properties:
        certificateAuthorities:
          type: array
          items:
            $ref: '#/components/schemas/CertificateResponseRestDTO'
        certificates:
          type: array
          items:
            $ref: '#/components/schemas/CertificateResponseRestDTO'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        did:
          $ref: '#/components/schemas/DidResponseRestDTO'
        id:
          $ref: '#/components/schemas/IdentifierId'
        isRemote:
          type: boolean
        key:
          $ref: '#/components/schemas/KeyResponseRestDTO'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        state:
          $ref: '#/components/schemas/IdentifierStateRest'
        type:
          $ref: '#/components/schemas/IdentifierTypeRest'
    GetOrganisationDetailsResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deactivatedAt:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          type: string
          format: uuid
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        walletProvider:
          type: string
        walletProviderIssuer:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
    GetProofSchemaListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - expireDuration
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        expireDuration:
          type: integer
          format: int32
          description: |-
            The duration of storage of received proofs, in seconds. After the defined duration, the received proof and its data are deleted from the system.
            If 0, the proofs received when using this proof schema will not be deleted.
          minimum: 0
        id:
          type: string
          format: uuid
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
    GetProofSchemaResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - expireDuration
      - organisationId
      - proofInputSchemas
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        expireDuration:
          type: integer
          format: int32
          minimum: 0
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputSchemaResponseRestDTO'
    GetRemoteTrustEntityResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - role
      - trustAnchor
      - state
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/TrustEntityId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        logo:
          type: string
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        privacyUrl:
          type: string
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
        termsUrl:
          type: string
        trustAnchor:
          $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
        website:
          type: string
    GetSsiTrustEntityResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - role
      - state
      - type
      - entityKey
      properties:
        content:
          type: string
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        did:
          $ref: '#/components/schemas/DidValue'
        entityKey:
          $ref: '#/components/schemas/TrustEntityKey'
        id:
          $ref: '#/components/schemas/TrustEntityId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        logo:
          type: string
        name:
          type: string
        privacyUrl:
          type: string
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
        termsUrl:
          type: string
        type:
          $ref: '#/components/schemas/TrustEntityTypeRest'
        website:
          type: string
    GetTrustAnchorDetailResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - type
      - isPublisher
      - publisherReference
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/TrustAnchorId'
        isPublisher:
          type: boolean
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        publisherReference:
          type: string
        type:
          type: string
    GetTrustAnchorResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - entities
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        entities:
          type: array
          items:
            $ref: '#/components/schemas/GetSsiTrustEntityResponseRestDTO'
        id:
          $ref: '#/components/schemas/TrustAnchorId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
    GetTrustEntityResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - role
      - trustAnchor
      - state
      - entityKey
      - type
      properties:
        ca:
          $ref: '#/components/schemas/TrustEntityCertificateResponseRestDTO'
          description: Human-readable X.509 certificate details.
        content:
          type: string
          description: If `type` is `CA`, the certificate in PEM format.
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        did:
          $ref: '#/components/schemas/DidListItemResponseRestDTO'
          description: DID details.
        entityKey:
          $ref: '#/components/schemas/TrustEntityKey'
          description: DID value or certificate's `subject`.
        id:
          $ref: '#/components/schemas/TrustEntityId'
          description: Trust entity ID.
        identifier:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
          description: Identifier details.
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        logo:
          type: string
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        privacyUrl:
          type: string
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
          description: The role the entity is trusted to perform.
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
          description: The entity's status on the trust anchor.
        termsUrl:
          type: string
        trustAnchor:
          $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
          description: Trust anchor details.
        type:
          $ref: '#/components/schemas/TrustEntityTypeRest'
        website:
          type: string
    GetWalletUnitsResponseRestDTO:
      type: object
      required:
      - totalPages
      - totalItems
      - values
      properties:
        totalItems:
          type: integer
          format: int64
          minimum: 0
        totalPages:
          type: integer
          format: int64
          minimum: 0
        values:
          type: array
          items:
            $ref: '#/components/schemas/WalletUnitResponseRestDTO'
    HandleInvitationRequestRestDTO:
      type: object
      required:
      - url
      properties:
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        redirectUri:
          type: string
          description: |-
            For issuer-initiated Authorization Code Flow, provide the authorization server
            with the URI it should return the user to once authorization is complete.
        transport:
          type: array
          items:
            type: string
            enum:
            - HTTP
          description: |-
            For configurations with multiple transport protocols enabled you can
            specify which one to use for this interaction.
          example:
          - HTTP
        url:
          type: string
          format: uri
          description: Typically encoded as a QR code or deep link by the issuer or verifier.
          example: https://example.com/credential-offer
      additionalProperties: false
    HandleInvitationResponseRestDTO:
      type: object
      required:
      - interactionId
      - interactionType
      properties:
        authorizationCodeFlowUrl:
          type: string
          description: |-
            For issuer-initiated Authorization Code Flows, use this URL to start the
            authorization process with the authorization server.
        interactionId:
          $ref: '#/components/schemas/InteractionId'
        interactionType:
          $ref: '#/components/schemas/InteractionTypeRestEnum'
        keyAlgorithms:
          type: array
          items:
            type: string
        keyStorageSecurityLevels:
          type: array
          items:
            $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
        proofId:
          $ref: '#/components/schemas/ProofId'
          description: Requested proof.
        protocol:
          type: string
        requiresWalletInstanceAttestation:
          type: boolean
        txCode:
          $ref: '#/components/schemas/OpenID4VCITxCodeRestDTO'
          description: |-
            Metadata for entering a transaction code.
            If a pre-authorized code is issued with a transaction code object, the
            wallet user must input a transaction code to receive the offered credential.
            This code is typically sent through a separate channel such as SMS or email.
    HistoryAction:
      type: string
      enum:
      - ACCEPTED
      - CREATED
      - CSR_GENERATED
      - DEACTIVATED
      - DELETED
      - ERRORED
      - ISSUED
      - OFFERED
      - REJECTED
      - REQUESTED
      - REVOKED
      - PENDING
      - SUSPENDED
      - RESTORED
      - SHARED
      - IMPORTED
      - CLAIMS_REMOVED
      - ACTIVATED
      - WITHDRAWN
      - REMOVED
      - RETRACTED
      - UPDATED
      - REACTIVATED
      - EXPIRED
      - INTERACTION_CREATED
      - INTERACTION_ERRORED
      - INTERACTION_EXPIRED
    HistoryEntityType:
      type: string
      enum:
      - KEY
      - DID
      - CERTIFICATE
      - IDENTIFIER
      - CREDENTIAL
      - CREDENTIAL_SCHEMA
      - PROOF
      - PROOF_SCHEMA
      - ORGANISATION
      - BACKUP
      - TRUST_ANCHOR
      - TRUST_ENTITY
      - WALLET_UNIT
      - USER
      - PROVIDER
      - WALLET_RELYING_PARTY
      - STS_ROLE
      - STS_ORGANISATION
      - STS_IAM_ROLE
      - STS_TOKEN
      - SIGNATURE
    HistoryErrorMetadataRestDTO:
      type: object
      required:
      - error_code
      - message
      properties:
        error_code:
          type: string
        message:
          type: string
    HistoryId:
      type: string
      format: uuid
    HistoryMetadataRestEnum:
      oneOf:
      - type: object
        required:
        - UnexportableEntities
        properties:
          UnexportableEntities:
            $ref: '#/components/schemas/UnexportableEntitiesResponseRestDTO'
      - type: object
        required:
        - ErrorMetadata
        properties:
          ErrorMetadata:
            $ref: '#/components/schemas/HistoryErrorMetadataRestDTO'
      - type: object
        required:
        - WalletUnitJWT
        properties:
          WalletUnitJWT:
            type: string
      - type: object
        required:
        - External
        properties:
          External: {}
    HistoryResponseDetailRestDTO:
      type: object
      required:
      - id
      - createdDate
      - action
      - name
      - entityType
      - source
      properties:
        action:
          $ref: '#/components/schemas/HistoryAction'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        entityId:
          type: string
          format: uuid
        entityType:
          $ref: '#/components/schemas/HistoryEntityType'
        id:
          $ref: '#/components/schemas/HistoryId'
        metadata:
          $ref: '#/components/schemas/HistoryMetadataRestEnum'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        source:
          $ref: '#/components/schemas/HistorySource'
        target:
          type: string
        user:
          type: string
    HistoryResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - action
      - name
      - entityType
      - source
      properties:
        action:
          $ref: '#/components/schemas/HistoryAction'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        entityId:
          type: string
          format: uuid
        entityType:
          $ref: '#/components/schemas/HistoryEntityType'
        id:
          $ref: '#/components/schemas/HistoryId'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        source:
          $ref: '#/components/schemas/HistorySource'
        target:
          type: string
        user:
          type: string
    HistorySource:
      type: string
      enum:
      - CORE
      - BRIDGE
      - STS
      - WRPR
      - BFF
    HolderRegisterWalletUnitRequestRestDTO:
      type: object
      required:
      - walletProvider
      - keyType
      properties:
        keyType:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        walletProvider:
          $ref: '#/components/schemas/WalletProviderRestDTO'
          description: Reference the `walletProvider` configuration of the Wallet Provider.
      additionalProperties: false
    HolderWalletUnitDetailRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - providerWalletUnitId
      - walletProviderUrl
      - walletProviderType
      - walletProviderName
      - status
      - authenticationKey
      properties:
        authenticationKey:
          $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        createdDate:
          type: string
          format: date-time
        id:
          $ref: '#/components/schemas/HolderWalletUnitId'
        lastModified:
          type: string
          format: date-time
        providerWalletUnitId:
          $ref: '#/components/schemas/WalletUnitId'
        status:
          $ref: '#/components/schemas/WalletUnitStatusRestEnum'
        walletProviderName:
          type: string
        walletProviderType:
          $ref: '#/components/schemas/WalletProviderTypeRestEnum'
        walletProviderUrl:
          type: string
    HolderWalletUnitId:
      type: string
      format: uuid
    IdentifierFilterQueryParamsRestDTO:
      type: object
      properties:
        createdDateAfter:
          type:
          - string
          - 'null'
          format: date-time
          description: |-
            Return only identifiers created after this time.
            Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        createdDateBefore:
          type:
          - string
          - 'null'
          format: date-time
          description: |-
            Return only identifiers created before this time.
            Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        didMethods:
          type:
          - array
          - 'null'
          items:
            type: string
          description: Filter by one or more DID methods.
        exact:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ExactIdentifierFilterColumnRestEnum'
          description: Set which filters apply in an exact way.
        ids:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IdentifierId'
          description: Filter by one or more UUIDs.
        isRemote:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Boolean'
            description: |-
              If true, return only identifiers from interactions with external
              actors. If false, return only identifiers local to the system.
        keyAlgorithms:
          type:
          - array
          - 'null'
          items:
            type: string
          description: |-
            Return keys or DIDs whose keys use the specified algorithm. Check the
            `keyAlgorithm` object of the configuration for supported options.
        keyRoles:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/KeyRoleRestEnum'
          description: Return keys used as one or more verification methods of a DID.
        keyStorages:
          type:
          - array
          - 'null'
          items:
            type: string
          description: |-
            Return keys or DIDs whose keys use the specified storage type. Check the
            `keyStorage` object of the configuration for supported options.
        lastModifiedAfter:
          type:
          - string
          - 'null'
          format: date-time
          description: |-
            Return only identifiers last modified after this time.
            Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        lastModifiedBefore:
          type:
          - string
          - 'null'
          format: date-time
          description: |-
            Return only identifiers last modified before this time.
            Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        name:
          type:
          - string
          - 'null'
          description: |-
            Return only identifiers with a name starting with this string.
            Not case-sensitive.
        organisationId:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OrganisationId'
            description: |-
              Required when not using STS authentication mode. Specifies the
              organizational context for this operation. When using STS
              authentication, this value is derived from the token.
        states:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IdentifierStateRest'
          description: Filter by one or more identifier states.
        types:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IdentifierTypeRest'
          description: Filter by one or more identifier types.
    IdentifierId:
      type: string
      format: uuid
    IdentifierStateRest:
      type: string
      enum:
      - ACTIVE
      - DEACTIVATED
    IdentifierTypeRest:
      type: string
      enum:
      - DID
      - KEY
      - CERTIFICATE
      - CA
    ImportCredentialSchemaClaimSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - key
      - datatype
      - required
      properties:
        array:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ImportCredentialSchemaClaimSchemaRestDTO'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        datatype:
          type: string
        id:
          type: string
          format: uuid
        key:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        required:
          type: boolean
      additionalProperties: false
    ImportCredentialSchemaLayoutPropertiesRestDTO:
      type: object
      properties:
        background:
          $ref: '#/components/schemas/CredentialSchemaBackgroundPropertiesRestDTO'
        code:
          $ref: '#/components/schemas/CredentialSchemaCodePropertiesRestDTO'
        logo:
          $ref: '#/components/schemas/CredentialSchemaLogoPropertiesRestDTO'
        pictureAttribute:
          type: string
        primaryAttribute:
          type: string
        secondaryAttribute:
          type: string
      additionalProperties: false
    ImportCredentialSchemaRequestRestDTO:
      type: object
      required:
      - schema
      properties:
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        schema:
          $ref: '#/components/schemas/ImportCredentialSchemaRequestSchemaRestDTO'
      additionalProperties: false
    ImportCredentialSchemaRequestSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - organisationId
      - claims
      - schemaId
      - importedSourceUrl
      properties:
        allowSuspension:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ImportCredentialSchemaClaimSchemaRestDTO'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          $ref: '#/components/schemas/ImportCredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          type: string
        schemaId:
          type: string
        transactionCode:
          $ref: '#/components/schemas/ImportCredentialSchemaTransactionCodeRequestRestDTO'
      additionalProperties: false
    ImportCredentialSchemaTransactionCodeRequestRestDTO:
      type: object
      required:
      - type
      - length
      properties:
        description:
          type: string
        length:
          type: integer
          format: int32
          minimum: 0
        type:
          $ref: '#/components/schemas/TransactionCodeTypeRestEnum'
      additionalProperties: false
    ImportProofSchemaClaimSchemaRestDTO:
      type: object
      required:
      - id
      - requested
      - required
      - key
      - dataType
      - array
      properties:
        array:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ImportProofSchemaClaimSchemaRestDTO'
        dataType:
          type: string
          example: STRING
        id:
          type: string
          format: uuid
        key:
          type: string
        requested:
          type: boolean
        required:
          type: boolean
      additionalProperties: false
    ImportProofSchemaCredentialSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - importedSourceUrl
      - schemaId
      properties:
        allowSuspension:
          type: boolean
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          format: date-time
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        keyStorageSecurity:
          $ref: '#/components/schemas/KeyStorageSecurityRestEnum'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        requiresWalletInstanceAttestation:
          type: boolean
        revocationMethod:
          type: string
        schemaId:
          type: string
      additionalProperties: false
    ImportProofSchemaInputSchemaRestDTO:
      type: object
      required:
      - claimSchemas
      - credentialSchema
      properties:
        claimSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ImportProofSchemaClaimSchemaRestDTO'
        credentialSchema:
          $ref: '#/components/schemas/ImportProofSchemaCredentialSchemaRestDTO'
        validityConstraint:
          type: integer
          format: int64
      additionalProperties: false
    ImportProofSchemaRequestRestDTO:
      type: object
      required:
      - schema
      properties:
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        schema:
          $ref: '#/components/schemas/ImportProofSchemaRestDTO'
      additionalProperties: false
    ImportProofSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - importedSourceUrl
      - organisationId
      - expireDuration
      - proofInputSchemas
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        expireDuration:
          type: integer
          format: int32
          minimum: 0
        id:
          $ref: '#/components/schemas/ProofSchemaId'
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ImportProofSchemaInputSchemaRestDTO'
      additionalProperties: false
    InitiateIssuanceAuthorizationDetailRestDTO:
      type: object
      required:
      - type
      - credentialConfigurationId
      properties:
        credentialConfigurationId:
          type: string
        type:
          type: string
    InitiateIssuanceRequestRestDTO:
      type: object
      required:
      - protocol
      - issuer
      - clientId
      properties:
        authorizationDetails:
          type: array
          items:
            $ref: '#/components/schemas/InitiateIssuanceAuthorizationDetailRestDTO'
          description: OpenID4VCI authorization request parameter.
        clientId:
          type: string
          description: OpenID4VCI authorization request parameter.
        issuer:
          type: string
          description: OpenID4VCI authorization request parameter.
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Organization to place the issued credential into.
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        protocol:
          type: string
          description: Selected issuance protocol.
        redirectUri:
          type: string
          description: OpenID4VCI authorization request parameter.
        scope:
          type: array
          items:
            type: string
          description: OpenID4VCI authorization request parameter.
      additionalProperties: false
    InitiateIssuanceResponseRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          description: Authorization endpoint URL
    InteractionId:
      type: string
      format: uuid
      description: Interaction ID for issuance and verification
    InteractionTypeRestEnum:
      type: string
      enum:
      - ISSUANCE
      - VERIFICATION
    IssuanceAcceptRequestRestDTO:
      type: object
      required:
      - interactionId
      properties:
        didId:
          $ref: '#/components/schemas/DidId'
        holderWalletUnitId:
          $ref: '#/components/schemas/HolderWalletUnitId'
        identifierId:
          $ref: '#/components/schemas/IdentifierId'
        interactionId:
          $ref: '#/components/schemas/InteractionId'
          description: The identifier associated with the particular issuance.
        keyId:
          $ref: '#/components/schemas/KeyId'
          description: |-
            If you are using a DID and it supports multiple keys for authentication,
            specify which key to use. If no key is specified the first suitable key listed
            will be used.
        txCode:
          type: string
      additionalProperties: false
    IssuanceRejectRequestRestDTO:
      type: object
      required:
      - interactionId
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
      additionalProperties: false
    IssueWalletUnitAttestationRequestRestDTO:
      type: object
      properties:
        waa:
          type: array
          items:
            $ref: '#/components/schemas/IssueWiaRequestRestDTO'
          description: deprecated, replaced by `wia`
          deprecated: true
        wia:
          type: array
          items:
            $ref: '#/components/schemas/IssueWiaRequestRestDTO'
        wua:
          type: array
          items:
            $ref: '#/components/schemas/IssueWuaRequestRestDTO'
      additionalProperties: false
    IssueWalletUnitAttestationResponseRestDTO:
      type: object
      properties:
        waa:
          type: array
          items:
            type: string
          description: deprecated, replaced by `wia`
          deprecated: true
        wia:
          type: array
          items:
            type: string
        wua:
          type: array
          items:
            type: string
    IssueWiaRequestRestDTO:
      type: object
      required:
      - proof
      properties:
        proof:
          type: string
      additionalProperties: false
    IssueWuaRequestRestDTO:
      type: object
      required:
      - proof
      - securityLevel
      properties:
        proof:
          type: string
        securityLevel:
          $ref: '#/components/schemas/KeyStorageSecurityLevelRestEnum'
      additionalProperties: false
    JsonLDContextResponseRestDTO:
      type: object
      required:
      - '@context'
      properties:
        '@context':
          $ref: '#/components/schemas/JsonLDContextRestDTO'
    JsonLDContextRestDTO:
      type: object
      required:
      - '@protected'
      - id
      - type
      properties:
        '@protected':
          type: boolean
        '@version':
          type:
          - number
          - 'null'
          format: double
        id:
          type: string
        type:
          type: string
      additionalProperties:
        $ref: '#/components/schemas/JsonLDEntityRestDTO'
    JsonLDEntityRestDTO:
      oneOf:
      - $ref: '#/components/schemas/JsonLDInlineEntityRestDTO'
      - $ref: '#/components/schemas/JsonLDNestedEntityRestDTO'
    JsonLDInlineEntityRestDTO:
      type: object
      required:
      - '@id'
      properties:
        '@context':
          $ref: '#/components/schemas/JsonLDContextRestDTO'
        '@id':
          type: string
        '@type':
          type: string
    JsonLDNestedContextRestDTO:
      type: object
      required:
      - '@protected'
      - id
      - type
      properties:
        '@protected':
          type: boolean
        id:
          type: string
        type:
          type: string
      additionalProperties:
        $ref: '#/components/schemas/JsonLDEntityRestDTO'
    JsonLDNestedEntityRestDTO:
      type: object
      required:
      - '@context'
      - '@id'
      properties:
        '@context':
          $ref: '#/components/schemas/JsonLDNestedContextRestDTO'
        '@id':
          type: string
    JwkUse:
      oneOf:
      - type: string
        enum:
        - sig
      - type: string
        enum:
        - enc
      - type: object
        required:
        - Unknown
        properties:
          Unknown:
            type: string
      description: 'see: <https://datatracker.ietf.org/doc/html/rfc7517#section-4.2>'
    KeyGenerateCSRRequestProfileRest:
      type: string
      enum:
      - GENERIC
      - MDL
      - CA
    KeyGenerateCSRRequestRestDTO:
      type: object
      required:
      - profile
      - subject
      properties:
        profile:
          $ref: '#/components/schemas/KeyGenerateCSRRequestProfileRest'
        subject:
          $ref: '#/components/schemas/KeyGenerateCSRRequestSubjectRestDTO'
      additionalProperties: false
    KeyGenerateCSRRequestSubjectRestDTO:
      type: object
      properties:
        commonName:
          type: string
          description: Common name to include in the CSR, typically the domain name of the organization.
        countryName:
          type: string
          description: Two-letter country code.
        localityName:
          type: string
        organisationName:
          type: string
        serialNumber:
          type: string
        stateOrProvinceName:
          type: string
      additionalProperties: false
    KeyGenerateCSRResponseRestDTO:
      type: object
      required:
      - content
      properties:
        content:
          type: string
    KeyId:
      type: string
      format: uuid
    KeyListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - publicKey
      - keyType
      - storageType
      - isRemote
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/KeyId'
        isRemote:
          type: boolean
        keyType:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        publicKey:
          type: string
        storageType:
          type: string
    KeyRequestRestDTO:
      type: object
      required:
      - keyType
      - keyParams
      - name
      - storageType
      - storageParams
      properties:
        keyParams:
          type: object
          description: The parameters passed into the key algorithm.
        keyType:
          type: string
          description: |-
            Choose which key algorithm to use to create the key pair. Check
            the `keyAlgorithm` object of the configuration for supported options
            and reference the configuration instance.
          enum:
          - EDDSA
          - ECDSA
          - BBS_PLUS
          - ML_DSA
        name:
          type: string
          description: Must be unique within the organization.
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        storageParams:
          type: object
          description: The parameters passed into the storage type.
        storageType:
          type: string
          description: |-
            Choose a key storage type. Check the `keyStorage`
            object of the configuration for supported options and reference the
            configuration instance.
          enum:
          - INTERNAL
      additionalProperties: false
    KeyResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - organisationId
      - name
      - publicKey
      - keyType
      - storageType
      - isRemote
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/KeyId'
        isRemote:
          type: boolean
        keyType:
          type: string
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        publicKey:
          type: string
        storageType:
          type: string
    KeyRoleRestEnum:
      type: string
      enum:
      - AUTHENTICATION
      - ASSERTION_METHOD
      - KEY_AGREEMENT
      - CAPABILITY_INVOCATION
      - CAPABILITY_DELEGATION
      - UPDATE_KEY
    KeyStorageSecurityLevelRestEnum:
      type: string
      enum:
      - iso_18045_high
      - iso_18045_moderate
      - iso_18045_enhanced-basic
      - iso_18045_basic
    KeyStorageSecurityRestEnum:
      type: string
      enum:
      - HIGH
      - MODERATE
      - ENHANCED_BASIC
      - BASIC
    LVVCIssuerResponseRestDTO:
      type: object
      required:
      - credential
      properties:
        credential:
          type: string
    LdpVcAlgs:
      type: object
      properties:
        proof_type:
          type: array
          items:
            type: string
      additionalProperties: false
    ListTrustAnchorsResponseItemRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - type
      - isPublisher
      - publisherReference
      - entities
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        entities:
          type: integer
          format: int64
          minimum: 0
        id:
          $ref: '#/components/schemas/TrustAnchorId'
        isPublisher:
          type: boolean
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        publisherReference:
          type: string
        type:
          type: string
    ListTrustEntitiesResponseItemRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - state
      - role
      - trustAnchor
      - type
      - entityKey
      properties:
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        entityKey:
          $ref: '#/components/schemas/TrustEntityKey'
        id:
          $ref: '#/components/schemas/TrustEntityId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        logo:
          type: string
        name:
          type: string
        privacyUrl:
          type: string
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
        termsUrl:
          type: string
        trustAnchor:
          $ref: '#/components/schemas/GetTrustAnchorResponseRestDTO'
        type:
          $ref: '#/components/schemas/TrustEntityTypeRest'
        website:
          type: string
    MdocAlgs:
      type: object
      properties:
        deviceauth_alg_values:
          type: array
          items:
            type: integer
            format: int32
        issuerauth_alg_values:
          type: array
          items:
            type: integer
            format: int32
      additionalProperties: false
    MdocMsoValidityResponseRestDTO:
      type: object
      required:
      - expiration
      - nextUpdate
      - lastUpdate
      properties:
        expiration:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        lastUpdate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        nextUpdate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
    NestedPresentationSubmissionDescriptorRestDTO:
      type: object
      required:
      - format
      - path
      properties:
        format:
          type: string
        path:
          type: string
      additionalProperties: false
    NoIncludesSupported:
      type: object
    OAuthAuthorizationServerMetadataRestDTO:
      type: object
      required:
      - issuer
      properties:
        authorization_endpoint:
          type: string
        challenge_endpoint:
          type: string
        client_attestation_pop_signing_alg_values_supported:
          type: array
          items:
            type: string
        client_attestation_signing_alg_values_supported:
          type: array
          items:
            type: string
        code_challenge_methods_supported:
          type: array
          items:
            type: string
        grant_types_supported:
          type: array
          items:
            type: string
        issuer:
          type: string
        jwks_uri:
          type: string
        pushed_authorization_request_endpoint:
          type: string
        response_types_supported:
          type: array
          items:
            type: string
        token_endpoint:
          type: string
        token_endpoint_auth_methods_supported:
          type: array
          items:
            $ref: '#/components/schemas/TokenEndpointAuthMethod'
    OID4VPAuthorizationEncryptedResponseAlgorithm:
      type: string
      enum:
      - ECDH-ES
    OpenID4VCIAuthorizationCodeGrantRestDTO:
      type: object
      properties:
        authorization_server:
          type: string
        issuer_state:
          type: string
    OpenID4VCICredentialDefinitionRequestRestDTO:
      type: object
      required:
      - type
      - credentialSubject
      properties:
        credentialSubject:
          type: object
        type:
          type: array
          items:
            type: string
      additionalProperties: false
    OpenID4VCICredentialDefinitionRestDTO:
      type: object
      required:
      - type
      properties:
        '@context':
          type: array
          items:
            type: string
        type:
          type: array
          items:
            type: string
    OpenID4VCICredentialMetadataClaimResponseRestDTO:
      type: object
      required:
      - path
      properties:
        additional_values:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
        display:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataClaimDisplayRestDTO'
        mandatory:
          type: boolean
        path:
          type: array
          items:
            type: string
    OpenID4VCICredentialMetadataResponseRestDTO:
      type: object
      properties:
        claims:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCICredentialMetadataClaimResponseRestDTO'
        display:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataCredentialSupportedDisplayRestDTO'
    OpenID4VCICredentialOfferRestDTO:
      type: object
      required:
      - credential_issuer
      - credential_configuration_ids
      - grants
      properties:
        credential_configuration_ids:
          type: array
          items:
            type: string
        credential_issuer:
          type: string
        credential_subject:
          $ref: '#/components/schemas/ExtendedSubjectRestDTO'
        grants:
          $ref: '#/components/schemas/OpenID4VCIGrantsRestDTO'
        issuer_certificate:
          type: string
        issuer_did:
          $ref: '#/components/schemas/DidValue'
    OpenID4VCICredentialRequestIdentifierRest:
      oneOf:
      - type: object
        required:
        - credential_configuration_id
        properties:
          credential_configuration_id:
            type: string
      - type: object
        required:
        - credential_identifier
        properties:
          credential_identifier:
            type: string
    OpenID4VCICredentialRequestProofsRest:
      oneOf:
      - type: object
        required:
        - jwt
        properties:
          jwt:
            type: array
            items:
              type: string
      - type: object
        required:
        - di_vp
        properties:
          di_vp:
            type: array
            items:
              type: string
      - type: object
        required:
        - attestation
        properties:
          attestation:
            type: array
            items:
              type: string
    OpenID4VCICredentialRequestRestDTO:
      type: object
      required:
      - format
      - proof
      properties:
        credential_definition:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OpenID4VCICredentialDefinitionRequestRestDTO'
        doctype:
          type:
          - string
          - 'null'
        format:
          type: string
        proof:
          $ref: '#/components/schemas/OpenID4VCIProofRequestRestDTO'
        vct:
          type:
          - string
          - 'null'
      additionalProperties: false
    OpenID4VCICredentialResponseEntryRestDTO:
      type: object
      required:
      - credential
      properties:
        credential:
          type: string
    OpenID4VCICredentialResponseRestDTO:
      type: object
      required:
      - credential
      properties:
        credential:
          type: string
        notification_id:
          type: string
        redirectUri:
          type: string
    OpenID4VCIDiscoveryResponseRestDTO:
      type: object
      required:
      - issuer
      - token_endpoint
      - response_types_supported
      - grant_types_supported
      - subject_types_supported
      - id_token_signing_alg_values_supported
      properties:
        authorization_endpoint:
          type:
          - string
          - 'null'
        grant_types_supported:
          type: array
          items:
            type: string
        id_token_signing_alg_values_supported:
          type: array
          items:
            type: string
        issuer:
          type: string
        jwks_uri:
          type:
          - string
          - 'null'
        response_types_supported:
          type: array
          items:
            type: string
        subject_types_supported:
          type: array
          items:
            type: string
        token_endpoint:
          type: string
    OpenID4VCIErrorResponseRestDTO:
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/OpenID4VCIErrorRestEnum'
    OpenID4VCIErrorRestEnum:
      oneOf:
      - type: string
        enum:
        - unsupported_grant_type
      - type: string
        enum:
        - invalid_grant
      - type: string
        enum:
        - invalid_request
      - type: string
        enum:
        - invalid_token
      - type: string
        enum:
        - invalid_nonce
      - type: string
        enum:
        - invalid_or_missing_proof
      - type: string
        enum:
        - unsupported_credential_format
      - type: string
        enum:
        - unsupported_credential_type
      - type: string
        enum:
        - credential_request_denied
      - type: string
        enum:
        - invalid_notification_id
      - type: string
        enum:
        - invalid_notification_request
      - type: object
        required:
        - runtime_error
        properties:
          runtime_error:
            type: string
    OpenID4VCIFinal1CredentialOfferRestDTO:
      type: object
      required:
      - credential_issuer
      - credential_configuration_ids
      - grants
      properties:
        credential_configuration_ids:
          type: array
          items:
            type: string
        credential_issuer:
          type: string
        grants:
          $ref: '#/components/schemas/OpenID4VCIGrantsRestDTO'
    OpenID4VCIFinal1CredentialRequestRestDTO:
      allOf:
      - $ref: '#/components/schemas/OpenID4VCICredentialRequestIdentifierRest'
      - type: object
        properties:
          proofs:
            $ref: '#/components/schemas/OpenID4VCICredentialRequestProofsRest'
    OpenID4VCIFinal1CredentialResponseRestDTO:
      type: object
      properties:
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCICredentialResponseEntryRestDTO'
        interval:
          type: integer
          format: int64
          minimum: 0
        notification_id:
          type: string
        redirectUri:
          type: string
        transaction_id:
          type: string
    OpenID4VCIGrantsRestDTO:
      oneOf:
      - type: object
        required:
        - urn:ietf:params:oauth:grant-type:pre-authorized_code
        properties:
          urn:ietf:params:oauth:grant-type:pre-authorized_code:
            $ref: '#/components/schemas/OpenID4VCIPreAuthorizedGrantRestDTO'
      - type: object
        required:
        - authorization_code
        properties:
          authorization_code:
            $ref: '#/components/schemas/OpenID4VCIAuthorizationCodeGrantRestDTO'
    OpenID4VCIIssuerMetadataClaimDisplayRestDTO:
      type: object
      properties:
        locale:
          type: string
        name:
          type: string
    OpenID4VCIIssuerMetadataCredentialMetadataImageRestDTO:
      type: object
      required:
      - uri
      properties:
        uri:
          type: string
    OpenID4VCIIssuerMetadataCredentialMetadataProcivisDesignRestDTO:
      type: object
      properties:
        code_attribute:
          type: string
        code_type:
          $ref: '#/components/schemas/CredentialSchemaCodeTypeRestEnum'
        picture_attribute:
          type: string
        primary_attribute:
          type: string
        secondary_attribute:
          type: string
    OpenID4VCIIssuerMetadataCredentialSupportedDisplayRestDTO:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    OpenID4VCIIssuerMetadataCredentialSupportedResponseRestDTO:
      type: object
      required:
      - format
      properties:
        claims:
          type: object
        credential_definition:
          $ref: '#/components/schemas/OpenID4VCICredentialDefinitionRequestRestDTO'
        credential_signing_alg_values_supported:
          type: array
          items:
            type: string
        cryptographic_binding_methods_supported:
          type: array
          items:
            type: string
        display:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataCredentialSupportedDisplayRestDTO'
        doctype:
          type: string
        format:
          type: string
        order:
          type: array
          items:
            type: string
        proof_types_supported:
          type: object
        scope:
          type: string
        vct:
          type: string
        wallet_storage_type:
          $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    OpenID4VCIIssuerMetadataDisplayResponseRestDTO:
      type: object
      required:
      - name
      - locale
      properties:
        locale:
          type: string
        name:
          type: string
    OpenID4VCIIssuerMetadataLogoRestDTO:
      type: object
      required:
      - uri
      properties:
        alt_text:
          type: string
        uri:
          type: string
    OpenID4VCIIssuerMetadataResponseRestDTO:
      type: object
      required:
      - credential_issuer
      - credential_endpoint
      - credential_configurations_supported
      properties:
        credential_configurations_supported:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataCredentialSupportedResponseRestDTO'
          propertyNames:
            type: string
        credential_endpoint:
          type: string
        credential_issuer:
          type: string
        display:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataDisplayResponseRestDTO'
        notification_endpoint:
          type: string
    OpenID4VCINonceResponseRestDTO:
      type: object
      required:
      - c_nonce
      properties:
        c_nonce:
          type: string
    OpenID4VCINotificationEventRest:
      type: string
      enum:
      - credential_accepted
      - credential_failure
      - credential_deleted
    OpenID4VCINotificationRequestRestDTO:
      type: object
      required:
      - notification_id
      - event
      properties:
        event:
          $ref: '#/components/schemas/OpenID4VCINotificationEventRest'
        event_description:
          type:
          - string
          - 'null'
        notification_id:
          type: string
    OpenID4VCIPreAuthorizedGrantRestDTO:
      type: object
      required:
      - pre-authorized_code
      properties:
        authorization_server:
          type: string
        pre-authorized_code:
          type: string
        tx_code:
          $ref: '#/components/schemas/OpenID4VCITxCodeRestDTO'
    OpenID4VCIProofRequestRestDTO:
      type: object
      required:
      - proof_type
      - jwt
      properties:
        jwt:
          type: string
        proof_type:
          type: string
      additionalProperties: false
    OpenID4VCISwiyuCredentialResponseRestDTO:
      type: object
      required:
      - credential
      - format
      properties:
        credential:
          type: string
        format:
          type: string
        redirectUri:
          type: string
    OpenID4VCITokenRequestRestDTO:
      type: object
      required:
      - grant_type
      properties:
        grant_type:
          type: string
          example: urn:ietf:params:oauth:grant-type:pre-authorized_code
        pre-authorized_code:
          type: string
        refresh_token:
          type: string
        tx_code:
          type: string
    OpenID4VCITokenResponseRestDTO:
      type: object
      required:
      - access_token
      - token_type
      - expires_in
      properties:
        access_token:
          type: string
          example: secret
        c_nonce:
          type: string
        expires_in:
          $ref: '#/components/schemas/TimestampRest'
        refresh_token:
          type: string
          example: secret
        refresh_token_expires_in:
          $ref: '#/components/schemas/TimestampRest'
        token_type:
          type: string
    OpenID4VCITxCodeInputModeRestEnum:
      type: string
      enum:
      - numeric
      - text
    OpenID4VCITxCodeRestDTO:
      type: object
      properties:
        description:
          type: string
        input_mode:
          $ref: '#/components/schemas/OpenID4VCITxCodeInputModeRestEnum'
        length:
          type: integer
          format: int64
    OpenID4VPDirectPostRequestRestDTO:
      allOf:
      - $ref: '#/components/schemas/VpSubmissionDataRestDTO'
      - type: object
        properties:
          state:
            oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/InteractionId'
    OpenID4VPDirectPostResponseRestDTO:
      type: object
      properties:
        redirect_uri:
          type: string
    OpenID4VPDraftClientMetadataResponseRestDTO:
      type: object
      required:
      - vp_formats
      properties:
        authorization_encrypted_response_alg:
          $ref: '#/components/schemas/OID4VPAuthorizationEncryptedResponseAlgorithm'
        authorization_encrypted_response_enc:
          $ref: '#/components/schemas/EncryptionAlgorithm'
        id_token_encrypted_response_alg:
          type: string
        id_token_encrypted_response_enc:
          type: string
        jwks:
          $ref: '#/components/schemas/ClientMetadataJwks'
        jwks_uri:
          type: string
        subject_syntax_types_supported:
          type: array
          items:
            type: string
        vp_formats:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PresentationFormat'
          propertyNames:
            type: string
    OpenID4VPPresentationDefinitionConstraintFieldFilterRestDTO:
      type: object
      required:
      - type
      - const
      properties:
        const:
          type: string
        type:
          type: string
    OpenID4VPPresentationDefinitionConstraintFieldRestDTO:
      type: object
      required:
      - path
      properties:
        filter:
          $ref: '#/components/schemas/OpenID4VPPresentationDefinitionConstraintFieldFilterRestDTO'
        id:
          type: string
          format: uuid
        intent_to_retain:
          type: boolean
        optional:
          type: boolean
        path:
          type: array
          items:
            type: string
    OpenID4VPPresentationDefinitionConstraintRestDTO:
      type: object
      required:
      - fields
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VPPresentationDefinitionConstraintFieldRestDTO'
        validity_credential_nbf:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
    OpenID4VPPresentationDefinitionInputDescriptorRestDTO:
      type: object
      required:
      - id
      - format
      - constraints
      properties:
        constraints:
          $ref: '#/components/schemas/OpenID4VPPresentationDefinitionConstraintRestDTO'
        format:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PresentationFormat'
          propertyNames:
            type: string
        id:
          type: string
        name:
          type: string
        purpose:
          type: string
    OpenID4VPPresentationDefinitionResponseRestDTO:
      type: object
      required:
      - id
      - input_descriptors
      properties:
        id:
          type: string
        input_descriptors:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VPPresentationDefinitionInputDescriptorRestDTO'
    OrganisationId:
      type: string
      format: uuid
    PatchTrustEntityActionRestDTO:
      type: string
      enum:
      - ADMIN_ACTIVATE
      - ACTIVATE
      - WITHDRAW
      - REMOVE
    PatchTrustEntityRequestRestDTO:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/PatchTrustEntityActionRestDTO'
          description: Update the entity's status on the trust anchor.
        content:
          type:
          - string
          - 'null'
          description: When adding a new certificate, put the PEM content here.
        logo:
          type:
          - string
          - 'null'
          description: base64 encoded image. Maximum size = 50kb.
        name:
          type: string
          description: Specify the entity name.
        privacyUrl:
          type:
          - string
          - 'null'
          description: Specify the Privacy Policy URL.
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
          description: Whether the entity is a trusted issuer, verifier, or both.
        termsUrl:
          type:
          - string
          - 'null'
          description: Specify a Terms of Service URL.
        website:
          type:
          - string
          - 'null'
          description: Specify the entity's domain name.
      additionalProperties: false
    PexSubmissionRestDTO:
      type: object
      required:
      - vp_token
      - presentation_submission
      properties:
        presentation_submission:
          $ref: '#/components/schemas/PresentationSubmissionMappingRestDTO'
        vp_token:
          type: array
          items:
            type: string
    PresentationDefinitionFieldRestDTO:
      type: object
      required:
      - id
      - keyMap
      properties:
        id:
          type: string
        keyMap:
          type: object
          additionalProperties:
            type: string
          propertyNames:
            type: string
            format: uuid
        name:
          type: string
        purpose:
          type: string
        required:
          type: boolean
    PresentationDefinitionRequestGroupResponseRestDTO:
      type: object
      required:
      - id
      - rule
      - requestedCredentials
      properties:
        id:
          type: string
        name:
          type: string
        purpose:
          type: string
        requestedCredentials:
          type: array
          items:
            $ref: '#/components/schemas/PresentationDefinitionRequestedCredentialResponseRestDTO'
        rule:
          $ref: '#/components/schemas/PresentationDefinitionRuleRestDTO'
    PresentationDefinitionRequestedCredentialResponseRestDTO:
      type: object
      description: |-
        Summary of the credentials requested by the verifier, including suitable
        credentials filtered from the wallet.
      required:
      - id
      - fields
      - applicableCredentials
      properties:
        applicableCredentials:
          type: array
          items:
            $ref: '#/components/schemas/CredentialId'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/PresentationDefinitionFieldRestDTO'
        id:
          type: string
        inapplicableCredentials:
          type: array
          items:
            $ref: '#/components/schemas/CredentialId'
        multiple:
          type: boolean
        name:
          type: string
        purpose:
          type: string
        validityCredentialNbf:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
    PresentationDefinitionResponseRestDTO:
      type: object
      required:
      - requestGroups
      - credentials
      properties:
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/GetCredentialResponseRestDTO_CredentialDetailClaimResponseRestDTO'
        requestGroups:
          type: array
          items:
            $ref: '#/components/schemas/PresentationDefinitionRequestGroupResponseRestDTO'
    PresentationDefinitionRuleRestDTO:
      type: object
      required:
      - type
      properties:
        count:
          type: integer
          format: int32
          minimum: 0
        max:
          type: integer
          format: int32
          minimum: 0
        min:
          type: integer
          format: int32
          minimum: 0
        type:
          $ref: '#/components/schemas/PresentationDefinitionRuleTypeRestEnum'
    PresentationDefinitionRuleTypeRestEnum:
      type: string
      enum:
      - all
      - pick
    PresentationDefinitionV2ResponseRestDTO:
      type: object
      required:
      - credentialQueries
      - credentialSets
      properties:
        credentialQueries:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CredentialQueryResponseRestDTO'
          propertyNames:
            type: string
        credentialSets:
          type: array
          items:
            $ref: '#/components/schemas/CredentialSetResponseRestDTO'
    PresentationFormat:
      oneOf:
      - $ref: '#/components/schemas/EmptyEntry'
      - $ref: '#/components/schemas/SdJwtVcAlgs'
      - $ref: '#/components/schemas/LdpVcAlgs'
      - $ref: '#/components/schemas/W3CJwtAlgs'
      - $ref: '#/components/schemas/W3CLdpAlgs'
      - $ref: '#/components/schemas/MdocAlgs'
      - $ref: '#/components/schemas/GenericAlgs'
      - {}
    PresentationRejectRequestRestDTO:
      type: object
      required:
      - interactionId
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
          description: The identifier associated with a particular verification interaction.
      additionalProperties: false
    PresentationSubmissionDescriptorRestDTO:
      type: object
      required:
      - id
      - format
      - path
      properties:
        format:
          type: string
          example: SD_JWT
        id:
          type: string
        path:
          type: string
        path_nested:
          $ref: '#/components/schemas/NestedPresentationSubmissionDescriptorRestDTO'
      additionalProperties: false
    PresentationSubmissionMappingRestDTO:
      type: object
      required:
      - id
      - definition_id
      - descriptor_map
      properties:
        definition_id:
          type: string
        descriptor_map:
          type: array
          items:
            $ref: '#/components/schemas/PresentationSubmissionDescriptorRestDTO'
        id:
          type: string
      additionalProperties: false
    PresentationSubmitCredentialRequestRestDTO:
      type: object
      required:
      - credentialId
      - submitClaims
      properties:
        credentialId:
          type: string
          format: uuid
          description: Select a credential.
        submitClaims:
          type: array
          items:
            type: string
          description: claimSchemaId of the claim to send from this credential.
      additionalProperties: false
    PresentationSubmitRequestRestDTO:
      type: object
      required:
      - interactionId
      - submitCredentials
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
        submitCredentials:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/PresentationSubmitCredentialRequestRestDTO'
          propertyNames:
            type: string
      additionalProperties: false
    PresentationSubmitV2CredentialRequestRestDTO:
      type: object
      required:
      - credentialId
      properties:
        credentialId:
          $ref: '#/components/schemas/CredentialId'
          description: Submitted credential.
        userSelections:
          type: array
          items:
            type: string
          description: Path of claims that were optionally selected by the user.
      additionalProperties: false
    PresentationSubmitV2RequestRestDTO:
      type: object
      required:
      - interactionId
      - submission
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
        submission:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/PresentationSubmitV2CredentialRequestRestDTO'
          propertyNames:
            type: string
      additionalProperties: false
    ProcivisSubjectClaimValueRestDTO:
      type: object
      required:
      - value_type
      properties:
        value:
          type: string
        value_type:
          type: string
    ProofClaimRestDTO:
      type: object
      required:
      - schema
      - path
      properties:
        path:
          type: string
        schema:
          $ref: '#/components/schemas/ProofClaimSchemaResponseRestDTO'
        value:
          $ref: '#/components/schemas/ProofClaimValueRestDTO'
    ProofClaimSchemaResponseRestDTO:
      type: object
      description: The set of attributes being requested when using this proof schema.
      required:
      - id
      - requested
      - required
      - key
      - dataType
      - claims
      - array
      properties:
        array:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ProofClaimSchemaResponseRestDTO'
        dataType:
          type: string
          description: The type of data accepted for this attribute.
          example: STRING
        id:
          type: string
          format: uuid
        key:
          type: string
        requested:
          type: boolean
          description: Marking attributes that are targeted with proof request
        required:
          type: boolean
          description: Requested as mandatory or optional
    ProofClaimValueRestDTO:
      oneOf:
      - type: string
      - type: array
        items:
          $ref: '#/components/schemas/ProofClaimRestDTO'
    ProofDetailResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - protocol
      - transport
      - state
      - role
      - organisationId
      - proofInputs
      properties:
        claimsRemovedAt:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        completedDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        engagement:
          type: string
        id:
          $ref: '#/components/schemas/ProofId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        profile:
          type: string
        proofInputs:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputRestDTO'
        protocol:
          type: string
        redirectUri:
          type: string
        requestedDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        retainUntilDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/ProofRoleRestEnum'
        schema:
          $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
        state:
          $ref: '#/components/schemas/ProofStateRestEnum'
        transport:
          type: string
        verifier:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
        verifierCertificate:
          $ref: '#/components/schemas/CertificateResponseRestDTO'
    ProofId:
      type: string
      format: uuid
    ProofInputRestDTO:
      type: object
      required:
      - claims
      - credentialSchema
      properties:
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ProofClaimRestDTO'
          description: |-
            The set of claims being asserted by the credential shared during the
            proof request.
        credential:
          $ref: '#/components/schemas/GetCredentialResponseRestDTO_CredentialDetailClaimResponseRestDTO'
          description: The credentials exchanged as part of the successfully shared proof.
        credentialSchema:
          $ref: '#/components/schemas/CredentialSchemaListItemResponseRestDTO'
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
    ProofInputSchemaRequestRestDTO:
      type: object
      required:
      - credentialSchemaId
      - claimSchemas
      properties:
        claimSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ClaimProofSchemaRequestRestDTO'
          description: Defines the set of attributes being requested when making proof requests using this schema.
          minItems: 1
        credentialSchemaId:
          type: string
          format: uuid
          description: |-
            ID of the credential schema from which the `claimSchemas` object
            is assembled.
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
      additionalProperties: false
    ProofInputSchemaResponseRestDTO:
      type: object
      required:
      - claimSchemas
      - credentialSchema
      properties:
        claimSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ProofClaimSchemaResponseRestDTO'
          description: Defines the set of attributes being requested when making proof requests using this schema.
        credentialSchema:
          $ref: '#/components/schemas/CredentialSchemaListItemResponseRestDTO'
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
    ProofListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - protocol
      - transport
      - state
      - role
      properties:
        completedDate:
          type: string
          format: date-time
          description: When holder submitted valid proof.
          example: 2023-06-09T14:19:57.000Z
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        engagement:
          type: string
        id:
          $ref: '#/components/schemas/ProofId'
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        profile:
          type: string
          description: Profile associated with this proof request
        protocol:
          type: string
          description: Verification protocol used.
        requestedDate:
          type: string
          format: date-time
          description: |-
            When proof request state changed from `PENDING` to `REQUESTED`.
            Not supported in all exchange protocols.
          example: 2023-06-09T14:19:57.000Z
        retainUntilDate:
          type: string
          format: date-time
          description: |-
            Time at which the data shared by the holder for this proof request will be deleted.
            Determined by the `expireDuration` parameter of the proof schema.
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/ProofRoleRestEnum'
        schema:
          $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
        state:
          $ref: '#/components/schemas/ProofStateRestEnum'
        transport:
          type: string
          description: Transport protocol used.
        verifier:
          $ref: '#/components/schemas/GetIdentifierListItemResponseRestDTO'
    ProofRoleRestEnum:
      type: string
      description: The role the system has in relation to the proof.
      enum:
      - HOLDER
      - VERIFIER
    ProofSchemaId:
      type: string
      format: uuid
    ProofSchemaShareResponseRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
    ProofStateRestEnum:
      type: string
      description: The state representation of the proof request in the system.
      enum:
      - CREATED
      - PENDING
      - REQUESTED
      - ACCEPTED
      - REJECTED
      - RETRACTED
      - ERROR
      - INTERACTION_EXPIRED
    ProofTypeSupported:
      type: object
      required:
      - proofSigningAlgValuesSupported
      properties:
        proofSigningAlgValuesSupported:
          type: array
          items:
            type: string
    ProposeProofRequestRestDTO:
      type: object
      required:
      - protocol
      - engagement
      properties:
        engagement:
          type: array
          items:
            type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
          description: |-
            Required when not using STS authentication mode. Specifies the
            organizational context for this operation. When using STS
            authentication, this value is derived from the token.
        protocol:
          type: string
        uiMessage:
          type: string
      additionalProperties: false
    ProposeProofResponseRestDTO:
      type: object
      required:
      - proofId
      - interactionId
      properties:
        interactionId:
          $ref: '#/components/schemas/InteractionId'
        proofId:
          $ref: '#/components/schemas/ProofId'
        url:
          type:
          - string
          - 'null'
    PublicJwk:
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/PublicJwkEc'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - EC
      - allOf:
        - $ref: '#/components/schemas/PublicJwkRsa'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - RSA
      - allOf:
        - $ref: '#/components/schemas/PublicJwkEc'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - OKP
      - allOf:
        - $ref: '#/components/schemas/PublicJwkOct'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - oct
      - allOf:
        - $ref: '#/components/schemas/PublicJwkAkp'
          description: Specified in https://www.ietf.org/archive/id/draft-ietf-cose-dilithium-11.html
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - AKP
        description: Specified in https://www.ietf.org/archive/id/draft-ietf-cose-dilithium-11.html
    PublicJwkAkp:
      type: object
      required:
      - alg
      - pub
      properties:
        alg:
          type: string
        kid:
          type: string
        pub:
          type: string
        use:
          $ref: '#/components/schemas/JwkUse'
    PublicJwkEc:
      type: object
      required:
      - crv
      - x
      properties:
        alg:
          type: string
        crv:
          type: string
        kid:
          type: string
        use:
          $ref: '#/components/schemas/JwkUse'
        x:
          type: string
        y:
          type: string
    PublicJwkOct:
      type: object
      required:
      - k
      properties:
        alg:
          type: string
        k:
          type: string
        kid:
          type: string
        use:
          $ref: '#/components/schemas/JwkUse'
    PublicJwkRsa:
      type: object
      required:
      - e
      - n
      properties:
        alg:
          type: string
        e:
          type: string
        kid:
          type: string
        n:
          type: string
        use:
          $ref: '#/components/schemas/JwkUse'
    RegisterWalletUnitRequestRestDTO:
      type: object
      required:
      - walletProvider
      - os
      properties:
        os:
          $ref: '#/components/schemas/WalletUnitOsRestEnum'
        proof:
          type: string
        publicKey:
          $ref: '#/components/schemas/PublicJwk'
        walletProvider:
          type: string
      additionalProperties: false
    RegisterWalletUnitResponseRestDTO:
      type: object
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/WalletUnitId'
        nonce:
          type: string
    ResolveJsonLDContextResponseRestDTO:
      type: object
      required:
      - context
      properties:
        context: {}
    ResolveTrustEntitiesRequestRestDTO:
      type: object
      required:
      - identifiers
      properties:
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/ResolveTrustEntityRequestRestDTO'
      additionalProperties: false
    ResolveTrustEntitiesResponseRestDTO:
      type: object
      additionalProperties:
        type: array
        items:
          $ref: '#/components/schemas/ResolvedIdentifierTrustEntityResponseRestDTO'
    ResolveTrustEntityRequestRestDTO:
      type: object
      required:
      - id
      properties:
        certificateId:
          $ref: '#/components/schemas/CertificateId'
        id:
          $ref: '#/components/schemas/IdentifierId'
      additionalProperties: false
    ResolvedIdentifierTrustEntityResponseRestDTO:
      allOf:
      - $ref: '#/components/schemas/GetTrustEntityResponseRestDTO'
      - type: object
        properties:
          certificateIds:
            type: array
            items:
              $ref: '#/components/schemas/CertificateId'
    ResponseSubmissionRestDTO:
      type: object
      required:
      - response
      properties:
        response:
          type: string
    RevocationListId:
      type: string
      format: uuid
    RevocationMethodId:
      type: string
      description: Identifier of a revocation method based in CoreConfig.revocation
    SSIPostTrustEntityRequestRestDTO:
      type: object
      required:
      - did
      - name
      - role
      properties:
        did:
          $ref: '#/components/schemas/DidValue'
          description: Specify DID value.
        logo:
          type: string
          description: base64 encoded image. Maximum size = 50kb.
        name:
          type: string
          description: Specify the entity name.
        privacyUrl:
          type: string
          description: Specify the Privacy Policy url.
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        termsUrl:
          type: string
          description: Specify a Terms of Service url.
        trustAnchorId:
          $ref: '#/components/schemas/TrustAnchorId'
          description: Specify trust anchor ID.
        website:
          type: string
          description: Specify the entity's domain name.
      additionalProperties: false
    ScanToVerifyBarcodeTypeRestEnum:
      type: string
      enum:
      - MRZ
      - PDF417
    ScanToVerifyRequestRestDTO:
      type: object
      description: Only for use when verifying VC Barcodes.
      required:
      - credential
      - barcode
      - barcodeType
      properties:
        barcode:
          type: string
        barcodeType:
          $ref: '#/components/schemas/ScanToVerifyBarcodeTypeRestEnum'
        credential:
          type: string
      additionalProperties: false
    SdJwtVcAlgs:
      type: object
      properties:
        kb-jwt_alg_values:
          type: array
          items:
            type: string
        sd-jwt_alg_values:
          type: array
          items:
            type: string
      additionalProperties: false
    SdJwtVcClaimDisplayRestDTO:
      type: object
      required:
      - lang
      - label
      properties:
        label:
          type: string
        lang:
          type: string
    SdJwtVcClaimRestDTO:
      type: object
      required:
      - path
      - display
      properties:
        display:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcClaimDisplayRestDTO'
        path:
          type: array
          items: {}
        sd:
          $ref: '#/components/schemas/SdJwtVcClaimSdRestEnum'
    SdJwtVcClaimSdRestEnum:
      type: string
      enum:
      - always
      - allowed
      - never
    SdJwtVcDisplayMetadataRestDTO:
      type: object
      required:
      - lang
      - name
      properties:
        lang:
          type: string
        name:
          type: string
        rendering:
          $ref: '#/components/schemas/SdJwtVcRenderingRestDTO'
    SdJwtVcRenderingRestDTO:
      type: object
      properties:
        simple:
          $ref: '#/components/schemas/SdJwtVcSimpleRenderingRestDTO'
    SdJwtVcSimpleRenderingLogoRestDTO:
      type: object
      required:
      - uri
      properties:
        altText:
          type: string
        uri:
          type: string
          format: uri
    SdJwtVcSimpleRenderingRestDTO:
      type: object
      properties:
        backgroundColor:
          type: string
        logo:
          $ref: '#/components/schemas/SdJwtVcSimpleRenderingLogoRestDTO'
        textColor:
          type: string
    SdJwtVcTypeMetadataResponseRestDTO:
      type: object
      required:
      - vct
      - display
      - claims
      properties:
        claims:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcClaimRestDTO'
        display:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcDisplayMetadataRestDTO'
        layout_properties:
          $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        name:
          type: string
        schema: {}
        schema_uri:
          type: string
          format: uri
        vct:
          type: string
    SearchType:
      type: string
      enum:
      - CLAIM_NAME
      - CLAIM_VALUE
      - CREDENTIAL_SCHEMA_NAME
    ShareCredentialResponseRestDTO:
      type: object
      required:
      - url
      properties:
        expiresAt:
          type: string
          format: date-time
          description: |-
            URL becomes unusable by wallet holder at this time. Call the share
            endpoint again to get a new URL.
          example: 2023-06-09T14:19:57.000Z
        transactionCode:
          type: string
          description: |-
            The generated one-time code required for the holder to complete
            credential issuance. Must be transmitted to the holder through a
            secure out-of-band channel such as SMS or email to a verified
            contact.
        url:
          type: string
          description: Share URL, typically encoded as a QR code.
    ShareProofRequestParamsRestDTO:
      type: object
      properties:
        clientIdScheme:
          $ref: '#/components/schemas/ClientIdSchemeRestEnum'
      additionalProperties: false
    ShareProofRequestRestDTO:
      type: object
      properties:
        params:
          $ref: '#/components/schemas/ShareProofRequestParamsRestDTO'
      additionalProperties: false
    ShareProofResponseRestDTO:
      type: object
      required:
      - url
      properties:
        expiresAt:
          type: string
          format: date-time
          description: |-
            URL becomes unusable by wallet holder at this time. Call the share
            endpoint again to get a new URL.
          example: 2023-06-09T14:19:57.000Z
        url:
          type: string
          description: Share URL, typically encoded as a QR code.
    SignatureRevocationCheckRequestRestDTO:
      type: object
      required:
      - signatureIds
      properties:
        signatureIds:
          type: array
          items:
            type: string
            format: uuid
    SignatureRevocationCheckResponseRestDTO:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/SignatureStatusInfoRestDTO'
    SignatureStateRestEnum:
      type: string
      enum:
      - ACTIVE
      - REVOKED
    SignatureStatusInfoRestDTO:
      type: object
      required:
      - state
      - type
      properties:
        state:
          $ref: '#/components/schemas/SignatureStateRestEnum'
        type:
          type: string
    SortDirection:
      type: string
      enum:
      - ASC
      - DESC
    SortableCredentialColumnRestEnum:
      type: string
      enum:
      - createdDate
      - schema.name
      - issuer
      - state
    SortableCredentialSchemaColumnRestEnum:
      type: string
      enum:
      - name
      - format
      - createdDate
    SortableDidColumnRestDTO:
      type: string
      enum:
      - name
      - createdDate
      - method
      - type
      - did
      - deactivated
    SortableHistoryColumnRestDTO:
      type: string
      enum:
      - createdDate
      - action
      - entityType
      - source
      - user
      - organisationId
    SortableIdentifierColumnRest:
      type: string
      enum:
      - name
      - createdDate
      - type
      - state
    SortableKeyColumnRestDTO:
      type: string
      enum:
      - name
      - createdDate
      - publicKey
      - keyType
      - storageType
    SortableOrganisationColumnRestDTO:
      type: string
      enum:
      - name
      - createdDate
    SortableProofColumnRestEnum:
      type: string
      enum:
      - schema.name
      - verifier
      - createdDate
      - state
    SortableProofSchemaColumnRestEnum:
      type: string
      enum:
      - name
      - createdDate
    SortableTrustAnchorColumnRestEnum:
      type: string
      enum:
      - name
      - createdDate
      - type
    SortableTrustEntityColumnRestEnum:
      type: string
      enum:
      - name
      - role
      - lastModified
      - state
      - entityKey
      - type
      - createdDate
    SortableWalletUnitColumnRest:
      type: string
      enum:
      - createdDate
      - lastModified
      - name
      - status
      - os
    SuspendCredentialRequestRestDTO:
      type: object
      properties:
        suspendEndDate:
          type: string
          format: date-time
          description: Specify the time when the credential will reactivate, or omit for an indefinite suspension.
          example: 2023-06-09T14:19:57.000Z
      additionalProperties: false
    TaskRequestRestDTO:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          description: |-
            Choose a task to run. Check the `task` object of the configuration
            for supported options and reference the configuration instance.
          enum:
          - CERTIFICATE_CHECK
          - HOLDER_CHECK_CREDENTIAL_STATUS
          - INTERACTION_EXPIRATION_CHECK
          - RETAIN_PROOF_CHECK
          - SUSPEND_CHECK
        params:
          type:
          - object
          - 'null'
          description: Parameters to pass to the task.
      additionalProperties: false
    TaskResponseRestDTO:
      allOf:
      - {}
    TimestampRest:
      type: integer
      format: int64
    TokenEndpointAuthMethod:
      oneOf:
      - type: string
        enum:
        - client_secret_basic
      - type: string
        enum:
        - client_secret_post
      - type: string
        enum:
        - none
      - type: string
        description: |-
          Attestation-based client authentication
          Spec: <https://datatracker.ietf.org/doc/html/draft-ietf-oauth-attestation-based-client-auth>
        enum:
        - attest_jwt_client_auth
      - type: object
        description: Custom/extension authentication method
        required:
        - Other
        properties:
          Other:
            type: string
            description: Custom/extension authentication method
      description: |-
        Token endpoint authentication method.

        Spec: <https://datatracker.ietf.org/doc/html/rfc7591#section-2>

        Standard values from IANA "OAuth Token Endpoint Authentication Methods" registry.
        Custom/extension values are captured by the `Other` variant.
    TransactionCodeTypeRestEnum:
      type: string
      enum:
      - NUMERIC
      - ALPHANUMERIC
    TrustAnchorId:
      type: string
      format: uuid
    TrustEntityCertificateResponseRestDTO:
      type: object
      required:
      - state
      - publicKey
      - serialNumber
      - notBefore
      - notAfter
      - issuer
      - subject
      - fingerprint
      - extensions
      properties:
        commonName:
          type: string
        extensions:
          type: array
          items:
            $ref: '#/components/schemas/CertificateX509ExtensionRestDTO'
        fingerprint:
          type: string
        issuer:
          type: string
        notAfter:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        notBefore:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        publicKey:
          type: string
        serialNumber:
          type: string
        state:
          $ref: '#/components/schemas/CertificateStateRest'
        subject:
          type: string
    TrustEntityId:
      type: string
      format: uuid
    TrustEntityKey:
      type: string
    TrustEntityRoleRest:
      type: string
      description: Whether the trust entity issues credentials, verifies credentials, or both.
      enum:
      - ISSUER
      - VERIFIER
      - BOTH
    TrustEntityStateRest:
      type: string
      description: Trust entity state.
      enum:
      - ACTIVE
      - REMOVED
      - WITHDRAWN
      - REMOVED_AND_WITHDRAWN
    TrustEntityTypeRest:
      type: string
      enum:
      - DID
      - CA
    UnexportableEntitiesResponseRestDTO:
      type: object
      required:
      - credentials
      - keys
      - dids
      - total_credentials
      - total_keys
      - total_dids
      properties:
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/GetCredentialResponseRestDTO_CredentialDetailClaimResponseRestDTO'
        dids:
          type: array
          items:
            $ref: '#/components/schemas/DidListItemResponseRestDTO'
        keys:
          type: array
          items:
            $ref: '#/components/schemas/KeyListItemResponseRestDTO'
        total_credentials:
          type: integer
          format: int64
          minimum: 0
        total_dids:
          type: integer
          format: int64
          minimum: 0
        total_keys:
          type: integer
          format: int64
          minimum: 0
    UpdateScreenRestDTO:
      type: object
      properties:
        link:
          type: string
    UpsertOrganisationRequestRestDTO:
      type: object
      required:
      - name
      - deactivate
      properties:
        deactivate:
          type: boolean
          example: true
        name:
          type: string
          example: My Organization
        walletProvider:
          type:
          - string
          - 'null'
          description: |-
            Specify which configured wallet provider this organization will use
            to issue attestations.
          example: PROCIVIS_ONE
        walletProviderIssuer:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/IdentifierId'
            description: |-
              Specify which identifier to use as the attestation issuer. This can
              be any type of identifier but it must be backed by an ECDSA key.
      additionalProperties: false
    VpSubmissionDataRestDTO:
      oneOf:
      - $ref: '#/components/schemas/PexSubmissionRestDTO'
        description: Presentation Exchange submission with presentation_submission field
      - $ref: '#/components/schemas/DcqlSubmissionRestDTO'
        description: DCQL submission with vp_token map structure
      - $ref: '#/components/schemas/ResponseSubmissionRestDTO'
        description: Response submission with response field (JWE encrypted payload)
      description: |-
        Represents the different types of VP token submissions supported by OpenID4VP.
        Untagged serialization automatically detects the submission type.
    W3CJwtAlgs:
      type: object
      properties:
        alg_values:
          type: array
          items:
            type: string
      additionalProperties: false
    W3CLdpAlgs:
      type: object
      properties:
        cryptosuite_values:
          type: array
          items:
            type: string
        proof_type_values:
          type: array
          items:
            type: string
      additionalProperties: false
    WalletInstanceAttestationRestDTO:
      type: object
      required:
      - name
      - link
      - attestation
      properties:
        attestation:
          type: string
        link:
          type: string
        name:
          type: string
    WalletProviderMetadataResponseRestDTO:
      type: object
      required:
      - walletUnitAttestation
      - name
      properties:
        appVersion:
          $ref: '#/components/schemas/AppVersionRestDTO'
        name:
          type: string
        walletUnitAttestation:
          $ref: '#/components/schemas/WalletUnitAttestationMetadataRestDTO'
    WalletProviderRestDTO:
      type: object
      required:
      - url
      - type
      properties:
        type:
          $ref: '#/components/schemas/WalletProviderTypeRestEnum'
        url:
          type: string
      additionalProperties: false
    WalletProviderTypeRestEnum:
      type: string
      enum:
      - PROCIVIS_ONE
    WalletStorageTypeRestEnum:
      type: string
      enum:
      - SOFTWARE
      - HARDWARE
      - REMOTE_SECURE_ELEMENT
    WalletUnitActivationRequestRestDTO:
      type: object
      required:
      - attestation
      - attestationKeyProof
      properties:
        attestation:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        attestationKeyProof:
          type: string
        deviceSigningKeyProof:
          type:
          - string
          - 'null'
      additionalProperties: false
    WalletUnitAttestationMetadataRestDTO:
      type: object
      required:
      - appIntegrityCheckRequired
      - enabled
      - required
      properties:
        appIntegrityCheckRequired:
          type: boolean
        enabled:
          type: boolean
        required:
          type: boolean
    WalletUnitAttestationRestDTO:
      type: object
      required:
      - attestation
      properties:
        attestation:
          type: string
    WalletUnitId:
      type: string
      format: uuid
    WalletUnitOsRestEnum:
      type: string
      enum:
      - IOS
      - ANDROID
      - WEB
    WalletUnitResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - os
      - status
      - walletProviderType
      - walletProviderName
      properties:
        authenticationKeyJwk:
          $ref: '#/components/schemas/PublicJwk'
        createdDate:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/WalletUnitId'
        lastIssuance:
          type:
          - string
          - 'null'
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        lastModified:
          type: string
          format: date-time
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        os:
          $ref: '#/components/schemas/WalletUnitOsRestEnum'
        status:
          $ref: '#/components/schemas/WalletUnitStatusRestEnum'
        walletProviderName:
          type: string
        walletProviderType:
          $ref: '#/components/schemas/WalletProviderTypeRestEnum'
    WalletUnitStatusRestEnum:
      type: string
      enum:
      - ACTIVE
      - REVOKED
      - PENDING
      - ERROR
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: Local management access token
    openID4VCI:
      type: http
      scheme: bearer
      description: OpenID4VCI token
    remote-agent:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: LVVC holder or remote Trust-entity owner access token
    wallet-unit:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Wallet unit proof of authentication key possession.
tags:
- name: other
  description: |
    Returns the system configuration, along with other system information.
  x-displayName: System information
- name: organisation_management
  description: |
    The organization is the fundamental unit in Procivis One. All
    issuing, holding, and verifying actions are performed by an
    organization. Keys, DIDs, credentials, and proofs belong exclusively
    to the organization that created them.
  x-displayName: Organizations
- name: key
  description: |
    Create cryptographic keys using different key algorithms and storage types.
    The public key can be seen in the system (`publicKey`) and is used to verify
    credentials. The private key is stored in the system and used to sign credentials,
    but cannot be exported and is not visible through the API.

    Keys form the basis of identifiers: a key pair can be used as an identifier,
    or it can be used to create a DID or a certificate.

    This resource also generates Certificate Signing Requests (CSRs), a necessary
    component of certificate creation.
  x-displayName: Keys
- name: identifier_management
  description: |
    Create and manage identifiers of different types for different identity
    ecosystems. An identifier is needed to issue, hold, or verify.
  x-displayName: Identifiers
- name: certificate_management
  description: |
    Manage certificates in the system. To add a certificate as an identifier,
    see the [identifiers](/reference/core/identifier-management) endpoints.
  x-displayName: Certificates
- name: did_management
  description: |
    Use the identifier API to create DIDs. The system assigns an ID to both
    the identifier and the DID. Use the DID ID returned from the identifier
    response with this DID API for management operations like deactivation.
  x-displayName: DIDs
- name: credential_schema_management
  description: |
    A credential schema defines the structure and format of a credential,
    including the attributes that issuers make claims about. Schemas also
    specify how issued credentials should be presented in digital wallets,
    whether revocation methods are used, and issuer preferences for wallet
    storage type.

    The system supports the creation of as many credential schemas as needed.
  x-displayName: Credential schemas
- name: credential_management
  description: |
    Issue credentials and manage the lifecycle of issued credentials, including
    suspension, reactivation, revocation and status check for holders and verifiers.

    Create a credential by specifying a schema and making claims about a subject.
    Then create a share endpoint URL for the wallet holder to access the offered
    credential. Suspension and revocation options are determined by the schema.
  x-displayName: Credentials
- name: proof_schema_management
  description: |
    A proof schema defines which attributes a verifier requests from a credential holder.
    It specifies what information will be requested.

    Proof schemas are built from attributes defined in credential schemas. Each requested
    attribute must first exist in a credential schema within the system. A proof schema
    can pull attributes from multiple credential schemas and is not restricted by credential
    format—it can combine any number of attributes from any number of credential schemas
    within the organization.

    Proof schemas cannot combine hardware- and software-based credentials.
  x-displayName: Proof schemas
- name: proof_management
  description: |
    A proof request is a request of one or more claims from a wallet holder.

    Create a proof request then create a share endpoint URL for the holder
    to access the request. Any proof shared is verified.

    This resource also includes claim data deletion and presentation definition,
    a filtering function for wallet holders to see what credentials stored in
    their wallet match a proof request.
  x-displayName: Proof requests
- name: interaction
  description: |
    For wallet agents, handle interactions with issuers and verifiers.

    When the holder scans the QR code offered by an issuer or a verifier, the
    handle invitation endpoint takes the encoded url and returns the interaction
    ID along with either the credential being offered or the proof being requested.

    The holder then makes the choice to accept or reject the exchange.
  x-displayName: Wallet interaction
- name: history_management
  description: |
    Retrieve event history.
  x-displayName: History
- name: trust_anchor
  description: |
    Manage trust anchors as a publisher or subscribe to trust anchors as a consumer.
  x-displayName: Trust anchors
- name: trust_entity
  description: |
    Manage trust entities on an anchor.
  x-displayName: Trust entities
- name: wallet_unit
  description: |
    For Wallet Providers, manage wallet units and attestations issued by the system.
  x-displayName: Wallet units (Provider)
- name: holder_wallet_unit
  description: |
    For wallet units, register with the Wallet Provider and check status.
  x-displayName: Wallet units (Holder)
- name: signature
  description: |
    Create and revoke signatures.
  x-displayName: Signatures
- name: jsonld
  description: |
    Operations for credentials formatted with JSON-LD.
  x-displayName: JSON-LD
- name: task
  description: |
    Run tasks.
  x-displayName: Task
- name: cache
  description: |
    Manage cached entities.
  x-displayName: Cache
- name: ssi
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) SSI
- name: openid4vci-draft13
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VCI Draft 13
- name: openid4vci-final1_0
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VCI Final 1.0
- name: openid4vp-draft20
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VP Draft 20
- name: openid4vp-draft25
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VP Draft 25
- name: openid4vp-final-1.0
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VP Final 1.0
- name: openid4vci-draft13-swiyu
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VCI Draft 13 - swiyu
- name: openid4vp-draft20-swiyu
  description: |2+

    :::warning

    These endpoints handle low-level mechanisms in interactions between agents.
    Deep understanding of the involved protocols is recommended.

    :::

  x-displayName: (Advanced) OID4VP Draft 20 - swiyu
externalDocs:
  url: https://docs.procivis.ch/
  description: See the documentation
