openapi: 3.1.0
info:
  title: Procivis One Core API
  description: |
    The Procivis One Core API enables the full lifecycle of credentials.
    Download the [specification](../APIspec/core.yaml).
  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: main-e6f27330
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 on 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
                - revocationMethod
                - organisationId
                - claims
                - schemaId
                - schemaType
                - importedSourceUrl
                - allowSuspension
                - externalSchema
                properties:
                  allowSuspension:
                    type: boolean
                  claims:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  externalSchema:
                    type: boolean
                  format:
                    type: string
                  id:
                    type: string
                    format: uuid
                  importedSourceUrl:
                    type: string
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  layoutProperties:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
                  layoutType:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/CredentialSchemaLayoutType'
                  name:
                    type: string
                  organisationId:
                    type: string
                    format: uuid
                  revocationMethod:
                    type: string
                  schemaId:
                    type: string
                    description: Part of the `credentialSchema` property.
                  schemaType:
                    $ref: '#/components/schemas/CredentialSchemaType'
                    description: Part of the `credentialSchema` property.
                  walletStorageType:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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
        required: true
        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
            - format
      - name: ids[]
        in: query
        description: Return only the credential schemas specified here by their UUID.
        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: format
        in: query
        description: Return only credential schemas which use the specified credential format.
        required: false
        schema:
          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/CredentialSchemaListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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:
          - 'true'
          - 'false'
      - 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
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    $ref: '#/components/schemas/TrustAnchorId'
                  isPublisher:
                    type: boolean
                  lastModified:
                    type: string
                    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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/did/v1/{id}:
    get:
      tags:
      - did_management
      summary: Retrieve a DID
      description: Returns detailed information on 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
                    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
                    example: 2023-06-09T14:19:57.000Z
                  method:
                    type: string
                  name:
                    type: string
                  organisationId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  type:
                    $ref: '#/components/schemas/DidType'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/did/v1:
    get:
      tags:
      - did_management
      summary: List DIDs
      description: Returns a list of DIDs within an organization. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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 wayh.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - did
      - name: organisationId
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/OrganisationId'
      - name: deactivated
        in: query
        description: Filter by active or deactivated DIDs.
        required: false
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - 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
      - 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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
    post:
      tags:
      - did_management
      summary: Create a DID
      description: |
        Creates a DID using a key, or keys, and a method.

        The `method` value must reference specific configuration instances
        from your system configuration. This is because the system allows
        multiple configurations of the same type.

        Related guide: [DIDs](/dids)
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                - did
                - state
                properties:
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                  organisationId:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type:
                    - string
                    - 'null'
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                  termsUrl:
                    type:
                    - string
                    - 'null'
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                  website:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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).
      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
                properties:
                  credentialIds:
                    type:
                    - array
                    - 'null'
                    items:
                      $ref: '#/components/schemas/CredentialId'
                  interactionId:
                    type: string
                    format: uuid
                  proofId:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/ProofId'
                  txCode:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/OpenID4VCITxCodeRestDTO'
                      description: |-
                        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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/issuance-accept:
    post:
      tags:
      - interaction
      summary: Accept issuance
      description: |
        Accepts an offered credential. The associated DID will be listed as the
        subject of the issued credential.
      operationId: issuance_accept
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuanceAcceptRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/presentation-reject:
    post:
      tags:
      - interaction
      summary: Reject presentation
      description: For a wallet, rejects a request to submit credentials to a verifier.
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/presentation-submit:
    post:
      tags:
      - interaction
      summary: Submit presentation
      description: Submits a presentation to a verifier.
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/interaction/v1/propose-proof:
    post:
      tags:
      - interaction
      summary: Propose a proof
      description: |
        For digital wallets, creates an engagement QR code which can be scanned by a
        mobile verifier to establish a Bluetooth Low Energy connection. See the [SDK](/sdk/propose_proof).
      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
                - url
                properties:
                  interactionId:
                    type: string
                    format: uuid
                  proofId:
                    $ref: '#/components/schemas/ProofId'
                  url:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                    - 'null'
                    items:
                      type: string
                  assertionMethod:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  authentication:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  capabilityDelegation:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  capabilityInvocation:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  id:
                    $ref: '#/components/schemas/DidValue'
                  keyAgreement:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  service:
                    type:
                    - array
                    - 'null'
                    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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}/presentation-definition:
    get:
      tags:
      - proof_management
      summary: Retrieve presentation definition
      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.
      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'
                  requestGroups:
                    type: array
                    items:
                      $ref: '#/components/schemas/PresentationDefinitionRequestGroupResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}:
    get:
      tags:
      - proof_management
      summary: Retrieve a proof request
      description: Returns detailed information on 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
                - issuanceDate
                - exchange
                - transport
                - state
                - role
                - proofInputs
                properties:
                  claimsRemovedAt:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  completedDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  exchange:
                    type: string
                  holderDid:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    type: string
                    format: uuid
                  issuanceDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  organisationId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  proofInputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProofInputRestDTO'
                  redirectUri:
                    type:
                    - string
                    - 'null'
                  requestedDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  retainUntilDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  role:
                    $ref: '#/components/schemas/ProofRoleRestEnum'
                  schema:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
                  state:
                    $ref: '#/components/schemas/ProofStateRestEnum'
                  transport:
                    type: string
                  verifierDid:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/DidListItemResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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
          - verifierDid
          - 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: Specify the organization from which to return proof requests.
        required: true
        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: proofStates[]
        in: query
        description: Return proof requests according to their current state in the system.
        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
      - name: proofRoles[]
        in: query
        description: Return proof requests according to their current role in 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: ids[]
        in: query
        description: Specify proof requests to be returned by their UUID.
        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
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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), the DID to be used
        for identification as a verifier, and which verification protocol to use.

        The `exchange` 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 `exchange`, 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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-request/v1/{id}/share:
    post:
      tags:
      - proof_management
      summary: Request a proof
      description: |
        Creates a share endpoint 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:
                  url:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}:
    get:
      tags:
      - credential_management
      summary: Retrieve a credential
      description: Returns detailed information on a credential.
      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
                - issuanceDate
                - state
                - lastModified
                - schema
                - claims
                - role
                - exchange
                properties:
                  claims:
                    type: array
                    items:
                      $ref: '#/components/schemas/CredentialDetailClaimResponseRestDTO'
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  exchange:
                    type: string
                  holderDid:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    type: string
                    format: uuid
                  issuanceDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  issuerDid:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  lvvcIssuanceDate:
                    type: string
                    description: When the current LVVC was issued.
                    example: 2023-06-09T14:19:57.000Z
                  mdocMsoValidity:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/MdocMsoValidityResponseRestDTO'
                  redirectUri:
                    type:
                    - string
                    - 'null'
                  revocationDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  role:
                    $ref: '#/components/schemas/CredentialRoleRestEnum'
                    description: The role the system has in relation to the credential.
                  schema:
                    $ref: '#/components/schemas/CredentialDetailSchemaResponseRestDTO'
                  state:
                    $ref: '#/components/schemas/CredentialStateRestEnum'
                  suspendEndDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. If revocation
        method is `NONE`, the credential 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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1:
    get:
      tags:
      - credential_management
      summary: List credentials
      description: Returns a list of credentials within an organization. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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
          - issuerDid
          - 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: Specify the organization from which to return credentials.
        required: true
        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: role
        in: query
        description: |-
          Filter credentials by whether they were issued by the system,
          verified by the system or are held by the system as with a wallet.
        required: false
        schema:
          $ref: '#/components/schemas/CredentialRoleRestEnum'
      - 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: Specify credentials to be returned by their UUID.
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: status[]
        in: query
        description: Return only credentials with the specified credential state.
        required: false
        schema:
          type: array
          items:
            type: string
            description: The state represenation of the credential in the system.
            enum:
            - CREATED
            - PENDING
            - OFFERED
            - ACCEPTED
            - SUSPENDED
            - REJECTED
            - REVOKED
            - ERROR
      - 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
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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), the DID
        to be used for identification, an issuance protocol, and
        make claims about the subject.

        The `exchange` 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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/credential/v1/{id}/share:
    post:
      tags:
      - credential_management
      summary: Issue a credential
      description: Creates a share endpoint 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:
                  url:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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: 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
                      - 'null'
                      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
      - 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
      - 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
            - CREDENTIAL
            - CREDENTIAL_SCHEMA
            - PROOF
            - PROOF_SCHEMA
            - ORGANISATION
            - BACKUP
            - TRUST_ANCHOR
            - TRUST_ENTITY
      - name: entityId
        in: query
        description: Return only events associated with the provided entity UUID.
        required: false
        schema:
          $ref: '#/components/schemas/EntityId'
      - name: action
        in: query
        description: Return only events of the specified action(s).
        required: false
        schema:
          $ref: '#/components/schemas/HistoryAction'
      - name: createdDateFrom
        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
      - name: createdDateTo
        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
      - name: didId
        in: query
        description: Return only events associated with the provided DID UUID.
        required: false
        schema:
          $ref: '#/components/schemas/DidId'
      - 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: searchText
        in: query
        description: Search for a string.
        required: false
        schema:
          type: string
      - name: searchType
        in: query
        description: |-
          Changes where `searchText` is searched. If no value is provided, events
          that have any field matching `searchText` will be returned.
        required: false
        schema:
          $ref: '#/components/schemas/HistorySearchEnumRest'
      - name: organisationId
        in: query
        description: Specify the organizaton from which to return history events.
        required: true
        schema:
          $ref: '#/components/schemas/OrganisationId'
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                - organisationId
                properties:
                  action:
                    $ref: '#/components/schemas/HistoryAction'
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  entityId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  entityType:
                    $ref: '#/components/schemas/HistoryEntityType'
                  id:
                    $ref: '#/components/schemas/HistoryId'
                  metadata:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/HistoryMetadataRestEnum'
                  name:
                    type: string
                  organisationId:
                    $ref: '#/components/schemas/OrganisationId'
                  target:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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: Specify the organization from which to return proof schemas.
        required: true
        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: Specify proof schemas to be returned by their UUID.
        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
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/proof-schema/v1/{id}:
    get:
      tags:
      - proof_schema_management
      summary: Retrieve proof schema
      description: Returns detailed information on 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
                    example: 2023-06-09T14:19:57.000Z
                  expireDuration:
                    type: integer
                    format: int32
                    minimum: 0
                  id:
                    type: string
                    format: uuid
                  importedSourceUrl:
                    type:
                    - string
                    - 'null'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    type: string
                    format: uuid
                  proofInputSchemas:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProofInputSchemaResponseRestDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1/{id}:
    get:
      tags:
      - key
      summary: Retrieve key
      description: Returns detailed information on 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
                properties:
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    type: string
                    format: uuid
                  keyType:
                    type: string
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
                  organisationId:
                    type: string
                    format: uuid
                  publicKey:
                    type: string
                  storageType:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1:
    get:
      tags:
      - key
      summary: List keys
      description: Returns a list of keys created in an organization. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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: Specify the organization from which to retrieve keys.
        required: true
        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: keyType
        in: query
        description: Return only keys of the specified algorithm.
        required: false
        schema:
          type: string
      - name: keyStorage
        in: query
        description: Return only keys stored in the specified storage type.
        required: false
        schema:
          type: string
      - name: ids[]
        in: query
        description: Specify keys to be returned by their UUID.
        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
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/key/v1/{id}/check-certificate:
    post:
      tags:
      - key
      summary: Check certificate
      description: ''
      operationId: check_certificate
      parameters:
      - name: id
        in: path
        description: Key id
        required: true
        schema:
          $ref: '#/components/schemas/KeyId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyCheckCertificateRequestRestDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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). These are used to create mDL DS certificates, enabling mdoc issuance.
        Related guide: [ISO mdoc configuration](/configure/iso-mdoc)
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /ssi/did-web/v1/{id}/did.json:
    get:
      tags:
      - ssi
      summary: Retrieve did:web document
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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
                    - 'null'
                    items:
                      type: string
                  assertionMethod:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  authentication:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  capabilityDelegation:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  capabilityInvocation:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  id:
                    $ref: '#/components/schemas/DidValue'
                  keyAgreement:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  service:
                    type:
                    - array
                    - 'null'
                    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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
  /ssi/revocation/v1/list/{id}:
    get:
      tags:
      - ssi
      summary: Revocation - retrieve list
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      operationId: get_revocation_list_by_id
      parameters:
      - name: id
        in: path
        description: Revocation list id
        required: true
        schema:
          type: string
          format: uuid
      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
        '404':
          description: Revocation list not found
        '500':
          description: Server error
  /ssi/revocation/v1/lvvc/{id}:
    get:
      tags:
      - ssi
      summary: Get LVVC by credential
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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/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/{id}/.well-known/openid-configuration:
    get:
      tags:
      - openid4vci-draft13
      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_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/{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}/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/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/OpenID4VPClientMetadataResponseRestDTO'
        '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 an aspect of the SSI interactions between agents and should **not** be used.
        For information on this endpoint, see directly the [OpenID for Verifiable Credentials
        specifications](https://openid.net/sg/openid4vc/specifications/).
      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/context/v1/{id}:
    get:
      tags:
      - ssi
      summary: Retrieve @context
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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: This endpoint handles an aspect of the SSI interactions between agents and should **not** be used.
      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
                - did
                - state
                properties:
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                  organisationId:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type:
                    - string
                    - 'null'
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                  termsUrl:
                    type:
                    - string
                    - 'null'
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                  website:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - remote-agent: []
    patch:
      tags:
      - ssi
      summary: Update a trust entity
      description: This endpoint handles an aspect of the SSI interactions between agents and should **not** be used.
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - remote-agent: []
  /ssi/trust-entity/v1:
    post:
      tags:
      - ssi
      summary: Create a trust entity
      description: This endpoint handles an aspect of the SSI interactions between agents and should **not** be used.
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - remote-agent: []
  /ssi/schema/v1/{id}:
    get:
      tags:
      - ssi
      summary: Retrieve credential schema service
      description: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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: |
        This endpoint handles low-level mechanisms in interactions between agents.
        Deep understanding of the involved protocols is recommended.
      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
  /api/config/v1:
    get:
      tags:
      - other
      summary: Retrieve configuration
      description: |
        Returns the system configuration.

        While the system configuration is not modifiable via the API, it
        is partially exposed to the API and is important for understanding
        which parts of the solution are available, how to invoke each
        component and for retrieving capabilities, reports that reflect
        properties of instances.

        The pattern of referencing configuration instances, rather than
        specifying types directly, is used throughout the API. Always refer
        to your system configuration to determine 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
                - issuanceProtocol
                - verificationProtocol
                - transport
                - revocation
                - did
                - datatype
                - keyAlgorithm
                - keyStorage
                - trustManagement
                - cacheEntities
                properties:
                  cacheEntities:
                    type: object
                    description: Entities held in temporary storage.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  datatype:
                    type: object
                    description: Datatypes for claim validation.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  did:
                    type: object
                    description: DID methods used for identifying agents.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  format:
                    type: object
                    description: Credential formats for issuing, holding and verifying.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  issuanceProtocol:
                    type: object
                    description: Protocols for the issuance of credentials.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  keyAlgorithm:
                    type: object
                    description: Key algorithms used for signatures.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  keyStorage:
                    type: object
                    description: How keys are stored.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  revocation:
                    type: object
                    description: Revocation methods for credential status.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  transport:
                    type: object
                    description: Transport protocols over which to communicate.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  trustManagement:
                    type: object
                    description: Trust management solutions.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                  verificationProtocol:
                    type: object
                    description: Protocols for the verification of credentials.
                    additionalProperties: {}
                    propertyNames:
                      type: string
                example:
                  cacheEntities: {}
                  datatype: {}
                  did: {}
                  format: {}
                  issuanceProtocol: {}
                  keyAlgorithm: {}
                  keyStorage: {}
                  revocation: {}
                  transport: {}
                  trustManagement: {}
                  verificationProtocol: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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. See the [guidelines](/api/general_guidelines) for handling list endpoints.
      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
      - 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
      - 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
        required: false
        schema:
          type: string
      - name: role
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/TrustEntityRoleRest'
      - name: trustAnchorId
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/TrustAnchorId'
      - name: didId
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DidId'
      - name: exact[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
      - name: organisationId
        in: query
        required: false
        schema:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OrganisationId'
      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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                - did
                - state
                properties:
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                  organisationId:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type:
                    - string
                    - 'null'
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                  termsUrl:
                    type:
                    - string
                    - 'null'
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                  website:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
                - did
                - state
                properties:
                  createdDate:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  did:
                    $ref: '#/components/schemas/DidListItemResponseRestDTO'
                  id:
                    $ref: '#/components/schemas/TrustEntityId'
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  logo:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                  organisationId:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/OrganisationId'
                  privacyUrl:
                    type:
                    - string
                    - 'null'
                  role:
                    $ref: '#/components/schemas/TrustEntityRoleRest'
                  state:
                    $ref: '#/components/schemas/TrustEntityStateRest'
                  termsUrl:
                    type:
                    - string
                    - 'null'
                  trustAnchor:
                    $ref: '#/components/schemas/GetTrustAnchorDetailResponseRestDTO'
                  website:
                    type:
                    - string
                    - 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /api/organisation/v1/{id}:
    get:
      tags:
      - organisation_management
      summary: Retrieve organization
      description: Returns information on 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
                    example: 2023-06-09T14:19:57.000Z
                  id:
                    type: string
                    format: uuid
                  lastModified:
                    type: string
                    example: 2023-06-09T14:19:57.000Z
                  name:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
    put:
      tags:
      - organisation_management
      summary: Update or insert organization
      description: |
        Updates the name of an organization if it exists, otherwise creates
        a new organization using the provided UUID and name.
      operationId: put_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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                  - id
                  - name
                  - createdDate
                  - lastModified
                  properties:
                    createdDate:
                      type: string
                      example: 2023-06-09T14:19:57.000Z
                    id:
                      type: string
                      format: uuid
                    lastModified:
                      type: string
                      example: 2023-06-09T14:19:57.000Z
                    name:
                      type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  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:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                properties:
                  cause:
                    oneOf:
                    - type: 'null'
                    - $ref: '#/components/schemas/Cause'
                  code:
                    $ref: '#/components/schemas/ErrorCode'
                  message:
                    type: string
      security:
      - bearer: []
  /build-info:
    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:
    Boolean:
      type: string
      enum:
      - 'true'
      - 'false'
    CacheTypeRestEnum:
      type: string
      enum:
      - DID_DOCUMENT
      - JSON_LD_CONTEXT
      - STATUS_LIST_CREDENTIAL
      - VCT_METADATA
      - JSON_SCHEMA
      - TRUST_LIST
    Cause:
      type: object
      required:
      - message
      properties:
        message:
          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.
    ClientIdSchemeRestEnum:
      type: string
      enum:
      - redirect_uri
      - verifier_attestation
      - did
      - x509_san_dns
    ConfigRestDTO:
      type: object
      required:
      - format
      - issuanceProtocol
      - verificationProtocol
      - transport
      - revocation
      - did
      - datatype
      - keyAlgorithm
      - keyStorage
      - trustManagement
      - cacheEntities
      properties:
        cacheEntities:
          type: object
          description: Entities held in temporary storage.
          additionalProperties: {}
          propertyNames:
            type: string
        datatype:
          type: object
          description: Datatypes for claim validation.
          additionalProperties: {}
          propertyNames:
            type: string
        did:
          type: object
          description: DID methods used for identifying agents.
          additionalProperties: {}
          propertyNames:
            type: string
        format:
          type: object
          description: Credential formats for issuing, holding and verifying.
          additionalProperties: {}
          propertyNames:
            type: string
        issuanceProtocol:
          type: object
          description: Protocols for the issuance of credentials.
          additionalProperties: {}
          propertyNames:
            type: string
        keyAlgorithm:
          type: object
          description: Key algorithms used for signatures.
          additionalProperties: {}
          propertyNames:
            type: string
        keyStorage:
          type: object
          description: How keys are stored.
          additionalProperties: {}
          propertyNames:
            type: string
        revocation:
          type: object
          description: Revocation methods for credential status.
          additionalProperties: {}
          propertyNames:
            type: string
        transport:
          type: object
          description: Transport protocols over which to communicate.
          additionalProperties: {}
          propertyNames:
            type: string
        trustManagement:
          type: object
          description: Trust management solutions.
          additionalProperties: {}
          propertyNames:
            type: string
        verificationProtocol:
          type: object
          description: Protocols for the verification of credentials.
          additionalProperties: {}
          propertyNames:
            type: string
      example:
        cacheEntities: {}
        datatype: {}
        did: {}
        format: {}
        issuanceProtocol: {}
        keyAlgorithm: {}
        keyStorage: {}
        revocation: {}
        transport: {}
        trustManagement: {}
        verificationProtocol: {}
    CreateCredentialRequestRestDTO:
      type: object
      required:
      - credentialSchemaId
      - issuerDid
      - exchange
      - 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: ID of the credential schema used to issue the credential.
        exchange:
          type: string
          description: |-
            Exchange protocol to use for issuing the credential to a wallet. Check
            the `exchange` object of the configuration for supported options and
            reference the configuration instance.
          example: OPENID4VCI_DRAFT13
        issuerDid:
          type: string
          format: uuid
          description: ID of the issuer DID used to issue the credential.
        issuerKey:
          oneOf:
          - type: 'null'
          - $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.
        redirectUri:
          type:
          - string
          - 'null'
          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.
    CreateCredentialSchemaRequestRestDTO:
      type: object
      required:
      - name
      - format
      - revocationMethod
      - organisationId
      - claims
      properties:
        allowSuspension:
          type:
          - boolean
          - 'null'
          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
          description: |-
            If `true`, credentials issued using this schema will use the specified `schema_id` directly.
            If `false`, a Procivis credential schema will be created for the given `schema_id`.
        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.
          example: SD_JWT_VC
        layoutProperties:
          oneOf:
          - type: 'null'
          - $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:
          type: string
          format: uuid
          description: Specify the organization.
        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.
          example: TOKENSTATUSLIST
        schemaId:
          type:
          - string
          - 'null'
          description: |-
            For credential formats requiring a schema ID, such as ISO mdoc, IETF
            SD-JWT VC or VC Barcodes, pass it here.
            For other formats, pass no value here.
          example: org.iso.18013.5.1.mDL
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
            description: |-
              Indication of what type of key storage the wallet should use.
              Note that credentials with different `walletStorageType` cannot be
              combined into the same proof schema.
    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'
    CreateDidRequestRestDTO:
      type: object
      required:
      - name
      - organisationId
      - 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: Specify the organization.
        params:
          type:
          - object
          - 'null'
          description: The parameters passed into the DID method.
    CreateOrganisationRequestRestDTO:
      type: object
      properties:
        id:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OrganisationId'
        name:
          type:
          - string
          - 'null'
    CreateOrganisationResponseRestDTO:
      type: object
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/OrganisationId'
    CreateProofRequestRestDTO:
      type: object
      description: Exchange protocol being used.
      required:
      - proofSchemaId
      - verifierDid
      - exchange
      properties:
        exchange:
          type: string
          description: |-
            Specify the exchange protocol to use for credential exchange. Check
            the `exchange` object of the configuration for supported options and
            reference the configuration instance.
          example: OPENID4VP_DRAFT20
        isoMdlEngagement:
          type: string
          description: |-
            Not for use via the API; for ISO mDL verification over BLE using the
            SDK.
        proofSchemaId:
          $ref: '#/components/schemas/ProofSchemaId'
          description: ID of the proof schema used to request the proof.
        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
          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.
          example:
          - HTTP
        verifierDid:
          $ref: '#/components/schemas/DidId'
        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.
    CreateProofSchemaRequestRestDTO:
      type: object
      required:
      - name
      - organisationId
      - proofInputSchemas
      properties:
        expireDuration:
          type:
          - integer
          - 'null'
          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:
          type: string
          format: uuid
          description: Specify the organization.
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputSchemaRequestRestDTO'
          minItems: 1
    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.
    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 has
            to 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
    CreateTrustEntityRequestRestDTO:
      type: object
      required:
      - name
      - role
      - trustAnchorId
      - didId
      properties:
        didId:
          $ref: '#/components/schemas/DidId'
          description: Specify DID ID.
        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.
        trustAnchorId:
          $ref: '#/components/schemas/TrustAnchorId'
          description: Specify trust anchor ID.
        website:
          type:
          - string
          - 'null'
          description: Specify the entity's domain name.
    CredentialClaimSchemaRequestRestDTO:
      type: object
      required:
      - key
      - datatype
      - required
      properties:
        array:
          type:
          - boolean
          - 'null'
          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. The `DATE` datatype
            only accepts full date-time. See the
            [configuration](/configure) guide for
            the full reference of datatypes.
        key:
          type: string
        required:
          type: boolean
    CredentialClaimSchemaResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - key
      - datatype
      - required
      - array
      properties:
        array:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        datatype:
          type: string
        id:
          type: string
          format: uuid
        key:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        required:
          type: boolean
    CredentialDetailClaimResponseRestDTO:
      type: object
      required:
      - path
      - schema
      - value
      properties:
        path:
          type: string
        schema:
          $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        value:
          $ref: '#/components/schemas/CredentialDetailClaimValueResponseRestDTO'
    CredentialDetailClaimValueResponseRestDTO:
      oneOf:
      - type: boolean
      - type: number
        format: double
      - type: integer
        format: int64
      - type: string
      - type: array
        items:
          $ref: '#/components/schemas/CredentialDetailClaimResponseRestDTO'
    CredentialDetailSchemaResponseRestDTO:
      type: object
      description: Credential schema being used to issue the credential.
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - revocationMethod
      - organisationId
      - schemaId
      - schemaType
      - allowSuspension
      properties:
        allowSuspension:
          type: boolean
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          example: 2023-06-09T14:19:57.000Z
        format:
          type: string
        id:
          type: string
          format: uuid
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          type: string
          format: uuid
        revocationMethod:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          $ref: '#/components/schemas/CredentialSchemaType'
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
            description: Indication of what type of key storage the wallet should use.
    CredentialId:
      type: string
      format: uuid
    CredentialListIncludeEntityTypeRestEnum:
      type: string
      enum:
      - layoutProperties
    CredentialListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - issuanceDate
      - state
      - lastModified
      - schema
      - role
      - exchange
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        exchange:
          type: string
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        issuerDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        revocationDate:
          type: string
          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
          example: 2023-06-09T14:19:57.000Z
    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.
    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
          - 'null'
    CredentialRevocationCheckResponseRestDTO:
      type: object
      required:
      - credentialId
      - status
      - success
      properties:
        credentialId:
          type: string
          format: uuid
        reason:
          type:
          - string
          - 'null'
          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
          - 'null'
        image:
          type:
          - string
          - 'null'
    CredentialSchemaCodePropertiesRestDTO:
      type: object
      required:
      - attribute
      - type
      properties:
        attribute:
          type: string
        type:
          $ref: '#/components/schemas/CredentialSchemaCodeTypeRestEnum'
    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:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaBackgroundPropertiesRestDTO'
        code:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaCodePropertiesRestDTO'
        logo:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLogoPropertiesRestDTO'
        pictureAttribute:
          type:
          - string
          - 'null'
        primaryAttribute:
          type:
          - string
          - 'null'
        secondaryAttribute:
          type:
          - string
          - 'null'
    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
      - revocationMethod
      - importedSourceUrl
      - schemaId
      - schemaType
      - allowSuspension
      properties:
        allowSuspension:
          type: boolean
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          example: 2023-06-09T14:19:57.000Z
        externalSchema:
          type: boolean
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        revocationMethod:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          $ref: '#/components/schemas/CredentialSchemaType'
          description: Part of the `credentialSchema` property.
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
            description: Indication of what type of key storage the wallet should use.
    CredentialSchemaLogoPropertiesRestDTO:
      type: object
      properties:
        backgroundColor:
          type:
          - string
          - 'null'
        fontColor:
          type:
          - string
          - 'null'
        image:
          type:
          - string
          - 'null'
    CredentialSchemaResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - revocationMethod
      - organisationId
      - claims
      - schemaId
      - schemaType
      - importedSourceUrl
      - allowSuspension
      - externalSchema
      properties:
        allowSuspension:
          type: boolean
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialClaimSchemaResponseRestDTO'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        externalSchema:
          type: boolean
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          type: string
          format: uuid
        revocationMethod:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          $ref: '#/components/schemas/CredentialSchemaType'
          description: Part of the `credentialSchema` property.
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    CredentialSchemaShareResponseRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
    CredentialSchemaType:
      oneOf:
      - type: string
        enum:
        - ProcivisOneSchema2024
        - FallbackSchema2024
        - SdJwtVc
        - mdoc
      - type: string
    CredentialSchemasExactColumn:
      type: string
      enum:
      - name
      - schemaId
      - format
    CredentialStateRestEnum:
      type: string
      description: The state represenation of the credential in the system.
      enum:
      - CREATED
      - PENDING
      - OFFERED
      - ACCEPTED
      - SUSPENDED
      - REJECTED
      - REVOKED
      - ERROR
    DidDocumentRestDTO:
      type: object
      required:
      - '@context'
      - id
      - verificationMethod
      properties:
        '@context': {}
        alsoKnownAs:
          type:
          - array
          - 'null'
          items:
            type: string
        assertionMethod:
          type:
          - array
          - 'null'
          items:
            type: string
        authentication:
          type:
          - array
          - 'null'
          items:
            type: string
        capabilityDelegation:
          type:
          - array
          - 'null'
          items:
            type: string
        capabilityInvocation:
          type:
          - array
          - 'null'
          items:
            type: string
        id:
          $ref: '#/components/schemas/DidValue'
        keyAgreement:
          type:
          - array
          - 'null'
          items:
            type: string
        service:
          type:
          - array
          - 'null'
          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
          example: 2023-06-09T14:19:57.000Z
        deactivated:
          type: boolean
        did:
          $ref: '#/components/schemas/DidValue'
        id:
          $ref: '#/components/schemas/DidId'
        lastModified:
          type: string
          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
          - 'null'
    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
          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
          example: 2023-06-09T14:19:57.000Z
        method:
          type: string
        name:
          type: string
        organisationId:
          type:
          - string
          - 'null'
          format: uuid
        type:
          $ref: '#/components/schemas/DidType'
    DidServiceEndointRestDTO:
      type: object
      required:
      - id
      - type
      - serviceEndpoint
      properties:
        id:
          type: string
        serviceEndpoint: {}
        type:
          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/PublicKeyJwkRestDTO'
        type:
          type: string
    EntityId:
      type: string
      format: uuid
    EntityResponseRestDTO:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
    EntityShareResponseRestDTO:
      type: object
      required:
      - url
      properties:
        url:
          type: string
    ErrorCode:
      type: string
      enum:
      - BR_0000
      - BR_0001
      - BR_0002
      - BR_0003
      - BR_0004
      - BR_0005
      - BR_0006
      - BR_0007
      - BR_0008
      - BR_0009
      - BR_0010
      - BR_0011
      - BR_0012
      - BR_0013
      - BR_0014
      - BR_0015
      - BR_0017
      - BR_0018
      - BR_0019
      - BR_0020
      - BR_0022
      - BR_0023
      - BR_0024
      - BR_0025
      - BR_0026
      - BR_0027
      - BR_0028
      - BR_0029
      - BR_0030
      - BR_0031
      - BR_0032
      - BR_0033
      - BR_0034
      - BR_0035
      - BR_0036
      - BR_0037
      - BR_0038
      - BR_0039
      - BR_0040
      - BR_0041
      - BR_0042
      - BR_0043
      - BR_0044
      - BR_0045
      - BR_0046
      - BR_0047
      - BR_0048
      - BR_0049
      - BR_0050
      - BR_0051
      - BR_0052
      - BR_0053
      - BR_0054
      - BR_0055
      - BR_0056
      - BR_0057
      - BR_0058
      - BR_0059
      - BR_0060
      - BR_0061
      - BR_0062
      - BR_0063
      - BR_0064
      - BR_0065
      - BR_0066
      - BR_0084
      - BR_0085
      - BR_0086
      - BR_0087
      - BR_0088
      - BR_0089
      - BR_0090
      - BR_0091
      - BR_0092
      - BR_0094
      - BR_0095
      - BR_0096
      - BR_0097
      - BR_0098
      - BR_0099
      - BR_0100
      - BR_0101
      - BR_0103
      - BR_0104
      - BR_0105
      - BR_0106
      - BR_0107
      - BR_0108
      - BR_0109
      - BR_0110
      - BR_0111
      - BR_0112
      - BR_0113
      - BR_0114
      - BR_0115
      - BR_0117
      - BR_0118
      - BR_0120
      - BR_0121
      - BR_0122
      - BR_0123
      - BR_0125
      - BR_0126
      - BR_0127
      - BR_0128
      - BR_0130
      - BR_0131
      - BR_0132
      - BR_0133
      - BR_0135
      - BR_0137
      - BR_0138
      - BR_0139
      - BR_0140
      - BR_0142
      - BR_0144
      - BR_0145
      - BR_0146
      - BR_0147
      - BR_0156
      - BR_0157
      - BR_0158
      - BR_0159
      - BR_0160
      - BR_0162
      - BR_0163
      - BR_0164
      - BR_0166
      - BR_0169
      - BR_0170
      - BR_0172
      - BR_0173
      - BR_0177
      - BR_0178
      - BR_0179
      - BR_0180
      - BR_0181
      - BR_0183
      - BR_0184
      - BR_0185
      - BR_0186
      - BR_0187
      - BR_0188
      - BR_0189
      - BR_0191
      - BR_0192
      - BR_0193
      - BR_0194
      - BR_0195
      - BR_0196
      - BR_0197
      - BR_0198
      - BR_0199
      - BR_0201
      - BR_0204
      example: BR_0000
    ErrorResponseRestDTO:
      type: object
      required:
      - code
      - message
      properties:
        cause:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Cause'
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
    ExactColumn:
      type: string
      enum:
      - name
    ExactDidFilterColumnRestEnum:
      type: string
      enum:
      - name
      - did
    ExactTrustAnchorFilterColumnRestEnum:
      type: string
      enum:
      - name
      - type
    ExtendedSubjectClaimsRestDTO:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/ProcivisSubjectClaimValueRestDTO'
    ExtendedSubjectRestDTO:
      type: object
      properties:
        keys:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ExtendedSubjectClaimsRestDTO'
        wallet_storage_type:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    GetCredentialResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - issuanceDate
      - state
      - lastModified
      - schema
      - claims
      - role
      - exchange
      properties:
        claims:
          type: array
          items:
            $ref: '#/components/schemas/CredentialDetailClaimResponseRestDTO'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        exchange:
          type: string
        holderDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        issuerDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        lvvcIssuanceDate:
          type: string
          description: When the current LVVC was issued.
          example: 2023-06-09T14:19:57.000Z
        mdocMsoValidity:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MdocMsoValidityResponseRestDTO'
        redirectUri:
          type:
          - string
          - 'null'
        revocationDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/CredentialRoleRestEnum'
          description: The role the system has in relation to the credential.
        schema:
          $ref: '#/components/schemas/CredentialDetailSchemaResponseRestDTO'
        state:
          $ref: '#/components/schemas/CredentialStateRestEnum'
        suspendEndDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
    GetOrganisationDetailsResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        id:
          type: string
          format: uuid
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
    GetProofSchemaListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - expireDuration
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        deletedAt:
          type: string
          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
          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
          example: 2023-06-09T14:19:57.000Z
        expireDuration:
          type: integer
          format: int32
          minimum: 0
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type:
          - string
          - 'null'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          type: string
          format: uuid
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputSchemaResponseRestDTO'
    GetTrustAnchorDetailResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - type
      - isPublisher
      - publisherReference
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        id:
          $ref: '#/components/schemas/TrustAnchorId'
        isPublisher:
          type: boolean
        lastModified:
          type: string
          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
          example: 2023-06-09T14:19:57.000Z
        entities:
          type: array
          items:
            $ref: '#/components/schemas/GetTrustEntityResponseRestDTO'
        id:
          $ref: '#/components/schemas/TrustAnchorId'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
    GetTrustEntityResponseRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - role
      - state
      - did
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        did:
          $ref: '#/components/schemas/DidValue'
        id:
          $ref: '#/components/schemas/TrustEntityId'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        logo:
          type:
          - string
          - 'null'
        name:
          type: string
        privacyUrl:
          type:
          - string
          - 'null'
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
        termsUrl:
          type:
          - string
          - 'null'
        website:
          type:
          - string
          - 'null'
    HandleInvitationRequestRestDTO:
      type: object
      required:
      - url
      - organisationId
      properties:
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        transport:
          type:
          - array
          - 'null'
          items:
            type: string
        url:
          type: string
          format: uri
          description: Typically encoded as a QR code or deep link by the issuer or verifier.
    HandleInvitationResponseRestDTO:
      type: object
      required:
      - interactionId
      properties:
        credentialIds:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CredentialId'
        interactionId:
          type: string
          format: uuid
        proofId:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ProofId'
        txCode:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OpenID4VCITxCodeRestDTO'
            description: |-
              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
    HistoryEntityType:
      type: string
      enum:
      - KEY
      - DID
      - CREDENTIAL
      - CREDENTIAL_SCHEMA
      - PROOF
      - PROOF_SCHEMA
      - ORGANISATION
      - BACKUP
      - TRUST_ANCHOR
      - TRUST_ENTITY
    HistoryErrorMetadataRestDTO:
      type: object
      required:
      - error_code
      - message
      properties:
        error_code:
          $ref: '#/components/schemas/ErrorCode'
        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'
    HistoryResponseDetailRestDTO:
      type: object
      required:
      - id
      - createdDate
      - action
      - name
      - entityType
      - organisationId
      properties:
        action:
          $ref: '#/components/schemas/HistoryAction'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        entityId:
          type:
          - string
          - 'null'
          format: uuid
        entityType:
          $ref: '#/components/schemas/HistoryEntityType'
        id:
          $ref: '#/components/schemas/HistoryId'
        metadata:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/HistoryMetadataRestEnum'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        target:
          type:
          - string
          - 'null'
    HistoryResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - action
      - name
      - entityType
      - organisationId
      properties:
        action:
          $ref: '#/components/schemas/HistoryAction'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        entityId:
          type:
          - string
          - 'null'
          format: uuid
        entityType:
          $ref: '#/components/schemas/HistoryEntityType'
        id:
          $ref: '#/components/schemas/HistoryId'
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        target:
          type:
          - string
          - 'null'
    HistorySearchEnumRest:
      type: string
      enum:
      - claimName
      - claimValue
      - credentialSchemaName
      - issuerDid
      - issuerName
      - verifierDid
      - verifierName
      - proofSchemaName
    ImportCredentialSchemaClaimSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - key
      - datatype
      - required
      properties:
        array:
          type:
          - boolean
          - 'null'
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ImportCredentialSchemaClaimSchemaRestDTO'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        datatype:
          type: string
        id:
          type: string
          format: uuid
        key:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        required:
          type: boolean
    ImportCredentialSchemaLayoutPropertiesRestDTO:
      type: object
      properties:
        background:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaBackgroundPropertiesRestDTO'
        code:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaCodePropertiesRestDTO'
        logo:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLogoPropertiesRestDTO'
        pictureAttribute:
          type:
          - string
          - 'null'
        primaryAttribute:
          type:
          - string
          - 'null'
        secondaryAttribute:
          type:
          - string
          - 'null'
    ImportCredentialSchemaRequestRestDTO:
      type: object
      required:
      - organisationId
      - schema
      properties:
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        schema:
          $ref: '#/components/schemas/ImportCredentialSchemaRequestSchemaRestDTO'
    ImportCredentialSchemaRequestSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - revocationMethod
      - organisationId
      - claims
      - schemaId
      - importedSourceUrl
      - schemaType
      - externalSchema
      properties:
        allowSuspension:
          type:
          - boolean
          - 'null'
        claims:
          type: array
          items:
            $ref: '#/components/schemas/ImportCredentialSchemaClaimSchemaRestDTO'
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        externalSchema:
          type: boolean
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ImportCredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        organisationId:
          type: string
          format: uuid
        revocationMethod:
          type: string
        schemaId:
          type: string
        schemaType:
          $ref: '#/components/schemas/CredentialSchemaType'
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    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
    ImportProofSchemaCredentialSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - format
      - revocationMethod
      - importedSourceUrl
      - schemaId
      - schemaType
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        format:
          type: string
        id:
          type: string
          format: uuid
        importedSourceUrl:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        layoutProperties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        layoutType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutType'
        name:
          type: string
        revocationMethod:
          type: string
        schemaId:
          type: string
        schemaType:
          $ref: '#/components/schemas/CredentialSchemaType'
        walletStorageType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    ImportProofSchemaInputSchemaRestDTO:
      type: object
      required:
      - claimSchemas
      - credentialSchema
      properties:
        claimSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ImportProofSchemaClaimSchemaRestDTO'
        credentialSchema:
          $ref: '#/components/schemas/ImportProofSchemaCredentialSchemaRestDTO'
        validityConstraint:
          type:
          - integer
          - 'null'
          format: int64
    ImportProofSchemaRequestRestDTO:
      type: object
      required:
      - organisationId
      - schema
      properties:
        organisationId:
          type: string
          format: uuid
        schema:
          $ref: '#/components/schemas/ImportProofSchemaRestDTO'
    ImportProofSchemaRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - name
      - importedSourceUrl
      - organisationId
      - expireDuration
      - proofInputSchemas
      properties:
        createdDate:
          type: string
          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
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
        proofInputSchemas:
          type: array
          items:
            $ref: '#/components/schemas/ImportProofSchemaInputSchemaRestDTO'
    InternalPresentationSubmissionMappingRestDTO:
      type: object
      required:
      - presentation_submission
      properties:
        presentation_submission:
          $ref: '#/components/schemas/PresentationSubmissionMappingRestDTO'
    IssuanceAcceptRequestRestDTO:
      type: object
      required:
      - interactionId
      - didId
      properties:
        didId:
          $ref: '#/components/schemas/DidId'
        interactionId:
          type: string
          format: uuid
          description: The identifier associated with the particular issuance.
        keyId:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/KeyId'
            description: |-
              If the associated DID 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
          - 'null'
    IssuanceRejectRequestRestDTO:
      type: object
      required:
      - interactionId
      properties:
        interactionId:
          type: string
          format: uuid
    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':
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/JsonLDContextRestDTO'
        '@id':
          type: string
        '@type':
          type:
          - string
          - 'null'
    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
    KeyCheckCertificateRequestRestDTO:
      type: object
      required:
      - certificate
      properties:
        certificate:
          type: string
    KeyGenerateCSRRequestProfileRest:
      type: string
      enum:
      - MDL
    KeyGenerateCSRRequestRestDTO:
      type: object
      required:
      - profile
      - subject
      properties:
        profile:
          $ref: '#/components/schemas/KeyGenerateCSRRequestProfileRest'
        subject:
          $ref: '#/components/schemas/KeyGenerateCSRRequestSubjectRestDTO'
    KeyGenerateCSRRequestSubjectRestDTO:
      type: object
      required:
      - countryName
      - commonName
      properties:
        commonName:
          type: string
          description: Two-letter country code.
        countryName:
          type: string
          description: Common name to include in the CSR, typically the domain name of the organization.
        localityName:
          type:
          - string
          - 'null'
        organisationName:
          type:
          - string
          - 'null'
        serialNumber:
          type:
          - string
          - 'null'
        stateOrProvinceName:
          type:
          - string
          - 'null'
    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
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        id:
          type: string
          format: uuid
        keyType:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        publicKey:
          type: string
        storageType:
          type: string
    KeyRequestRestDTO:
      type: object
      required:
      - organisationId
      - keyType
      - name
      - storageType
      properties:
        keyParams:
          type:
          - object
          - 'null'
          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.
          example: EDDSA
        name:
          type: string
          description: Must be unique within the organization.
        organisationId:
          type: string
          format: uuid
          description: Specify the organization.
        storageParams:
          type:
          - object
          - 'null'
          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.
          example: INTERNAL
    KeyResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - organisationId
      - name
      - publicKey
      - keyType
      - storageType
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        id:
          type: string
          format: uuid
        keyType:
          type: string
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        name:
          type: string
        organisationId:
          type: string
          format: uuid
        publicKey:
          type: string
        storageType:
          type: string
    KeyRoleRestEnum:
      type: string
      enum:
      - AUTHENTICATION
      - ASSERTION_METHOD
      - KEY_AGREEMENT
      - CAPABILITY_INVOCATION
      - CAPABILITY_DELEGATION
    LVVCIssuerResponseRestDTO:
      type: object
      required:
      - credential
      properties:
        credential:
          type: string
    LdpVcAlgsRestDTO:
      type: object
      properties:
        proof_type:
          type: array
          items:
            type: string
    ListTrustAnchorsResponseItemRestDTO:
      type: object
      required:
      - id
      - name
      - createdDate
      - lastModified
      - type
      - isPublisher
      - publisherReference
      - entities
      properties:
        createdDate:
          type: string
          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
          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
      - did
      properties:
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        did:
          $ref: '#/components/schemas/DidListItemResponseRestDTO'
        id:
          $ref: '#/components/schemas/TrustEntityId'
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        logo:
          type:
          - string
          - 'null'
        name:
          type: string
        privacyUrl:
          type:
          - string
          - 'null'
        role:
          $ref: '#/components/schemas/TrustEntityRoleRest'
        state:
          $ref: '#/components/schemas/TrustEntityStateRest'
        termsUrl:
          type:
          - string
          - 'null'
        trustAnchor:
          $ref: '#/components/schemas/GetTrustAnchorResponseRestDTO'
        website:
          type:
          - string
          - 'null'
    MdocMsoValidityResponseRestDTO:
      type: object
      required:
      - expiration
      - nextUpdate
      - lastUpdate
      properties:
        expiration:
          type: string
          example: 2023-06-09T14:19:57.000Z
        lastUpdate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        nextUpdate:
          type: string
          example: 2023-06-09T14:19:57.000Z
    NestedPresentationSubmissionDescriptorRestDTO:
      type: object
      required:
      - format
      - path
      properties:
        format:
          type: string
        path:
          type: string
    NoIncludesSupported:
      type: object
    OID4VPAuthorizationEncryptedResponseAlgorithm:
      type: string
      enum:
      - ECDH-ES
    OID4VPAuthorizationEncryptedResponseContentEncryptionAlgorithm:
      type: string
      enum:
      - A256GCM
      - A128CBC-HS256
    OpenID4VCICredentialDefinitionRequestRestDTO:
      type: object
      required:
      - type
      - credentialSubject
      properties:
        credentialSubject:
          type: object
        type:
          type: array
          items:
            type: string
    OpenID4VCICredentialDefinitionRestDTO:
      type: object
      required:
      - type
      properties:
        credentialSubject:
          type: object
        type:
          type: array
          items:
            type: string
    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:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ExtendedSubjectRestDTO'
        grants:
          $ref: '#/components/schemas/OpenID4VCIGrantsRestDTO'
        issuer_did:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidValue'
    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'
    OpenID4VCICredentialResponseRestDTO:
      type: object
      required:
      - credential
      properties:
        credential:
          type: string
        redirectUri:
          type:
          - string
          - 'null'
    OpenID4VCIDiscoveryResponseRestDTO:
      type: object
      required:
      - issuer
      - authorization_endpoint
      - token_endpoint
      - jwks_uri
      - response_types_supported
      - grant_types_supported
      - subject_types_supported
      - id_token_signing_alg_values_supported
      properties:
        authorization_endpoint:
          type: string
        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
        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_or_missing_proof
      - type: string
        enum:
        - unsupported_credential_format
      - type: string
        enum:
        - unsupported_credential_type
      - type: string
        enum:
        - credential_request_denied
      - type: object
        required:
        - runtime_error
        properties:
          runtime_error:
            type: string
    OpenID4VCIGrantRestDTO:
      type: object
      required:
      - pre-authorized_code
      properties:
        pre-authorized_code:
          type: string
    OpenID4VCIGrantsRestDTO:
      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/OpenID4VCIGrantRestDTO'
    OpenID4VCIIssuerMetadataCredentialSchemaRestDTO:
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/CredentialSchemaType'
    OpenID4VCIIssuerMetadataCredentialSupportedDisplayRestDTO:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    OpenID4VCIIssuerMetadataCredentialSupportedResponseRestDTO:
      type: object
      required:
      - format
      properties:
        claims:
          type: object
        credential_definition:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OpenID4VCICredentialDefinitionRequestRestDTO'
        credential_signing_alg_values_supported:
          type:
          - array
          - 'null'
          items:
            type: string
        cryptographic_binding_methods_supported:
          type:
          - array
          - 'null'
          items:
            type: string
        display:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataCredentialSupportedDisplayRestDTO'
        doctype:
          type:
          - string
          - 'null'
        format:
          type: string
        order:
          type:
          - array
          - 'null'
          items:
            type: string
        proof_types_supported:
          type: object
        vct:
          type:
          - string
          - 'null'
        wallet_storage_type:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WalletStorageTypeRestEnum'
    OpenID4VCIIssuerMetadataDisplayResponseRestDTO:
      type: object
      required:
      - name
      - locale
      properties:
        locale:
          type: string
        name:
          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
          - 'null'
          items:
            $ref: '#/components/schemas/OpenID4VCIIssuerMetadataDisplayResponseRestDTO'
    OpenID4VCIProofRequestRestDTO:
      type: object
      required:
      - proof_type
      - jwt
      properties:
        jwt:
          type: string
        proof_type:
          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
          - 'null'
        refresh_token:
          type:
          - string
          - 'null'
    OpenID4VCITokenResponseRestDTO:
      type: object
      required:
      - access_token
      - token_type
      - expires_in
      properties:
        access_token:
          type: string
          example: secret
        c_nonce:
          type:
          - string
          - 'null'
        expires_in:
          $ref: '#/components/schemas/TimestampRest'
        refresh_token:
          type: string
          example: secret
        refresh_token_expires_in:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/TimestampRest'
        token_type:
          type: string
    OpenID4VCITxCodeRestDTO:
      type: object
      properties:
        description:
          type: string
          description: |-
            Information about the transaction code, to pass to the frontend for
            guiding the wallet holder.
          example: Pin number
          maxLength: 300
        input_mode:
          type: string
          description: Type of code expected.
          default: numeric
          example: numeric
        length:
          type:
          - integer
          - 'null'
          format: int64
          description: |-
            Length of transaction code, to pass to the frontend for guiding the
            wallet holder.
    OpenID4VPAlgsRestDTO:
      type: object
      properties:
        alg:
          type: array
          items:
            type: string
    OpenID4VPClientMetadataJwkRestDTO:
      allOf:
      - $ref: '#/components/schemas/PublicKeyJwkRestDTO'
      - type: object
        required:
        - kid
        properties:
          kid:
            type: string
    OpenID4VPClientMetadataJwksRestDTO:
      type: object
      required:
      - keys
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VPClientMetadataJwkRestDTO'
    OpenID4VPClientMetadataResponseRestDTO:
      type: object
      required:
      - jwks
      - vp_formats
      properties:
        authorization_encrypted_response_alg:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OID4VPAuthorizationEncryptedResponseAlgorithm'
        authorization_encrypted_response_enc:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OID4VPAuthorizationEncryptedResponseContentEncryptionAlgorithm'
        id_token_ecrypted_response_enc:
          type:
          - string
          - 'null'
        id_token_encrypted_response_alg:
          type:
          - string
          - 'null'
        jwks:
          $ref: '#/components/schemas/OpenID4VPClientMetadataJwksRestDTO'
        jwks_uri:
          type:
          - string
          - 'null'
        subject_syntax_types_supported:
          type: array
          items:
            type: string
        vp_formats:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OpenID4VPFormatRestDTO'
          propertyNames:
            type: string
    OpenID4VPDirectPostRequestRestDTO:
      allOf:
      - oneOf:
        - type: 'null'
        - $ref: '#/components/schemas/InternalPresentationSubmissionMappingRestDTO'
      - type: object
        properties:
          response:
            type:
            - string
            - 'null'
          state:
            type:
            - string
            - 'null'
            format: uuid
            example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
          vp_token:
            type:
            - string
            - 'null'
            example: <jwt/sd_jwt token>
    OpenID4VPDirectPostResponseRestDTO:
      type: object
      properties:
        redirect_uri:
          type:
          - string
          - 'null'
    OpenID4VPFormatRestDTO:
      oneOf:
      - $ref: '#/components/schemas/OpenID4VPVcSdJwtAlgsRestDTO'
      - $ref: '#/components/schemas/LdpVcAlgsRestDTO'
      - $ref: '#/components/schemas/OpenID4VPAlgsRestDTO'
      - {}
    OpenID4VPPresentationDefinitionConstraintFieldFilterRestDTO:
      type: object
      required:
      - type
      - const
      properties:
        const:
          type: string
        type:
          type: string
    OpenID4VPPresentationDefinitionConstraintFieldRestDTO:
      type: object
      required:
      - path
      properties:
        filter:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OpenID4VPPresentationDefinitionConstraintFieldFilterRestDTO'
        id:
          type:
          - string
          - 'null'
          format: uuid
        intent_to_retain:
          type:
          - boolean
          - 'null'
        optional:
          type:
          - boolean
          - 'null'
        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
          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/OpenID4VPFormatRestDTO'
          propertyNames:
            type: string
        id:
          type: string
        name:
          type:
          - string
          - 'null'
        purpose:
          type:
          - string
          - 'null'
    OpenID4VPPresentationDefinitionResponseRestDTO:
      type: object
      required:
      - id
      - input_descriptors
      properties:
        id:
          type: string
        input_descriptors:
          type: array
          items:
            $ref: '#/components/schemas/OpenID4VPPresentationDefinitionInputDescriptorRestDTO'
    OpenID4VPVcSdJwtAlgsRestDTO:
      type: object
      properties:
        kb-jwt_alg_values:
          type: array
          items:
            type: string
        sd-jwt_alg_values:
          type: array
          items:
            type: string
    OrganisationId:
      type: string
      format: uuid
    PatchTrustEntityActionRestDTO:
      type: string
      enum:
      - ADMIN_ACTIVATE
      - ACTIVATE
      - WITHDRAW
      - REMOVE
    PatchTrustEntityRequestRestDTO:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/PatchTrustEntityActionRestDTO'
        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.
    PresentationDefinitionFieldRestDTO:
      type: object
      required:
      - id
      - keyMap
      properties:
        id:
          type: string
        keyMap:
          type: object
          additionalProperties:
            type: string
          propertyNames:
            type: string
        name:
          type:
          - string
          - 'null'
        purpose:
          type:
          - string
          - 'null'
        required:
          type:
          - boolean
          - 'null'
    PresentationDefinitionRequestGroupResponseRestDTO:
      type: object
      required:
      - id
      - rule
      - requestedCredentials
      properties:
        id:
          type: string
        name:
          type:
          - string
          - 'null'
        purpose:
          type:
          - string
          - 'null'
        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:
            type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/PresentationDefinitionFieldRestDTO'
        id:
          type: string
        inapplicableCredentials:
          type: array
          items:
            type: string
        name:
          type:
          - string
          - 'null'
        purpose:
          type:
          - string
          - 'null'
        validityCredentialNbf:
          type: string
          example: 2023-06-09T14:19:57.000Z
    PresentationDefinitionResponseRestDTO:
      type: object
      required:
      - requestGroups
      - credentials
      properties:
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/GetCredentialResponseRestDTO'
        requestGroups:
          type: array
          items:
            $ref: '#/components/schemas/PresentationDefinitionRequestGroupResponseRestDTO'
    PresentationDefinitionRuleRestDTO:
      type: object
      required:
      - type
      properties:
        count:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
        max:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
        min:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
        type:
          $ref: '#/components/schemas/PresentationDefinitionRuleTypeRestEnum'
    PresentationDefinitionRuleTypeRestEnum:
      type: string
      enum:
      - all
      - pick
    PresentationRejectRequestRestDTO:
      type: object
      required:
      - interactionId
      properties:
        interactionId:
          type: string
          format: uuid
          description: The identifier associated with a particular verification interaction.
    PresentationSubmissionDescriptorRestDTO:
      type: object
      required:
      - id
      - format
      - path
      properties:
        format:
          type: string
          example: SD_JWT
        id:
          type: string
        path:
          type: string
        path_nested:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/NestedPresentationSubmissionDescriptorRestDTO'
    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
    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.
    PresentationSubmitRequestRestDTO:
      type: object
      required:
      - interactionId
      - submitCredentials
      - didId
      properties:
        didId:
          $ref: '#/components/schemas/DidId'
        interactionId:
          type: string
          format: uuid
        keyId:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/KeyId'
            description: |-
              If the associated DID supports multiple keys for authentication,
              specify which key to use. If no key is specified the first suitable key listed
              will be used.
        submitCredentials:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PresentationSubmitCredentialRequestRestDTO'
          propertyNames:
            type: string
    ProcivisSubjectClaimValueRestDTO:
      type: object
      required:
      - value
      - 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:
          oneOf:
          - type: 'null'
          - $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
      - issuanceDate
      - exchange
      - transport
      - state
      - role
      - proofInputs
      properties:
        claimsRemovedAt:
          type: string
          example: 2023-06-09T14:19:57.000Z
        completedDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        exchange:
          type: string
        holderDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        organisationId:
          type:
          - string
          - 'null'
          format: uuid
        proofInputs:
          type: array
          items:
            $ref: '#/components/schemas/ProofInputRestDTO'
        redirectUri:
          type:
          - string
          - 'null'
        requestedDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        retainUntilDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        role:
          $ref: '#/components/schemas/ProofRoleRestEnum'
        schema:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
        state:
          $ref: '#/components/schemas/ProofStateRestEnum'
        transport:
          type: string
        verifierDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
    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:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GetCredentialResponseRestDTO'
            description: The credentials exchanged as part of the successfully shared proof.
        credentialSchema:
          $ref: '#/components/schemas/CredentialSchemaListItemResponseRestDTO'
        validityConstraint:
          type:
          - integer
          - 'null'
          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
          - 'null'
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
    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
          - 'null'
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
    ProofListItemResponseRestDTO:
      type: object
      required:
      - id
      - createdDate
      - lastModified
      - issuanceDate
      - exchange
      - transport
      - state
      - role
      properties:
        completedDate:
          type: string
          description: When holder submitted valid proof.
          example: 2023-06-09T14:19:57.000Z
        createdDate:
          type: string
          example: 2023-06-09T14:19:57.000Z
        exchange:
          type: string
        id:
          type: string
          format: uuid
        issuanceDate:
          type: string
          description: When proof request was shared.
          example: 2023-06-09T14:19:57.000Z
        lastModified:
          type: string
          example: 2023-06-09T14:19:57.000Z
        requestedDate:
          type: string
          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
          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:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GetProofSchemaListItemResponseRestDTO'
        state:
          $ref: '#/components/schemas/ProofStateRestEnum'
        transport:
          type: string
          description: Exchange protocol being used.
        verifierDid:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DidListItemResponseRestDTO'
    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
    ProposeProofRequestRestDTO:
      type: object
      required:
      - exchange
      - organisationId
      properties:
        exchange:
          type: string
        organisationId:
          $ref: '#/components/schemas/OrganisationId'
    ProposeProofResponseRestDTO:
      type: object
      required:
      - proofId
      - interactionId
      - url
      properties:
        interactionId:
          type: string
          format: uuid
        proofId:
          $ref: '#/components/schemas/ProofId'
        url:
          type: string
    PublicKeyJwkEllipticDataRestDTO:
      type: object
      required:
      - crv
      - x
      properties:
        crv:
          type: string
        use:
          type:
          - string
          - 'null'
        x:
          type: string
        y:
          type:
          - string
          - 'null'
    PublicKeyJwkMlweDataRestDTO:
      type: object
      required:
      - alg
      - x
      properties:
        alg:
          type: string
        use:
          type:
          - string
          - 'null'
        x:
          type: string
    PublicKeyJwkOctDataRestDTO:
      type: object
      required:
      - k
      properties:
        k:
          type: string
        use:
          type:
          - string
          - 'null'
    PublicKeyJwkRestDTO:
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/PublicKeyJwkEllipticDataRestDTO'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - EC
      - allOf:
        - $ref: '#/components/schemas/PublicKeyJwkRsaDataRestDTO'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - RSA
      - allOf:
        - $ref: '#/components/schemas/PublicKeyJwkEllipticDataRestDTO'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - OKP
      - allOf:
        - $ref: '#/components/schemas/PublicKeyJwkOctDataRestDTO'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - oct
      - allOf:
        - $ref: '#/components/schemas/PublicKeyJwkMlweDataRestDTO'
        - type: object
          required:
          - kty
          properties:
            kty:
              type: string
              enum:
              - MLWE
      description: JWK representation of the public key used to verify the DID.
    PublicKeyJwkRsaDataRestDTO:
      type: object
      required:
      - e
      - n
      properties:
        e:
          type: string
        n:
          type: string
        use:
          type:
          - string
          - 'null'
    ResolveJsonLDContextResponseRestDTO:
      type: object
      required:
      - context
      properties:
        context: {}
    SSIPostTrustEntityRequestRestDTO:
      type: object
      required:
      - did
      - name
      - role
      properties:
        did:
          $ref: '#/components/schemas/DidValue'
          description: Specify DID value.
        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'
        termsUrl:
          type:
          - string
          - 'null'
          description: Specify a Terms of Service url.
        trustAnchorId:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/TrustAnchorId'
            description: Specify trust anchor ID.
        website:
          type:
          - string
          - 'null'
          description: Specify the entity's domain name.
    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
    SdJwtVcClaimDisplayRestDTO:
      type: object
      required:
      - lang
      - label
      properties:
        label:
          type: string
        lang:
          type: string
    SdJwtVcClaimRestDTO:
      type: object
      required:
      - path
      properties:
        display:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcClaimDisplayRestDTO'
        path:
          type: array
          items: {}
        sd:
          oneOf:
          - type: 'null'
          - $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:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SdJwtVcRenderingRestDTO'
    SdJwtVcRenderingRestDTO:
      type: object
      properties:
        simple:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SdJwtVcSimpleRenderingRestDTO'
    SdJwtVcSimpleRenderingLogoRestDTO:
      type: object
      required:
      - uri
      properties:
        altText:
          type:
          - string
          - 'null'
        uri:
          type: string
          format: uri
    SdJwtVcSimpleRenderingRestDTO:
      type: object
      properties:
        backgroundColor:
          type:
          - string
          - 'null'
        logo:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SdJwtVcSimpleRenderingLogoRestDTO'
        textColor:
          type:
          - string
          - 'null'
    SdJwtVcTypeMetadataResponseRestDTO:
      type: object
      required:
      - vct
      properties:
        claims:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcClaimRestDTO'
        display:
          type: array
          items:
            $ref: '#/components/schemas/SdJwtVcDisplayMetadataRestDTO'
        layout_properties:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CredentialSchemaLayoutPropertiesRestDTO'
        name:
          type:
          - string
          - 'null'
        vct:
          type: string
    SearchType:
      type: string
      enum:
      - CLAIM_NAME
      - CLAIM_VALUE
      - CREDENTIAL_SCHEMA_NAME
    ShareProofRequestParamsRestDTO:
      type: object
      properties:
        clientIdScheme:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ClientIdSchemeRestEnum'
    ShareProofRequestRestDTO:
      type: object
      properties:
        params:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ShareProofRequestParamsRestDTO'
    SortDirection:
      type: string
      enum:
      - ASC
      - DESC
    SortableCredentialColumnRestEnum:
      type: string
      enum:
      - createdDate
      - schema.name
      - issuerDid
      - 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
    SortableKeyColumnRestDTO:
      type: string
      enum:
      - name
      - createdDate
      - publicKey
      - keyType
      - storageType
    SortableProofColumnRestEnum:
      type: string
      enum:
      - schema.name
      - verifierDid
      - createdDate
      - state
    SortableProofSchemaColumnRestEnum:
      type: string
      enum:
      - name
      - createdDate
    SortableTrustAnchorColumnRestEnum:
      type: string
      enum:
      - name
      - createdDate
      - type
    SortableTrustEntityColumnRestEnum:
      type: string
      enum:
      - name
      - role
      - lastModified
      - state
    SuspendCredentialRequestRestDTO:
      type: object
      properties:
        suspendEndDate:
          type: string
          description: Specify the time when the credential will reactivate, or pass `{}` for an indefinite suspension.
          example: 2023-06-09T14:19:57.000Z
    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.
          example: SUSPEND_CHECK
        params:
          type:
          - object
          - 'null'
          description: Parameters to pass to the task.
    TaskResponseRestDTO:
      allOf:
      - {}
    TimestampRest:
      type: integer
      format: int64
    TrustAnchorId:
      type: string
      format: uuid
    TrustEntityId:
      type: string
      format: uuid
    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
    UnexportableEntitiesResponseRestDTO:
      type: object
      required:
      - credentials
      - keys
      - dids
      - total_credentials
      - total_keys
      - total_dids
      properties:
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/GetCredentialResponseRestDTO'
        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
    UpsertOrganisationRequestRestDTO:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    WalletStorageTypeRestEnum:
      type: string
      enum:
      - SOFTWARE
      - HARDWARE
      - REMOTE_SECURE_ELEMENT
  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
tags:
- name: other
  description: |
    Returns the system configuration, along with other system information.

    Related guide: [Configuration](/configure)
  x-displayName: System information
- name: organisation_management
  description: |
    The **Organization** is the fundamental unit of _Procivis One_. All actions
    related to issuing, holding and verifying are taken _by_ an organization. This
    means that keys, DIDs, credentials and proofs belong to the organization used
    to create them and to no other.

    Related guide: [Organizations](/organizations)
  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.

    At least one key pair is needed to create a DID, and a DID is required to issue,
    hold, or verify credentials.

    This resource also generates Certificate Signing Requests, a necessary component
    of ISO mdoc issuance and verification.

    Related guide: [Keys](/keys)
  x-displayName: Keys
- name: did_management
  description: |
    Create and manage DIDs (Decentralized Identifiers), a type of globally unique
    identifier for an entity. The DID is a URI that can be resolved to
    a DID document which offers metadata about the identified entity.

    Because a DID is created in association with a public/private key pair, the
    controller of the private key is able to prove control of the DID and thus
    authenticate themselves.

    A DID is needed to issue credentials, request a proof, and verify credentials.

    Related guide: [DIDs](/dids)
  x-displayName: DIDs
- name: credential_schema_management
  description: |
    A credential schema defines the structure and format of a credential, including
    the attributes about which issuers make claims. Schemas carry information about
    issued credentials such as how an issued credential should be presented in a
    digital wallet, whether it was issued with a revocation method and issuer
    preferences for wallet storage type.

    The system supports the creation of as many credential schemas as is needed.

    Related guide: [Credential schemas](/credential-schemas)
  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.

    Related guide: [Issuance](/issue)
  x-displayName: Credentials
- name: proof_schema_management
  description: |
    A proof schema defines the attributes a verifier requests from a credentials holder.
    It is the collection of items of information to be requested.

    Proof schemas are built from attributes defined in credential schemas. Each item of
    information to be requested must first be part of a credential schema in the system.
    Proof schemas are not restricted to pulling attributes from a single credential schema
    or from credential schemas using a particular credential format; a single proof schema
    can be composed of any number of attributes from any number of credential schemas within
    the organization.

    Proof schemas cannot combine hardware- and software-based credentials.

    Related guide: [Proof schemas](/proof-schemas)
  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.

    Related guide: [Verify](/verify)
  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.

    Related guide: [Wallet interaction](/hold/wallet-interaction)
  x-displayName: Wallet interaction
- name: history_management
  description: |
    Retrieve event history.

    Related guide: [History](/history)
  x-displayName: History
- name: trust_anchor
  description: |
    Manage trust anchors as a publisher or subscribe to trust anchors as a consumer.

    Related guide: [Trust](/trust)
  x-displayName: Trust anchors
- name: trust_entity
  description: |
    Manage trust entities on an anchor.

    Related guide: [Trust](/trust)
  x-displayName: Trust entities
- name: jsonld
  description: |
    Operations for credentials formatted with JSON-LD.
  x-displayName: JSON-LD
- name: task
  description: |
    Run tasks.

    Related guide: [Configuration](/configure)
  x-displayName: Task
- name: cache
  description: |
    Manage cached entities.

    Related guide: [Configuration](/configure)
  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) SSI
- 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) SSI
externalDocs:
  url: https://docs.procivis.ch/
  description: See the documentation
