openapi: 3.1.0
info:
  title: Procivis One Desk API
  description: "The Procivis One Desk API exposes functionality to manage the complete\
    \ lifecycle of verified credentials. Download the [specification](../APIspec/one-bff.yaml)."
  contact:
    name: Procivis One Docs
    url: https://www.procivis.ch/en/procivis-one#signup
  version: v1.61.0
servers:
- url: ""
- url: https://desk.trial.procivis-one.com
  description: Trial url
tags:
- name: config-controller
  description: |
    Returns the system configuration.

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

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

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

    Related guide: [Configuration](/reference/api/configuration)
  x-displayName: Configuration
- name: organisation-controller
  description: |
    The organization is the fundamental unit in Procivis One. All
    issuing, holding, and verifying actions are performed by an
    organization. Keys, DIDs, credentials, and proofs belong exclusively
    to the organization that created them.

    The active organization is stored in the user session. The user can switch to
    other organizations to which they belong at any time, and perform permissioned
    actions of the active organization.

    See the [organizations guide](/organizations) for more.

    To manage organizations for the Desk, see the
    [Desk organizations](/reference/desk/sts-organisation-controller) endpoints.
  x-displayName: User organizations
- name: key-controller
  description: |
    Create cryptographic keys using different key algorithms and storage types.
    The public key can be seen in the system (`publicKey`) and is used to verify
    credentials. The private key is stored in the system and used to sign credentials,
    but cannot be exported and is not visible through the API.

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

    This resource also generates Certificate Signing Requests (CSRs), a necessary
    component of certificate creation.

    Related guide: [Keys](/keys)
  x-displayName: Keys
- name: identifier-controller
  description: |
    Create and manage identifiers of different types for different identity ecosystems.
    An identifier is needed to issue, hold, or verify.

    Related guide: [Identifiers](/identifiers)
  x-displayName: Identifiers
- name: certificate-controller
  description: |
    Retrieve X.509 certificates in the system.

    Related guide: [Certificates](/certificates)
  x-displayName: Certificates
- name: did-controller
  description: |
    These endpoints are being phased out, but they can be used to create and
    manage DIDs (Decentralized Identifiers). Use the
    [identifiers](/reference/desk/identifier-controller) endpoints to create and manage
    DIDs.

    Related guide: [DIDs](/dids)
  x-displayName: DIDs
- name: credential-schema-controller
  description: |
    A credential schema defines the structure and format of a credential,
    including the attributes that issuers make claims about. Schemas also
    specify how issued credentials should be presented in digital wallets,
    whether revocation methods are used, and issuer preferences for wallet
    storage type.

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

    Related guide: [Credential schemas](/credential-schemas)
  x-displayName: Credential schemas
- name: credential-controller
  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-controller
  description: "Create, delete, and retrieve proof schemas. See the [Proof schemas](/proof-schemas)\
    \ guide for more information."
  x-displayName: Proof schemas
- name: proof-request-controller
  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-controller
  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: [Wallets](/hold)
  x-displayName: Wallet interaction
- name: history-controller
  description: "Retrieve the history of an entity. See the [History](/history) guide\
    \ for more information."
  x-displayName: History
- name: did-resolver-controller
  description: "Resolve DID addresses to DID documents. Related guide: [Resolve a\
    \ DID](/dids#resolve-a-did)"
  x-displayName: DID Resolver
- name: trust-anchor-controller
  description: Publish new trust anchors and subscribe to existing trust anchors.
  x-displayName: Trust anchors
- name: trust-entity-controller
  description: Add and remove trust entities to and from trust anchors.
  x-displayName: Trust entities
- name: well-known-controller
  description: |
    Standard (RFC 8615) well-known URIs for common service and
    configuration discovery.
  x-displayName: Well-known
- name: profile-controller
  description: Retrieve and make changes to the user profile.
  x-displayName: Profile
- name: provider-controller
  description: "Manage OpenID providers. See the [OpenID Bridge](/openid-bridge/integrate)\
    \ guide for more on OpenID integration."
  x-displayName: OIDC providers
- name: sts-controller
  description: "Endpoints for token exchange. Related guide: [Authentication and authorization](/reference/api/desk/auth)."
  x-displayName: STS
- name: sts-role-controller
  description: "Create and manage roles for the Desk. Related guide: [Authentication\
    \ and authorization](/reference/api/desk/auth)."
  x-displayName: Roles
- name: sts-organisation-controller
  description: "Create and manage organizations for the Desk. Related guide: [Authentication\
    \ and authorization](/reference/api/desk/auth)."
  x-displayName: Desk organizations
- name: sts-iam-role-controller
  description: "Create and manage IAM roles for the Desk. Related guide: [Authentication\
    \ and authorization](/reference/api/desk/auth)."
  x-displayName: IAM roles
- name: build-info-controller
  description: Retrieve Procivis One version information.
  x-displayName: Version
paths:
  /api/sts/role/v1/{roleId}:
    get:
      tags:
      - sts-role-controller
      summary: Retrieve an  role
      operationId: getRole
      parameters:
      - name: roleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: Role not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailStsRoleResponseDTO"
      security:
      - bearerAuth: []
    put:
      tags:
      - sts-role-controller
      summary: Update an existing role
      operationId: updateRole
      parameters:
      - name: roleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateStsRoleRequestDTO"
        required: true
      responses:
        "400":
          description: Business error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Role not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - sts-role-controller
      summary: Delete an STS role
      operationId: deleteRole
      parameters:
      - name: roleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: Role not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/trust-entity/v1:
    get:
      tags:
      - trust-entity-controller
      summary: List trust entities
      description: Returns a list of trust entities.
      operationId: getTrustEntities
      parameters:
      - name: role
        in: query
        description: "Return only entities that are trusted issuers, or verifiers,\
          \ or both."
        required: false
        schema:
          type: string
          description: "Return only entities that are trusted issuers, or verifiers,\
            \ or both."
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
      - name: type
        in: query
        description: Return only entities of the specified type.
        required: false
        schema:
          type: string
          description: Return only entities of the specified type.
          enum:
          - CA
          - DID
      - name: trustAnchorId
        in: query
        description: Return only entities from a specified trust anchor.
        required: false
        schema:
          type: string
          description: Return only entities from a specified trust anchor.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
          enum:
          - name
          - role
          - lastModified
          - state
          - createdDate
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: showForAllOrganisations
        in: query
        required: false
        schema:
          type: boolean
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListTrustEntityResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - trust-entity-controller
      summary: Create a trust entity
      description: Creates a trust entity.
      operationId: createTrustEntity
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TrustEntityRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/trust-anchor/v1:
    get:
      tags:
      - trust-anchor-controller
      summary: List trust anchors
      description: Returns a list of trust anchors.
      operationId: getTrustAnchors
      parameters:
      - name: type
        in: query
        description: Return only trust anchors with a type starting with this string.
          Not case-sensitive.
        required: false
        schema:
          type: string
          description: Return only trust anchors with a type starting with this string.
            Not case-sensitive.
      - name: isPublisher
        in: query
        required: false
        schema:
          type: boolean
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
          - type
          - role
          - priority
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOTrustAnchorResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - trust-anchor-controller
      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: createTrustAnchor_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TrustAnchorRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/sts/token/v1:
    post:
      tags:
      - sts-controller
      summary: Get app token
      description: This endpoint accepts an IAM access token and returns a signed
        JWT app token.
      operationId: getToken
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/STSTokenRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/STSTokenResponseDTO"
  /api/sts/role/v1:
    get:
      tags:
      - sts-role-controller
      summary: List STS roles
      operationId: listRoles
      parameters:
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListStsRoleResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - sts-role-controller
      summary: Create an STS role
      operationId: createRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateStsRoleRequestDTO"
        required: true
      responses:
        "400":
          description: Business error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/sts/organisation/v1:
    get:
      tags:
      - sts-organisation-controller
      summary: List organizations
      operationId: listOrganisations
      parameters:
      - name: state
        in: query
        required: false
        schema:
          type: string
          enum:
          - ACTIVE
          - DEACTIVATED
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListStsOrganisationResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - sts-organisation-controller
      summary: Create an organization
      description: |
        Creates a system organization.

        Organizations own and operate their own assets, such as keys,
        certificates, credentials, and related data. Assign the `roles`
        the organization is expected to perform to delimit the actions
        that can be taken within the organization. For example, use:

        `"roles": ["ISSUER", "VERIFIER", "HOLDER"]`

        For an organization that will issue, hold, and verify credentials.

        You can always update an organization by using PATCH.
      operationId: createOrganisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateStsOrganisationRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/sts/iam-role/v1:
    get:
      tags:
      - sts-iam-role-controller
      summary: List IAM roles
      description: |
        List IAM roles across your organizations.

        For each role, assigned organizations are listed along
        with all custom roles assigned for that organization.
      operationId: listIamRoles
      parameters:
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListStsIamRoleResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - sts-iam-role-controller
      summary: Create an IAM role
      description: |
        Create an IAM role to map your custom roles to specific
        organizations. An example `organisationRoles` entry:

        `"orgId1": ["roleId1", "roleId2"],`

        Map as many organizations and roles as needed.

        Individual users must then be assigned IAM roles in your
        IAM solution. When they authenticate, their token should
        include their IAM roles. The _Desk_ exchanges this token
        with an app token, converting IAM roles into their app
        permissions.
      operationId: createIamRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateStsIamRoleRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/proof-schema/v1:
    get:
      tags:
      - proof-schema-controller
      summary: List proof schemas
      description: Returns a list of proof schemas created in the organization.
      operationId: getProofSchemas
      parameters:
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: formats
        in: query
        description: Return only proof schemas which use the specified credential
          formats.
        required: false
        schema:
          $ref: "#/components/schemas/formats"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListProofSchemaResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - proof-schema-controller
      summary: Create a proof schema
      description: |
        A proof schema defines which attributes a verifier requests from a credential holder.
        It specifies what information will be requested.

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

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

        Related guide: [Proof schemas](/proof-schemas)
      operationId: createProofSchema
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProofSchemaRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/proof-schema/v1/{proofSchemaId}/share:
    post:
      tags:
      - proof-schema-controller
      summary: Share proof schema
      description: Generates a url to share a proof schema with a mobile verifier.
      operationId: shareProofSchema
      parameters:
      - name: proofSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CoreEntityShareResponseDTO"
      security:
      - bearerAuth: []
  /api/proof-request/v1:
    get:
      tags:
      - proof-request-controller
      summary: List proof requests
      description: Returns a list of proof requests created in the organization.
      operationId: getProofRequests
      parameters:
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: proofSchemaIds
        in: query
        description: Filter proof requests by their associated proof schema. Pass
          an array of UUID strings.
        required: false
        schema:
          $ref: "#/components/schemas/proofSchemaIds"
      - name: proofStates
        in: query
        description: Return proof requests according to their current state.
        required: false
        schema:
          $ref: "#/components/schemas/proofStates"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - schema.name
          - verifier
          - state
          - createdDate
      - name: proofRoles
        in: query
        description: Filter proof requests by whether the system is the holder in
          the interaction or the verifier.
        required: false
        schema:
          $ref: "#/components/schemas/proofRoles"
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: profile
        in: query
        description: Filter by profile under which the proof is requested.
        required: false
        schema:
          type: string
          description: Filter by profile under which the proof is requested.
      - name: requestedDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: requestedDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: completedDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: completedDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListProofResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - proof-request-controller
      summary: Create a proof request
      description: |
        Creates a proof request, which can then be shared with a wallet holder.

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

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

        Related guide: [Verify workflow](/verify)
      operationId: createProofRequest
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProofRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/proof-request/v1/{proofRequestId}/share:
    post:
      tags:
      - proof-request-controller
      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: shareProofRequest
      parameters:
      - name: proofRequestId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CoreEntityShareResponseDTO"
      security:
      - bearerAuth: []
  /api/organisation/v1/switch:
    post:
      tags:
      - organisation-controller
      summary: Change organizations
      description: Change to a different organization.
      operationId: switchOrganisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrganisationSwitchRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/openid-provider/v1:
    get:
      tags:
      - provider-controller
      summary: List OIDC providers
      description: Returns a list of OpenID Connect providers.
      operationId: getProviders
      parameters:
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListProviderResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - provider-controller
      summary: Create an OIDC provider
      description: Creates an OpenID Connect provider for the Desk.
      operationId: createProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProviderRequestDTO"
        required: true
      responses:
        "400":
          description: Invalid Provider data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreatedProviderResponseDTO"
      security:
      - bearerAuth: []
  /api/openid-provider/v1/{providerId}/regenerate-secret:
    post:
      tags:
      - provider-controller
      summary: Regenerate client secret
      description: Regenerates the client secret of an OpenID Connect provider.
      operationId: regenerateSecret
      parameters:
      - name: providerId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Invalid Provider data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegenerateSecretResponseDTO"
      security:
      - bearerAuth: []
  /api/key/v1:
    get:
      tags:
      - key-controller
      summary: List keys
      description: Returns a list of keys created in the current organization.
      operationId: listKeys
      parameters:
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: keyTypes
        in: query
        description: Return only keys of the specified algorithms.
        required: false
        schema:
          $ref: "#/components/schemas/keyTypes"
      - name: keyStorages
        in: query
        description: |
          Return only keys stored in the specified storage types.
          Possible values come from your configuration.
        required: false
        schema:
          $ref: "#/components/schemas/keyStorages"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
          - publicKey
          - keyType
          - storageType
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: isRemote
        in: query
        required: false
        schema:
          type: boolean
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListKeyResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - key-controller
      summary: Create a key
      description: |
        Creates a key within the current 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: createKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/KeyRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/key/v1/{keyId}/generate-csr:
    post:
      tags:
      - key-controller
      summary: Generate a CSR
      description: "Generates a Certificate Signing Request (CSR). These are used\
        \ to create mDL DS certificates, enabling mdoc issuance. See the [mdoc guide](/configure/iso-mdoc)\
        \ for more."
      operationId: generateCsr
      parameters:
      - name: keyId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenerateCsrRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenerateCsrResponseDTO"
      security:
      - bearerAuth: []
  /api/interaction/v1/presentation-submit:
    post:
      tags:
      - interaction-controller
      summary: Submit presentation
      description: |
        Submits a presentation in response to a request. Choose the
        identifier used to accept the credentials.

        `didId` is deprecated.
      operationId: presentationSubmit
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PresentationSubmitRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/interaction/v1/presentation-reject:
    post:
      tags:
      - interaction-controller
      summary: Reject presentation
      description: Rejects a request to submit credentials.
      operationId: presentationReject
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InteractionRejectRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/interaction/v1/issuance-reject:
    post:
      tags:
      - interaction-controller
      summary: Reject issuance
      description: Rejects an offered credential.
      operationId: issuanceReject
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InteractionRejectRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/interaction/v1/issuance-accept:
    post:
      tags:
      - interaction-controller
      summary: Accept issuance
      description: |
        Accepts an offered credential. The chosen identifier will be listed
        as the subject of the issued credential.

        `didId` is deprecated.
      operationId: issuanceAccept
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IssuanceAcceptRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/interaction/v1/initiate-issuance:
    post:
      tags:
      - interaction-controller
      summary: Initiate OID4VCI issuance
      description: |
        For wallets, starts the OpenID4VCI Authorization Code Flow.
      operationId: initiateIssuance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitiateIssuanceRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InitiateIssuanceResponseDTO"
      security:
      - bearerAuth: []
  /api/interaction/v1/handle-invitation:
    post:
      tags:
      - interaction-controller
      summary: Handle invitation
      description: |
        For a wallet, handles the interaction once the wallet connects to a share
        endpoint URL (for example, scans the QR code of an offered credential or
        request for proof).

        To start the wallet-initiated Authorization Code Flow request for issuance,
        use the [initiate-issuance](/reference/desk/initiate-issuance) endpoint.
      operationId: handleInvitation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HandleInvitationRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HandleInvitationResponseDTO"
      security:
      - bearerAuth: []
  /api/interaction/v1/continue-issuance:
    post:
      tags:
      - interaction-controller
      summary: Continue OID4VCI issuance
      description: |
        For wallet-initiated flows, continues the OpenID4VCI issuance process after
        completing authorization.
      operationId: continueIssuance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContinueIssuanceRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContinueIssuanceResponseDTO"
      security:
      - bearerAuth: []
  /api/identifier/v1:
    get:
      tags:
      - identifier-controller
      summary: List identifiers
      description: Returns a list of identifiers in the organization.
      operationId: listIdentifiers
      parameters:
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: keyAlgorithms
        in: query
        description: |
          Return only keys or DIDs whose keys use the specified algorithm. Check the
          `keyAlgorithm` object of the configuration for supported options.
        required: false
        schema:
          $ref: "#/components/schemas/keyAlgorithms"
      - name: keyStorages
        in: query
        description: Return only keys stored in the specified storage type.
        required: false
        schema:
          $ref: "#/components/schemas/keyStorages"
      - name: keyRoles
        in: query
        required: false
        schema:
          $ref: "#/components/schemas/keyRoles"
      - name: didMethods
        in: query
        description: Return only identifiers using the certain did method.
        required: false
        schema:
          $ref: "#/components/schemas/didMethods"
      - name: types
        in: query
        description: Return only identifiers of certain types.
        required: false
        schema:
          $ref: "#/components/schemas/types"
      - name: isRemote
        in: query
        description: |
          If true, return only identifiers from interactions with external actors. If
          false, return only identifiers local to the system.
        required: false
        schema:
          type: boolean
          description: |
            If true, return only identifiers from interactions with external actors. If
            false, return only identifiers local to the system.
      - name: state
        in: query
        description: Return only active or deactivated identifiers.
        required: false
        schema:
          type: string
          description: Return only active or deactivated identifiers.
          enum:
          - ACTIVE
          - DEACTIVATED
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListIdentifierResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - identifier-controller
      summary: Create an identifier
      description: Creates a new identifier of the specified type.
      operationId: createIdentifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentifierRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/identifier/v1/resolve-trust-entity:
    post:
      tags:
      - identifier-controller
      summary: Resolve trust entities
      description: |2
              Resolves trust entity information of supplied identifiers.

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

        Note that trust information is informational only. Holders and verifiers can
        decide how to proceed with any given interaction.
      operationId: resolveTrustEntities
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResolveTrustEntityRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/ResolvedIdentifierTrustEntityResponseDTO"
      security:
      - bearerAuth: []
  /api/did/v1:
    get:
      tags:
      - did-controller
      summary: List DIDs
      description: Returns a list of DIDs within the organization.
      operationId: listDid
      parameters:
      - name: type
        in: query
        description: Filter by DIDs created locally or DIDs of remote wallets from
          credentials issued or proofs requested.
        required: false
        schema:
          type: string
          description: Filter by DIDs created locally or DIDs of remote wallets from
            credentials issued or proofs requested.
          enum:
          - LOCAL
          - REMOTE
      - name: did
        in: query
        description: Return all DIDs with addresses starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return all DIDs with addresses starting with this string. Not
            case-sensitive.
      - name: deactivated
        in: query
        description: Filter by active or deactivated DIDs.
        required: false
        schema:
          type: boolean
          description: Filter by active or deactivated DIDs.
      - name: keyAlgorithms
        in: query
        description: Return only DIDs which support the key algorithms specified here.
          Check the `keyAlgorithm` object of the configuration for supported options.
        required: false
        schema:
          $ref: "#/components/schemas/keyAlgorithms"
      - 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:
          $ref: "#/components/schemas/keyStorages"
      - name: keyIds
        in: query
        description: Return only DIDs which use the specified keys.
        required: false
        schema:
          $ref: "#/components/schemas/keyIds"
      - name: keyRoles
        in: query
        required: false
        schema:
          $ref: "#/components/schemas/keyRoles"
      - 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:
          $ref: "#/components/schemas/didMethods"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
          - method
          - type
          - did
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListDidResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - did-controller
      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: createDidAddress
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DidRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/credential/v1:
    get:
      tags:
      - credential-controller
      summary: List credentials
      description: Returns a list of credentials within the organization.
      operationId: getCredentials
      parameters:
      - 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:
          type: string
          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."
          enum:
          - HOLDER
          - ISSUER
          - VERIFIER
      - name: include
        in: query
        description: Choose whether to include `layoutProperties` with the returned
          schemas.
        required: false
        schema:
          $ref: "#/components/schemas/include"
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: searchText
        in: query
        description: Search for a string.
        required: false
        schema:
          type: string
          description: Search for a 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:
          $ref: "#/components/schemas/searchType"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - createdDate
          - schema.name
          - issuer
          - state
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: profile
        in: query
        description: Filter by profile under which the proof is requested.
        required: false
        schema:
          type: string
          description: Filter by profile under which the proof is requested.
      - name: credentialSchemaIds
        in: query
        description: Filter by credential schema ids.
        required: false
        schema:
          $ref: "#/components/schemas/credentialSchemaIds"
      - name: issuanceDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: issuanceDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: revocationDateAfter
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: revocationDateBefore
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListCredentialResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - credential-controller
      summary: Create a credential
      description: |
        Creates a credential, which can then be issued to a wallet holder.

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

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

        Related guide: [Issuance](/issue)
      operationId: createCredential
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CredentialRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Issuer did or credential schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/credential/v1/{credentialId}/suspend:
    post:
      tags:
      - credential-controller
      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: suspendCredential
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SuspendCredentialRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/credential/v1/{credentialId}/share:
    post:
      tags:
      - credential-controller
      summary: Issue a credential
      description: Creates a share endpoint URL. A wallet holder can use this URL
        to access the credential being offered.
      operationId: issueCredential
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Issuer did or credential schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityShareResponseDTO"
      security:
      - bearerAuth: []
  /api/credential/v1/{credentialId}/revoke:
    post:
      tags:
      - credential-controller
      summary: Revoke a credential
      description: "Changes a credential state to `REVOKED`. Related guide: [Manage\
        \ credential status](/issue/manage-status)"
      operationId: revokeCredential
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/credential/v1/{credentialId}/reactivate:
    post:
      tags:
      - credential-controller
      summary: Reactivate a Credential
      description: "Reactivates a suspended credential. Related guide: [Manage credential\
        \ status](/issue/manage-status)"
      operationId: reactivateCredential
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/credential-schema/v1:
    get:
      tags:
      - credential-schema-controller
      summary: List credential schemas
      description: Returns a list of credential schemas created in the organization.
      operationId: getCredentialSchemas
      parameters:
      - name: schemaId
        in: query
        description: Return credential schemas associated with the specified `schemaId`
          or document type for ISO mdocs.
        required: false
        schema:
          type: string
          description: Return credential schemas associated with the specified `schemaId`
            or document type for ISO mdocs.
      - name: formats
        in: query
        description: Return only credential schemas which use the specified credential
          formats.
        required: false
        schema:
          $ref: "#/components/schemas/formats"
      - name: ids
        in: query
        description: Filter by specific UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
          - format
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListCredentialSchemaResponseDTO"
      security:
      - bearerAuth: []
    post:
      tags:
      - credential-schema-controller
      summary: Create a credential schema
      description: |
        Creates a credential schema, for issuing credentials.

        The `format` and `revocationMethod` 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: createCredentialSchema
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CredentialSchemaRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/credential-schema/v1/{credentialSchemaId}/share:
    post:
      tags:
      - credential-schema-controller
      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](/reference/core/import-credential-schema)\
        \ it to use it in proof schema creation."
      operationId: shareCredentialSchema
      parameters:
      - name: credentialSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CoreEntityShareResponseDTO"
      security:
      - bearerAuth: []
  /api/trust-entity/v1/{trustEntityId}:
    get:
      tags:
      - trust-entity-controller
      summary: Retrieve a trust entity
      description: Returns details on a given trust entity.
      operationId: getTrustEntityById
      parameters:
      - name: trustEntityId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Trust entity not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailTrustEntityResponseDTO"
      security:
      - bearerAuth: []
    patch:
      tags:
      - trust-entity-controller
      operationId: updateTrustEntity
      parameters:
      - name: trustEntityId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateTrustEntityRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
      security:
      - bearerAuth: []
  /api/sts/organisation/v1/{organisationId}:
    get:
      tags:
      - sts-organisation-controller
      summary: Retrieve an organisation
      operationId: getOrganisation
      parameters:
      - name: organisationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: Organisation not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailStsOrganisationResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - sts-organisation-controller
      summary: Delete an organization
      operationId: deleteOrganisation
      parameters:
      - name: organisationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: Organisation not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
    patch:
      tags:
      - sts-organisation-controller
      summary: Update an organization
      operationId: updateOrganisation
      parameters:
      - name: organisationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateStsOrganisationRequestDTO"
        required: true
      responses:
        "404":
          description: Organisation not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/sts/iam-role/v1/{iamRoleId}:
    get:
      tags:
      - sts-iam-role-controller
      summary: Retrieve an IAM role
      description: |
        Return information on a single IAM role.

        Assigned organizations are listed along with each
        custom role mapped to that organization.
      operationId: getIamRole
      parameters:
      - name: iamRoleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: IAM role not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailStsIamRoleResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - sts-iam-role-controller
      summary: Delete an IAM role
      description: |
        Deletes an IAM role.

        Ensure the IAM role is also removed from your IAM solution so
        authentication tokens do not contain unused roles.
      operationId: deleteIamRole
      parameters:
      - name: iamRoleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "404":
          description: IAM role not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
    patch:
      tags:
      - sts-iam-role-controller
      summary: Update an IAM role
      description: |
        Update an IAM role, remapping custom roles to organizations
        and optionally updating the role's description.
      operationId: updateIamRole
      parameters:
      - name: iamRoleId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateStsIamRoleRequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/profile/v1:
    get:
      tags:
      - profile-controller
      summary: Retrieve the user profile
      description: Returns details on the user profile.
      operationId: getProfile
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProfileResponseDTO"
      security:
      - bearerAuth: []
    patch:
      tags:
      - profile-controller
      summary: Update a profile
      description: Updates the user profile.
      operationId: updateProfile
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProfileUpdateResponseDTO"
      security:
      - bearerAuth: []
  /api/openid-provider/v1/{providerId}:
    get:
      tags:
      - provider-controller
      summary: Retrieve an OIDC provider
      description: Returns detailed information about an OpenID Connect provider.
      operationId: getProviderById
      parameters:
      - name: providerId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Provider not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailProviderResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - provider-controller
      summary: Delete an OIDC provider
      description: Deletes an OIDC provider.
      operationId: deleteProvider
      parameters:
      - name: providerId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Provider not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
    patch:
      tags:
      - provider-controller
      summary: Update an OIDC provider
      description: Updates an OpenID Connect provider.
      operationId: updateProvider
      parameters:
      - name: providerId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateProviderRequestDTO"
        required: true
      responses:
        "400":
          description: Invalid Provider data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/did/v1/{didId}:
    get:
      tags:
      - did-controller
      summary: Retrieve a DID
      description: Returns information about a specified DID.
      operationId: getDidById
      parameters:
      - name: didId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Did not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailDidResponseDTO"
      security:
      - bearerAuth: []
    patch:
      tags:
      - did-controller
      summary: Deactivate a DID
      description: "Deactivate a DID. Related guide: [DID deactivation](/dids#deactivate-a-did)"
      operationId: updateDid
      parameters:
      - name: didId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DidPatchRequestDTO"
        required: true
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Did not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/wallet-unit/v1:
    get:
      tags:
      - wallet-unit-controller
      operationId: getWalletUnits
      parameters:
      - name: status
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - ERROR
            - PENDING
            - REVOKED
      - name: walletProviderType
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
      - name: os
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ANDROID
            - IOS
            - WEB
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          default: createdDate
          description: Sort by certain values in the response body.
          enum:
          - name
          - createdDate
      - name: exact
        in: query
        description: Set which filters apply in an exact way.
        required: false
        schema:
          $ref: "#/components/schemas/exact"
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: name
        in: query
        description: Return only entities with a name starting with this string. Not
          case-sensitive.
        required: false
        schema:
          type: string
          description: Return only entities with a name starting with this string.
            Not case-sensitive.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: createdDateAfter
        in: query
        description: Return only entities created after this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format.
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format.
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListWalletUnitResponseDTO"
      security:
      - bearerAuth: []
  /api/wallet-unit/v1/{walletUnitId}:
    get:
      tags:
      - wallet-unit-controller
      operationId: getWalletUnitById
      parameters:
      - name: walletUnitId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailWalletUnitResponseDTO"
      security:
      - bearerAuth: []
  /api/trust-anchor/v1/{trustAnchorId}:
    get:
      tags:
      - trust-anchor-controller
      summary: Retrieve a trust anchor
      description: Returns details on a given trust anchor.
      operationId: getTrustAnchorById
      parameters:
      - name: trustAnchorId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Trust anchor not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TrustAnchorResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - trust-anchor-controller
      summary: Delete a trust anchor
      description: Deletes a trust anchor. All trust entities on the deleted trust
        anchor are also deleted.
      operationId: deleteTrustAnchor
      parameters:
      - name: trustAnchorId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Trust anchor not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/proof-schema/v1/{proofSchemaId}:
    get:
      tags:
      - proof-schema-controller
      summary: Retrieve a proof schema
      description: Returns detailed information about a proof schema.
      operationId: getProofSchemaById
      parameters:
      - name: proofSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailProofSchemaResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - proof-schema-controller
      summary: Delete a proof schema
      description: Deletes a proof schema.
      operationId: deleteProofSchemaById
      parameters:
      - name: proofSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/proof-request/v1/{proofRequestId}:
    get:
      tags:
      - proof-request-controller
      summary: Retrieve a proof request
      description: Returns detailed information about a proof request.
      operationId: getProofRequestById
      parameters:
      - name: proofRequestId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailProofResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - proof-request-controller
      summary: Delete a proof request
      description: |2
          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: deleteProofRequest
      parameters:
      - name: proofRequestId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/proof-request/v1/{proofRequestId}/presentation-definition:
    get:
      tags:
      - proof-request-controller
      operationId: getPresentationDefinition
      parameters:
      - name: proofRequestId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PresentationDefinitionResponseDTO"
      security:
      - bearerAuth: []
  /api/organisation/v1:
    get:
      tags:
      - organisation-controller
      summary: List all organizations
      description: |
        Returns the list of organizations to which the user belongs, sorted
        alphabetically. Logos are only returned for active organizations.
      operationId: getOrganisations
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/OrganisationResponseDTO"
      security:
      - bearerAuth: []
  /api/key/v1/{keyId}:
    get:
      tags:
      - key-controller
      summary: Retrieve a key
      description: Returns information about a specified key in the current organization.
      operationId: getKeyById
      parameters:
      - name: keyId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Did not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailKeyResponseDTO"
      security:
      - bearerAuth: []
  /api/identifier/v1/{identifierId}:
    get:
      tags:
      - identifier-controller
      summary: Retrieve an identifier
      description: Returns detailed information about an identifier in the organization.
      operationId: getIdentifierById
      parameters:
      - name: identifierId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Identifier not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailIdentifierResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - identifier-controller
      summary: Delete an identifier
      description: Deletes an identifier.
      operationId: deleteIdentifierById
      parameters:
      - name: identifierId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Identifier not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
      security:
      - bearerAuth: []
  /api/history/v1:
    get:
      tags:
      - history-controller
      summary: List history events
      description: Returns a list of history events for entities in the system. Use
        the parameters to filter.
      operationId: getHistoryList
      parameters:
      - name: page
        in: query
        description: Page to display.
        required: false
        schema:
          type: integer
          format: int32
          description: Page to display.
      - name: pageSize
        in: query
        description: Set the number of entities returned on each page.
        required: false
        schema:
          type: integer
          format: int32
          description: Set the number of entities returned on each page.
      - name: sort
        in: query
        description: Sort by certain values in the response body.
        required: false
        schema:
          type: string
          description: Sort by certain values in the response body.
      - name: sortDirection
        in: query
        description: "Direction to sort results by. If a sorting value is passed,\
          \ the direction defaults to `ASC`."
        required: false
        schema:
          type: string
          default: DESC
          description: "Direction to sort results by. If a sorting value is passed,\
            \ the direction defaults to `ASC`."
          enum:
          - ASC
          - DESC
      - name: entityTypes
        in: query
        description: Return only events associated with the specified entity type(s).
          `PROVIDER` and `INTERACTION` apply only if `source = BRIDGE`.
        required: false
        schema:
          $ref: "#/components/schemas/entityTypes"
      - name: entityId
        in: query
        description: Return only history events associated with the provided entity
          UUID.
        required: false
        schema:
          type: string
          description: Return only history events associated with the provided entity
            UUID.
      - name: actions
        in: query
        description: Filter by event action.
        required: false
        schema:
          $ref: "#/components/schemas/actions"
      - name: createdDateAfter
        in: query
        description: |
          Return only events which occurred after this time. Timestamp in RFC3339 format.)
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred after this time. Timestamp in RFC3339 format.)
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - name: createdDateBefore
        in: query
        description: |
          Return only events which occurred before this time. Timestamp in RFC3339 format.)
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred before this time. Timestamp in RFC3339 format.)
          example: 2023-06-09T14:19:57.000Z
        example: 2023-06-09T14:19:57.000Z
      - 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:
          type: string
          description: "Changes where \"searchText\" is searched. If no value is provided,\
            \ events that have any field matching \"searchText\" will be returned."
          enum:
          - claimName
          - claimValue
          - credentialSchemaName
          - issuerDid
          - issuerName
          - verifierDid
          - verifierName
      - name: searchText
        in: query
        description: Search for a string.
        required: false
        schema:
          type: string
          description: Search for a string.
      - name: identifierId
        in: query
        description: Return only events associated with the provided Identifier UUID.
        required: false
        schema:
          type: string
          description: Return only events associated with the provided Identifier
            UUID.
      - name: providerId
        in: query
        description: "If `source = BRIDGE`, use this to return only events associated\
          \ with the specified provider UUID."
        required: false
        schema:
          type: string
          description: "If `source = BRIDGE`, use this to return only events associated\
            \ with the specified provider UUID."
      - name: credentialId
        in: query
        description: Return only events associated with the provided credential UUID.
        required: false
        schema:
          type: string
          description: Return only events associated with the provided credential
            UUID.
      - name: credentialSchemaId
        in: query
        description: Return only events associated with the provided credential schema
          UUID.
        required: false
        schema:
          type: string
          description: Return only events associated with the provided credential
            schema UUID.
      - name: source
        in: query
        description: Choose whether to return history events of the Core or of the
          OpenID Bridge integration.
        required: true
        schema:
          type: string
          description: Choose whether to return history events of the Core or of the
            OpenID Bridge integration.
          enum:
          - BRIDGE
          - CORE
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchEntityResponseDTOListHistoryResponseDTO"
      security:
      - bearerAuth: []
  /api/history/v1/{historyId}:
    get:
      tags:
      - history-controller
      summary: Retrieve an event
      description: Returns details of an event in the system.
      operationId: getHistoryById
      parameters:
      - name: historyId
        in: path
        description: "The identifier of the history entry, retrieved using the [List\
          \ event history](/desk/get-history-list) endpoint."
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: History not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailHistoryResponseDTO"
      security:
      - bearerAuth: []
  /api/did/v1/{didId}/trust-entity:
    get:
      tags:
      - did-controller
      summary: Retrieve trust information from DID
      description: Returns trust information about a specified DID.
      operationId: getTrustEntityByDidId
      parameters:
      - name: didId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Did not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailTrustEntityResponseDTO"
      security:
      - bearerAuth: []
  /api/did-resolver/v1/{did}:
    get:
      tags:
      - did-resolver-controller
      summary: Resolve a DID
      description: "Resolves a DID to its DID document, returning its verification\
        \ relationships. Related guide: [Resolve a DID](/dids#resolve-a-did)"
      operationId: resolveDid
      parameters:
      - name: did
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Entity not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DidDocumentResponseDTO"
      security:
      - bearerAuth: []
  /api/credential/v1/{credentialId}:
    get:
      tags:
      - credential-controller
      summary: Retrieve a credential
      description: Returns detailed information about a credential.
      operationId: getCredentialById
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailCredentialResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - credential-controller
      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: deleteCredential
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: string
      responses:
        "404":
          description: Credential not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: Credential deleted
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
      security:
      - bearerAuth: []
  /api/credential-schema/v1/{credentialSchemaId}:
    get:
      tags:
      - credential-schema-controller
      summary: Retrieve a credential schema
      description: Returns a credential schema.
      operationId: getCredentialSchemaById
      parameters:
      - name: credentialSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailCredentialSchemaResponseDTO"
      security:
      - bearerAuth: []
    delete:
      tags:
      - credential-schema-controller
      summary: Delete a credential schema
      description: Deletes a credential schema.
      operationId: deleteCredentialSchemaById
      parameters:
      - name: credentialSchemaId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Credential schema not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
  /api/config/v1:
    get:
      tags:
      - config-controller
      summary: Retrieve the configuration
      description: "Returns the system configuration. Related guide: [API configuration](/reference/api/configuration)"
      operationId: getConfig
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigResponseDTO"
  /api/config/profile/v1:
    get:
      tags:
      - config-controller
      summary: Retrieve available profiles
      description: |
        Returns profiles used for filtering your application for specific
        regulatory and operational frameworks.

        Related guide: [Profiles](/profiles)
      operationId: getProfileConfig
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigProfileResponseDTO"
  /api/certificate/v1/{certificateId}:
    get:
      tags:
      - certificate-controller
      summary: Retrieve a certificate
      description: Returns information about a specified certificate.
      operationId: getCertificateById
      parameters:
      - name: certificateId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Certificate not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailCertificateResponseDTO"
      security:
      - bearerAuth: []
  /api/build-info/v1:
    get:
      tags:
      - build-info-controller
      summary: Retrieve Procivis One version
      description: Returns the Procivis One version.
      operationId: getBuildInfo
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuildInfoResponseDTO"
  /.well-known/jwks.json:
    get:
      tags:
      - well-known-controller
      summary: JWKS
      description: This endpoint provides public keys used for verifying JWT app tokens.
      operationId: getJwks
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/STSJwksResponseDTO"
  /.well-known/assetlinks.json:
    get:
      tags:
      - well-known-controller
      summary: Retrieve Android Asset Links JSON
      description: |
        Returns the Android Asset Links JSON file that establishes the
        relationship between your site and Android applications. This
        file enables App Links functionality, allowing URLs to open
        directly in compatible native apps instead of the browser when
        accessed on Android devices.
      operationId: getAssetLinks
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WellKnownAssetLinksResponseDTO"
  /.well-known/apple-app-site-association:
    get:
      tags:
      - well-known-controller
      summary: Retrieve Apple App Site Association
      description: |
        Returns the Apple App Site Association (AASA) file that establishes
        the relationship between your site and iOS/macOS applications. This
        file enables Universal Links functionality, allowing URLs to open
        directly in compatible native apps instead of the browser when
        accessed on Apple devices.
      operationId: getAppleSiteAssociation
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WellKnownAppleSiteAssociationResponseDTO"
  /api/proof-request/v1/{proofRequestId}/claims:
    delete:
      tags:
      - proof-request-controller
      summary: Delete claim data
      description: "For the specified proof, permanently deletes all claim data which\
        \ the wallet holder shared. The proof request metadata and related history\
        \ entries are still accessible."
      operationId: deleteProofRequestClaims
      parameters:
      - name: proofRequestId
        in: path
        required: true
        schema:
          type: string
      responses:
        "400":
          description: Business rule error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "404":
          description: Proof request not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
      security:
      - bearerAuth: []
components:
  schemas:
    UpdateStsRoleRequestDTO:
      type: object
      properties:
        name:
          type: string
        permissions:
          type: array
          items:
            type: string
    ErrorResponseDTO:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        cause:
          $ref: "#/components/schemas/HttpErrorResponseDTO"
        code:
          type: string
        message:
          type: string
        data: {}
        stackTrace:
          type: string
      required:
      - code
      - message
    HttpErrorResponseDTO:
      type: object
      properties:
        url:
          type: string
        code:
          type: integer
          format: int32
        message:
          type: string
        cause:
          $ref: "#/components/schemas/ProcivisErrorCauseResponseDTO"
      required:
      - message
    ProcivisErrorCauseResponseDTO:
      type: object
      properties:
        url:
          type: string
        code:
          type: integer
          format: int32
        message:
          type: string
    EntityResponseDTO:
      type: object
      properties:
        id:
          type: string
    TrustEntityRequestDTO:
      type: object
      properties:
        name:
          type: string
          description: Specify the entity name.
        didId:
          type: string
          description: Entity id of a DID.
        identifierId:
          type: string
          description: Specify the identifier to add to the trust list.
        logo:
          type: string
          description: base64 encoded image.
        termsUrl:
          type: string
          description: Specify the Terms of Service url.
        website:
          type: string
          description: Specify the entity's domain name.
        privacyUrl:
          type: string
          description: Specify the Privacy Policy url.
        role:
          type: string
          description: |2
              Whether the entity is a trusted issuer, verifier, or both. For certificates,
              whether the CA is trusted to sign for an issuer, a verifier, or both.
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
        type:
          type: string
          description: |
            If passing an identifer via `identiferId` or a certificate via `content`,
            specify the type of entity. If no type is specified the system expects a
            `didId`.
          enum:
          - CA
          - DID
        trustAnchorId:
          type: string
          description: Specify which trust anchor to add the entity to.
        content:
          type: string
          description: "For certificates, put the PEM content here."
      required:
      - name
      - role
      - trustAnchorId
    TrustAnchorRequestDTO:
      type: object
      properties:
        name:
          type: string
          description: Must be unique within the organization.
        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
        publisherReference:
          type: string
          description: "When subscribing to an existing trust anchor, reference the\
            \ anchor here. When publishing a new trust anchor, do not pass a value\
            \ here as the system will generate the reference."
        isPublisher:
          type: boolean
          description: "If true, creates and publishes a trust anchor. If subscribing\
            \ to an existing trust anchor, omit or set to false. The remote anchor\
            \ must be specified via `publisherReference`."
      required:
      - name
      - type
    STSTokenRequestDTO:
      type: object
      properties:
        organisationId:
          type: string
          format: uuid
      required:
      - organisationId
    STSTokenResponseDTO:
      type: object
      properties:
        token:
          type: string
      required:
      - token
    CreateStsRoleRequestDTO:
      type: object
      properties:
        name:
          type: string
        permissions:
          type: array
          items:
            type: string
      required:
      - name
      - permissions
    CreateStsOrganisationRequestDTO:
      type: object
      properties:
        name:
          type: string
        roles:
          type: array
          description: |2
                Array of functional roles that define what actions are allowed in
                this organization.
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
            - WALLET_PROVIDER
        logo:
          type: string
          description: |2
                Logo must not exceed 500 KB in size.
        description:
          type: string
          description: |2
                Optional text description of the organization for administrative reference.
          maxLength: 5000
          minLength: 0
      required:
      - name
      - roles
    CreateStsIamRoleRequestDTO:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
          description: |
            Provide a description of the IAM role.
        organisationRoles:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              format: uuid
          description: |
            This object is a list of organizations, each assigned an array
            of custom roles.
      required:
      - name
    ProofClaimSchemaRequestDTO:
      type: object
      properties:
        id:
          type: string
          description: "The `id` of the attribute being requested, from the `claims`\
            \ object."
        required:
          type: boolean
          description: "If nothing is passed here, the attribute is not required for\
            \ a proof to be valid."
      required:
      - id
    ProofInputSchemaRequestDTO:
      type: object
      properties:
        credentialSchemaId:
          type: string
          description: ID of the credential schema from which the `claimSchemas` object
            is assembled.
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
        claimSchemas:
          type: array
          description: Defines the set of attributes being requested when making proof
            requests using this schema.
          items:
            $ref: "#/components/schemas/ProofClaimSchemaRequestDTO"
          minItems: 1
      required:
      - claimSchemas
      - credentialSchemaId
    ProofSchemaRequestDTO:
      type: object
      properties:
        name:
          type: string
        expireDuration:
          type: integer
          format: int64
          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."
        proofInputSchemas:
          type: array
          items:
            $ref: "#/components/schemas/ProofInputSchemaRequestDTO"
          minItems: 1
      required:
      - name
      - proofInputSchemas
    CoreEntityShareResponseDTO:
      type: object
      properties:
        url:
          type: string
          description: "Share URL, typically encoded as a QR code."
      required:
      - url
    ProofRequestDTO:
      type: object
      properties:
        proofSchemaId:
          type: string
          description: Choose a proof schema to use.
        verifierDid:
          type: string
          deprecated: true
          description: ID of the verifier DID used to request the proof.
        verifier:
          type: string
          format: uuid
          description: Choose an identifier to use when making the request.
        exchange:
          type: string
          deprecated: true
          description: |
            Specify the verification protocol to use for credential exchange. Check the
            `verificationProtocol` object of the configuration for supported options and reference
            the configuration instance.
          example: OPENID4VP_DRAFT20
        protocol:
          type: string
          description: |
            Specify the verification protocol to use for credential exchange. Check the
            `verificationProtocol` object of the configuration for supported options and reference
            the configuration instance.
          example: OPENID4VP_DRAFT20
        scanToVerify:
          $ref: "#/components/schemas/ScanToVerifyDTO"
        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.
        verifierKey:
          type: string
          description: |
            If multiple keys are specified for the authentication method of the DID Identifier, use
            his 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 Identifier
            creation will be used.
        verifierCertificate:
          type: string
          description: |
            If multiple active certificates are available under the verifier, use this value
            to specify which certificate should be used for this proof request. If a certificate
            isn't specified here, an active certificate will be used.
        profile:
          type: string
          description: The profile under which the proof is requested.
      required:
      - proofSchemaId
    ScanToVerifyDTO:
      type: object
      description: Only for use when verifying VC Barcodes.
      properties:
        scanToVerify:
          type: string
          enum:
          - MRZ
          - PDF417
      required:
      - scanToVerify
    OrganisationSwitchRequestDTO:
      type: object
      properties:
        organisation:
          type: string
          format: uuid
          description: ID of the organization to change to.
      required:
      - organisation
    ProviderRequestDTO:
      type: object
      properties:
        proofSchemaId:
          type: string
          format: uuid
          description: The schema used to make the request.
        verifier:
          type: string
          format: uuid
          description: Identifier used for verification.
        acceptedIssuerId:
          type: string
          format: uuid
          description: UUID of the issuer's identifier. Shared credentials must be
            signed by this identifier or login will fail.
        redirectUris:
          type: array
          description: Redirect URI from the OIDC provider.
          items:
            type: string
        name:
          type: string
        subjectMapping:
          type: string
        lastNameMapping:
          type: string
        firstNameMapping:
          type: string
        birthdateMapping:
          type: string
        emailMapping:
          type: string
        phoneNumberMapping:
          type: string
        postLogoutRedirectUris:
          type: array
          items:
            type: string
        displayName:
          type: string
        privacyUrl:
          type: string
        termsUrl:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        clientId:
          type: string
          description: |
            If you have configured your OIDC provider first, use the client ID provided
            by that configuration. Otherwise one will be created.
        clientSecret:
          type: string
          description: |
            If you have configured your OIDC provider first, use the client secret
            provided by that configuration. Otherwise one will be created.
        scopes:
          type: array
          default: "[OPENID, PROFILE]"
          description: Specify OpenID scopes.
          items:
            type: string
            enum:
            - ADDRESS
            - EMAIL
            - OPENID
            - PHONE
            - PROFILE
        grantTypes:
          type: array
          default: AUTHORIZATION_CODE
          description: Specify grant types.
          items:
            type: string
            enum:
            - AUTHORIZATION_CODE
            - CLIENT_CREDENTIALS
            - REFRESH_TOKEN
        logo:
          type: string
      required:
      - acceptedIssuerId
      - name
      - proofSchemaId
      - redirectUris
      - verifier
    CreatedProviderResponseDTO:
      type: object
      properties:
        id:
          type: string
        clientId:
          type: string
        clientSecret:
          type: string
    RegenerateSecretResponseDTO:
      type: object
      properties:
        id:
          type: string
        clientId:
          type: string
        clientSecret:
          type: string
    KeyRequestDTO:
      type: object
      properties:
        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
        keyParams:
          type: object
          additionalProperties:
            type: string
          description: The parameters passed into the key algorithm.
        name:
          type: string
          description: Must be unique within the organization.
        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
        storageParams:
          type: object
          additionalProperties: {}
          description: The parameters passed into the storage type.
      required:
      - keyParams
      - keyType
      - name
      - storageParams
      - storageType
    GenerateCsrRequestDTO:
      type: object
      properties:
        profile:
          type: string
        subject:
          $ref: "#/components/schemas/GenerateCsrSubjectRequestDTO"
      required:
      - profile
      - subject
    GenerateCsrSubjectRequestDTO:
      type: object
      properties:
        commonName:
          type: string
        countryName:
          type: string
        localityName:
          type: string
        organisationName:
          type: string
        serialNumber:
          type: string
        stateOrProvinceName:
          type: string
    GenerateCsrResponseDTO:
      type: object
      properties:
        content:
          type: string
      required:
      - content
    PresentationSubmissionSubmitCredentialRequestDTO:
      type: object
      properties:
        credentialId:
          type: string
          format: uuid
          description: |
            Select a credential.
        submitClaims:
          type: array
          description: |
            `claimSchemaId` of the claim to send from this credential.
          items:
            type: string
      required:
      - credentialId
      - submitClaims
    PresentationSubmitRequestDTO:
      type: object
      properties:
        didId:
          type: string
          format: uuid
        identifierId:
          type: string
          format: uuid
          description: |
            Choose the identifier used in the presented credentials.
        interactionId:
          type: string
          format: uuid
        keyId:
          type: string
          format: uuid
          description: |
            If you are using a DID and it supports multiple keys for authentication,
            specify which key to use. If no key is specified the first suitable key
            listed will be used.
        submitCredentials:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/PresentationSubmissionSubmitCredentialRequestDTO"
          description: |
            Claims to submit.
          minProperties: 1
      required:
      - interactionId
      - submitCredentials
    InteractionRejectRequestDTO:
      type: object
      properties:
        interactionId:
          type: string
          format: uuid
      required:
      - interactionId
    IssuanceAcceptRequestDTO:
      type: object
      properties:
        identifierId:
          type: string
          format: uuid
          description: |
            The identifier chosen here will be used as the subject of the issued
            credential.
        didId:
          type: string
          format: uuid
        interactionId:
          type: string
          format: uuid
        keyId:
          type: string
          format: uuid
          description: |
            If you are using a DID and it supports multiple keys for authentication,
            specify which key to use. If no key is specified the first suitable key
            listed will be used.
        txCode:
          type: string
          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.
      required:
      - interactionId
    InitiateIssuanceAuthorizationDetailRequestDTO:
      type: object
      properties:
        type:
          type: string
        credentialConfigurationId:
          type: string
      required:
      - credentialConfigurationId
      - type
    InitiateIssuanceRequestDTO:
      type: object
      properties:
        protocol:
          type: string
          description: Selected issuance protocol; value from the configuration.
        issuer:
          type: string
          description: Issuer URL
        clientId:
          type: string
        redirectUri:
          type: string
        scope:
          type: array
          items:
            type: string
        authorizationDetails:
          type: array
          items:
            $ref: "#/components/schemas/InitiateIssuanceAuthorizationDetailRequestDTO"
      required:
      - clientId
      - issuer
      - protocol
    InitiateIssuanceResponseDTO:
      type: object
      properties:
        url:
          type: string
      required:
      - url
    HandleInvitationRequestDTO:
      type: object
      properties:
        transport:
          type: array
          description: |
            For configurations with multiple transport protocols enabled you can
            specify which one to use for this interaction.
          example: HTTP
          items:
            type: string
        url:
          type: string
          description: |
            Typically encoded as a QR code or deep link by the issuer or verifier.
          example: https://example.com/credential-offer
      required:
      - url
    HandleInvitationResponseDTO:
      type: object
      properties:
        credentialIds:
          type: array
          description: Offered credential.
          items:
            type: string
            format: uuid
        interactionId:
          type: string
          format: uuid
          description: For reference.
        proofId:
          type: string
          format: uuid
          description: Request for proof.
        txCode:
          $ref: "#/components/schemas/HandleInvitationTxCodeResponseDTO"
          description: |
            Metadata for entering a transaction code.

            If a pre-authorized code is issued with a transaction code, 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.
        authorizationCodeFlowUrl:
          type: string
          description: |
            For issuer-initiated Authorization Code Flows, use this URL to start the
            authorization process with the authorization server.
      required:
      - interactionId
    HandleInvitationTxCodeResponseDTO:
      type: object
      properties:
        inputMode:
          type: string
          enum:
          - NUMERIC
          - TEXT
        length:
          type: integer
          format: int32
        description:
          type: string
      required:
      - inputMode
    ContinueIssuanceRequestDTO:
      type: object
      properties:
        url:
          type: string
          description: |
            Starts with the `redirectUri` and is used to continue the Authorization
            Code Flow issuance process.
          example: myapp://example/credential-offer?code=xxx&clientId=myWallet&...
      required:
      - url
    ContinueIssuanceResponseDTO:
      type: object
      properties:
        credentialIds:
          type: array
          description: Offered credential.
          items:
            type: string
        interactionId:
          type: string
          description: For reference.
        credentialConfigurationsSupported:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/CredentialConfigurationSupportedResponseDTO"
      required:
      - credentialConfigurationsSupported
      - credentialIds
      - interactionId
    CredentialConfigurationSupportedResponseDTO:
      type: object
      properties:
        proofTypesSupported:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ProofTypesSupportedResponseDTO"
    ProofTypesSupportedResponseDTO:
      type: object
      properties:
        proofSigningAlgValuesSupported:
          type: array
          items:
            type: string
    CertificateRequestDTO:
      type: object
      properties:
        name:
          type: string
        chain:
          type: string
        keyId:
          type: string
          format: uuid
      required:
      - chain
      - keyId
    DidKeyAssignmentRequestDTO:
      type: object
      description: Each DID has five verification relationships defining the verification
        method used for different purposes.
      properties:
        authentication:
          type: array
          items:
            type: string
        assertionMethod:
          type: array
          items:
            type: string
        keyAgreement:
          type: array
          items:
            type: string
        capabilityInvocation:
          type: array
          items:
            type: string
        capabilityDelegation:
          type: array
          items:
            type: string
      required:
      - assertionMethod
      - authentication
      - capabilityDelegation
      - capabilityInvocation
      - keyAgreement
    DidRequestDTO:
      type: object
      properties:
        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.
        keys:
          $ref: "#/components/schemas/DidKeyAssignmentRequestDTO"
        params:
          type: object
          additionalProperties: {}
          description: The parameters passed into the DID method.
      required:
      - keys
      - method
      - name
    IdentifierRequestDTO:
      type: object
      properties:
        name:
          type: string
          description: Must be unique within the organization.
        did:
          $ref: "#/components/schemas/DidRequestDTO"
        keyId:
          type: string
          format: uuid
        certificates:
          type: array
          items:
            $ref: "#/components/schemas/CertificateRequestDTO"
      required:
      - name
    ResolveTrustEntityIdentifierRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        certificateId:
          type: string
          format: uuid
      required:
      - id
    ResolveTrustEntityRequestDTO:
      type: object
      properties:
        identifiers:
          type: array
          items:
            $ref: "#/components/schemas/ResolveTrustEntityIdentifierRequestDTO"
          minItems: 1
      required:
      - identifiers
    ListDidResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
        name:
          type: string
        did:
          type: string
        type:
          type: string
          enum:
          - LOCAL
          - REMOTE
        method:
          type: string
        deactivated:
          type: boolean
      required:
      - createdDate
      - deactivated
      - did
      - id
      - lastModified
      - method
      - name
      - type
    ListIdentifierResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        state:
          type: string
          enum:
          - ACTIVE
          - DEACTIVATED
        type:
          type: string
          enum:
          - CERTIFICATE
          - DID
          - KEY
        isRemote:
          type: boolean
      required:
      - createdDate
      - id
      - isRemote
      - lastModified
      - name
      - state
      - type
    ResolvedIdentifierTrustEntityResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: Trust entity ID.
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        logo:
          type: string
        website:
          type: string
        termsUrl:
          type: string
        privacyUrl:
          type: string
        role:
          type: string
          description: The role the entity is trusted to perform.
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
        trustAnchor:
          $ref: "#/components/schemas/TrustAnchorResponseDTO"
        state:
          type: string
          description: The entity's status on the trust anchor.
          enum:
          - ACTIVE
          - REMOVED
          - REMOVED_AND_WITHDRAWN
          - WITHDRAWN
        type:
          type: string
          description: Type of trust entity.
          enum:
          - CA
          - DID
        entityKey:
          type: string
          description: DID value or certificate's `subject`.
        did:
          $ref: "#/components/schemas/ListDidResponseDTO"
          description: DID details.
        identifier:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Identifier details.
        organisationId:
          type: string
          format: uuid
        content:
          type: string
          description: "If `type` is `CA`, the certificate in PEM format."
        ca:
          $ref: "#/components/schemas/TrustEntityX509ResponseDTO"
          description: Human-readable X.509 certificate details.
        certificateIds:
          type: array
          items:
            type: string
            format: uuid
      required:
      - createdDate
      - entityKey
      - id
      - lastModified
      - name
      - organisationId
      - role
      - state
      - trustAnchor
      - type
    TrustAnchorResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        type:
          type: string
        publisherReference:
          type: string
        entities:
          type: integer
          format: int32
        isPublisher:
          type: boolean
      required:
      - createdDate
      - entities
      - id
      - isPublisher
      - lastModified
      - name
      - publisherReference
      - type
    TrustEntityX509ResponseDTO:
      type: object
      properties:
        serialNumber:
          type: string
        notBefore:
          type: string
          format: date-time
        notAfter:
          type: string
          format: date-time
        issuer:
          type: string
        subject:
          type: string
        fingerprint:
          type: string
        extensions:
          type: array
          items:
            $ref: "#/components/schemas/X509ExtensionResponseDTO"
        state:
          type: string
          enum:
          - ACTIVE
          - EXPIRED
          - NOT_YET_ACTIVE
          - REVOKED
        publicKey:
          type: string
        commonName:
          type: string
      required:
      - extensions
      - fingerprint
      - issuer
      - notAfter
      - notBefore
      - publicKey
      - serialNumber
      - state
      - subject
    X509ExtensionResponseDTO:
      type: object
      properties:
        oid:
          type: string
        critical:
          type: boolean
        value:
          type: string
      required:
      - critical
      - oid
      - value
    CredentialClaimRequestDTO:
      type: object
      properties:
        claimId:
          type: string
          description: ID of the attribute from the credential schema.
        value:
          type: string
          description: Claim being assered in issuance.
        path:
          type: string
          description: Path to the particular claim key within the structure of the
            credential schema.
      required:
      - claimId
      - path
      - value
    CredentialRequestDTO:
      type: object
      properties:
        credentialSchemaId:
          type: string
          description: Choose a credential schema to use.
        issuerDid:
          type: string
          deprecated: true
          description: Choose a DID to use as an identifier.
        issuer:
          type: string
          format: uuid
          description: Choose an identifier to use to issue the credential.
        issuerKey:
          type: string
          description: |
            If multiple keys are specified for the assertion method of the DID Identifier,
            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 Identifier creation will be used.
        issuerCertificate:
          type: string
          description: |
            If multiple active certificates are available under the issuer, use this value
            to specify which certificate should be used for this credential. If a certificate
            isn't specified here, an active certificate will be used.
        exchange:
          type: string
          deprecated: true
          description: |
            Issuance protocol to use for issuing the credential to a wallet. Check the
            `issuanceProtocol` object of the configuration for supported options and reference
            the configuration instance.
          example: OPENID4VCI_DRAFT13
        protocol:
          type: string
          description: |
            Issuance protocol to use for issuing the credential to a wallet. Check the
            `issuanceProtocol` object of the configuration for supported options and reference
            the configuration instance.
          example: OPENID4VCI_DRAFT13
        redirectUri:
          type: string
          description: |
            When a credential is accepted, the holder will be redirected to the resource specified here,
            if redirects are enabled in the system configuration. The URI must use a scheme (for example
            `https`, `myapp`) that is allowed by the system configuration.
        claimValues:
          type: array
          description: "Attribute from the credential schema, together with the corresponding\
            \ claim being made."
          items:
            $ref: "#/components/schemas/CredentialClaimRequestDTO"
        profile:
          type: string
          description: The profile under which the credential is issued.
      required:
      - claimValues
      - credentialSchemaId
    SuspendCredentialRequestDTO:
      type: object
      properties:
        suspendEndDate:
          type: string
          format: date-time
          description: "Specify the time when the credential will reactivate, or pass\
            \ `{}` for an indefinite suspension."
    EntityShareResponseDTO:
      type: object
      properties:
        url:
          type: string
          description: "Share URL, typically encoded as a QR code."
        appUrl:
          type: string
          description: |
            Universal Link URL that opens content directly in native iOS/Android
            apps. Requires deep linking configuration via
            [well-known endpoints](../desk/well-known-controller.tag.mdx).")
      required:
      - appUrl
      - url
    CredentialClaimSchemaRequestDTO:
      type: object
      properties:
        key:
          type: string
        required:
          type: boolean
        datatype:
          type: string
          description: |
            The type of data accepted for this attribute. The `DATE` datatype
            only accepts full date-time. See the
            [datatypes](/configure/reference#datatype) guide for
            the full reference of datatypes.
        claims:
          type: array
          description: "If the `datatype` is `OBJECT`, the nested claims go in this\
            \ array. Otherwise this array is empty."
          items:
            $ref: "#/components/schemas/CredentialClaimSchemaRequestDTO"
        array:
          type: boolean
          description: "If `true`, an array can be passed for this attribute during\
            \ issuance."
      required:
      - datatype
      - key
      - required
    CredentialSchemaLayoutBackgroundDTO:
      type: object
      properties:
        color:
          type: string
        image:
          type: string
    CredentialSchemaLayoutCodeDTO:
      type: object
      properties:
        attribute:
          type: string
        type:
          type: string
          enum:
          - BARCODE
          - MRZ
          - QR_CODE
      required:
      - attribute
      - type
    CredentialSchemaLayoutLogoDTO:
      type: object
      properties:
        fontColor:
          type: string
        backgroundColor:
          type: string
        image:
          type: string
    CredentialSchemaLayoutPropertiesDTO:
      type: object
      description: Design the appearance of the credential in the holder's wallet.
      properties:
        background:
          $ref: "#/components/schemas/CredentialSchemaLayoutBackgroundDTO"
        logo:
          $ref: "#/components/schemas/CredentialSchemaLayoutLogoDTO"
        primaryAttribute:
          type: string
        secondaryAttribute:
          type: string
        pictureAttribute:
          type: string
        code:
          $ref: "#/components/schemas/CredentialSchemaLayoutCodeDTO"
    CredentialSchemaRequestDTO:
      type: object
      properties:
        name:
          type: string
        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
        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
        walletStorageType:
          type: string
          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.
          enum:
          - HARDWARE
          - REMOTE_SECURE_ELEMENT
          - SOFTWARE
        layoutType:
          type: string
          description: Determines the general appearance of the credential in the
            holder's wallet and the options supported in `layoutProperties`.
          enum:
          - CARD
          - DOCUMENT
          - SINGLE_ATTRIBUTE
        claims:
          type: array
          description: Defines the claims to be asserted when using this credential
            schema.
          items:
            $ref: "#/components/schemas/CredentialClaimSchemaRequestDTO"
          minItems: 1
        schemaId:
          type: string
          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
        layoutProperties:
          $ref: "#/components/schemas/CredentialSchemaLayoutPropertiesDTO"
        allowSuspension:
          type: boolean
          description: "If `true` and the chosen revocation method allows for suspension,\
            \ credentials issued with this schema can be suspended."
        externalSchema:
          type: boolean
      required:
      - claims
      - format
      - name
      - revocationMethod
    UpdateTrustEntityRequestDTO:
      type: object
      properties:
        logo:
          type: string
        privacyUrl:
          type: string
        website:
          type: string
        name:
          type: string
        termsUrl:
          type: string
        role:
          type: string
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
        action:
          type: string
          enum:
          - ACTIVATE
          - ADMIN_ACTIVATE
          - REMOVE
          - WITHDRAW
    UpdateStsOrganisationRequestDTO:
      type: object
      properties:
        name:
          type: string
        roles:
          type: array
          description: |2
                Array of functional roles that define what actions are allowed in
                this organization.
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
            - WALLET_PROVIDER
        logo:
          type: string
          description: |2
                Logo must not exceed 500 KB in size.
        description:
          type: string
          description: |2
                Optional text description of the organization for administrative reference.
          maxLength: 5000
          minLength: 0
        deactivate:
          type: boolean
          description: |2
                Set to `true` to deactivate the organization and suspend all user access.
                Can be reactivated by setting to `false`.
    UpdateStsIamRoleRequestDTO:
      type: object
      properties:
        name:
          type: string
        organisationRoles:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              format: uuid
        description:
          type: string
    ProfileRequestDTO:
      type: object
      properties:
        organisation:
          type: string
          description: Update the active organization.
        language:
          type: string
          description: Update the language setting of the user.
        homepage:
          type: string
          description: Update the landing page of the user on log in.
        credentialLoginEnabled:
          type: boolean
          description: |-
            If true, the system creates and issues a login credential, returning a share URL and storing
            the credential in the user session and in Keycloak. If a login credential already existed
            it is revoked before the new credential is issued.

            If false, any login credential stored in the user session is revoked and removed
            from the session and from Keycloak.
        profile:
          type: string
    ProfileUpdateResponseDTO:
      type: object
      properties:
        loginCredentialUrl:
          $ref: "#/components/schemas/EntityShareResponseDTO"
          description: "Share URL for frontend to display, to issue login credential\
            \ to user."
        credentialId:
          type: string
    UpdateProviderRequestDTO:
      type: object
      properties:
        clientSecret:
          type: string
        scopes:
          type: array
          items:
            type: string
            enum:
            - ADDRESS
            - EMAIL
            - OPENID
            - PHONE
            - PROFILE
        grantTypes:
          type: array
          items:
            type: string
            enum:
            - AUTHORIZATION_CODE
            - CLIENT_CREDENTIALS
            - REFRESH_TOKEN
        logo:
          type: string
        verifier:
          type: string
          format: uuid
        acceptedIssuerId:
          type: string
          format: uuid
        redirectUris:
          type: array
          items:
            type: string
        subjectMapping:
          type: string
        lastNameMapping:
          type: string
        firstNameMapping:
          type: string
        birthdateMapping:
          type: string
        emailMapping:
          type: string
        phoneNumberMapping:
          type: string
        postLogoutRedirectUris:
          type: array
          items:
            type: string
        displayName:
          type: string
        privacyUrl:
          type: string
        termsUrl:
          type: string
    DidPatchRequestDTO:
      type: object
      properties:
        deactivated:
          type: boolean
    exact:
      type: array
      description: Set which filters apply in an exact way.
      enum:
      - name
      items:
        type: string
        description: Set which filters apply in an exact way.
        enum:
        - name
    ListWalletUnitResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        name:
          type: string
        os:
          type: string
          enum:
          - ANDROID
          - IOS
          - WEB
        status:
          type: string
          enum:
          - ACTIVE
          - ERROR
          - PENDING
          - REVOKED
        walletProviderType:
          type: string
    SearchEntityResponseDTOListWalletUnitResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListWalletUnitResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailWalletUnitResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        name:
          type: string
        os:
          type: string
          enum:
          - ANDROID
          - IOS
          - WEB
        status:
          type: string
          enum:
          - ACTIVE
          - ERROR
          - PENDING
          - REVOKED
        walletProviderType:
          type: string
        publicKey:
          type: string
    ListTrustEntityResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: Trust entity ID.
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        logo:
          type: string
        website:
          type: string
        termsUrl:
          type: string
        privacyUrl:
          type: string
        role:
          type: string
          description: The role the entity is trusted to perform.
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
        trustAnchor:
          $ref: "#/components/schemas/TrustAnchorResponseDTO"
          description: Trust anchor details.
        state:
          type: string
          description: The entity's status on the trust anchor.
          enum:
          - ACTIVE
          - REMOVED
          - REMOVED_AND_WITHDRAWN
          - WITHDRAWN
        type:
          type: string
          description: Type of trust entity.
          enum:
          - CA
          - DID
        entityKey:
          type: string
          description: DID value or certificate's `subject`.
      required:
      - createdDate
      - entityKey
      - id
      - lastModified
      - name
      - role
      - state
      - trustAnchor
      - type
    SearchEntityResponseDTOListTrustEntityResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListTrustEntityResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailTrustEntityResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: Trust entity ID.
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        logo:
          type: string
        website:
          type: string
        termsUrl:
          type: string
        privacyUrl:
          type: string
        role:
          type: string
          description: The role the entity is trusted to perform.
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
        trustAnchor:
          $ref: "#/components/schemas/TrustAnchorResponseDTO"
        state:
          type: string
          description: The entity's status on the trust anchor.
          enum:
          - ACTIVE
          - REMOVED
          - REMOVED_AND_WITHDRAWN
          - WITHDRAWN
        type:
          type: string
          description: Type of trust entity.
          enum:
          - CA
          - DID
        entityKey:
          type: string
          description: DID value or certificate's `subject`.
        did:
          $ref: "#/components/schemas/ListDidResponseDTO"
          description: DID details.
        identifier:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Identifier details.
        organisationId:
          type: string
          format: uuid
        content:
          type: string
          description: "If `type` is `CA`, the certificate in PEM format."
        ca:
          $ref: "#/components/schemas/TrustEntityX509ResponseDTO"
          description: Human-readable X.509 certificate details.
      required:
      - createdDate
      - entityKey
      - id
      - lastModified
      - name
      - organisationId
      - role
      - state
      - trustAnchor
      - type
    SearchEntityResponseDTOTrustAnchorResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/TrustAnchorResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    ListStsRoleResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
      required:
      - createdDate
      - id
      - lastModified
      - name
    SearchEntityResponseDTOListStsRoleResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListStsRoleResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailStsRoleResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        permissions:
          type: array
          items:
            type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
      required:
      - createdDate
      - id
      - lastModified
      - name
      - permissions
    ListStsOrganisationResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        logo:
          type: string
        deactivatedAt:
          type: string
          format: date-time
        roles:
          type: array
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
            - WALLET_PROVIDER
      required:
      - createdDate
      - id
      - lastModified
      - name
      - roles
    SearchEntityResponseDTOListStsOrganisationResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListStsOrganisationResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailStsOrganisationResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        logo:
          type: string
        deactivatedAt:
          type: string
          format: date-time
        roles:
          type: array
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
            - WALLET_PROVIDER
        description:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - name
      - roles
    ListStsIamRoleResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        organisations:
          type: array
          items:
            $ref: "#/components/schemas/NestedStsOrganisationResponseDTO"
      required:
      - createdDate
      - id
      - lastModified
      - name
      - organisations
    NestedStsOrganisationResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deactivatedAt:
          type: string
          format: date-time
        roles:
          type: array
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - VERIFIER
            - WALLET_PROVIDER
        stsRoles:
          type: array
          items:
            $ref: "#/components/schemas/ListStsRoleResponseDTO"
      required:
      - createdDate
      - id
      - lastModified
      - name
      - roles
      - stsRoles
    SearchEntityResponseDTOListStsIamRoleResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListStsIamRoleResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailStsIamRoleResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        organisations:
          type: array
          items:
            $ref: "#/components/schemas/NestedStsOrganisationResponseDTO"
        description:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - name
      - organisations
    ids:
      type: array
      description: Filter by specific UUIDs.
      items:
        type: string
        description: Filter by specific UUIDs.
    formats:
      type: array
      description: Return only proof schemas which use the specified credential formats.
      items:
        type: string
        description: Return only proof schemas which use the specified credential
          formats.
    ListProofSchemaResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        name:
          type: string
        id:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - name
    SearchEntityResponseDTOListProofSchemaResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListProofSchemaResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailProofSchemaResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        id:
          type: string
        organisationId:
          type: string
        expireDuration:
          type: integer
          format: int64
          description: "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."
        proofInputSchemas:
          type: array
          items:
            $ref: "#/components/schemas/ProofInputSchemaResponseDTO"
      required:
      - createdDate
      - expireDuration
      - id
      - lastModified
      - name
      - organisationId
      - proofInputSchemas
    ListCredentialSchemaResponseDTO:
      type: object
      description: Credential schema details.
      properties:
        name:
          type: string
        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
        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
        walletStorageType:
          type: string
          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.
          enum:
          - HARDWARE
          - REMOTE_SECURE_ELEMENT
          - SOFTWARE
        layoutType:
          type: string
          description: Determines the general appearance of the credential in the
            holder's wallet and the options supported in `layoutProperties`.
          enum:
          - CARD
          - DOCUMENT
          - SINGLE_ATTRIBUTE
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          type: string
          description: Part of the `credentialSchema` property.
        allowSuspension:
          type: boolean
          description: "If `true` and the chosen revocation method allows for suspension,\
            \ credentials issued with this schema can be suspended."
        externalSchema:
          type: boolean
      required:
      - allowSuspension
      - createdDate
      - externalSchema
      - format
      - id
      - lastModified
      - name
      - revocationMethod
      - schemaId
      - schemaType
    ProofClaimSchemaNestedResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        required:
          type: boolean
        key:
          type: string
        dataType:
          type: string
        array:
          type: boolean
        claims: {}
      required:
      - array
      - claims
      - createdDate
      - dataType
      - id
      - key
      - lastModified
      - required
    ProofInputSchemaResponseDTO:
      type: object
      properties:
        credentialSchema:
          $ref: "#/components/schemas/ListCredentialSchemaResponseDTO"
        claimSchemas:
          type: array
          description: Defines the set of attributes being requested when making proof
            requests using this schema.
          items:
            $ref: "#/components/schemas/ProofClaimSchemaNestedResponseDTO"
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
      required:
      - claimSchemas
      - credentialSchema
    proofSchemaIds:
      type: array
      description: Filter proof requests by their associated proof schema. Pass an
        array of UUID strings.
      items:
        type: string
        description: Filter proof requests by their associated proof schema. Pass
          an array of UUID strings.
    proofStates:
      type: array
      description: Return proof requests according to their current state.
      items:
        type: string
        description: Return proof requests according to their current state.
        enum:
        - ACCEPTED
        - CREATED
        - ERROR
        - PENDING
        - REJECTED
        - REQUESTED
        - RETRACTED
    proofRoles:
      type: array
      description: Filter proof requests by whether the system is the holder in the
        interaction or the verifier.
      enum:
      - VERIFIER
      - HOLDER
      items:
        type: string
        description: Filter proof requests by whether the system is the holder in
          the interaction or the verifier.
        enum:
        - VERIFIER
        - HOLDER
    ListProofResponseDTO:
      type: object
      properties:
        schema:
          $ref: "#/components/schemas/ListProofSchemaResponseDTO"
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        state:
          type: string
          description: The state representation of the proof request in the system.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - PENDING
          - REJECTED
          - REQUESTED
          - RETRACTED
        requestedDate:
          type: string
          format: date-time
          description: When proof request state changed from `PENDING` to `REQUESTED`.
            Not supported in all exchange protocols.
        completedDate:
          type: string
          format: date-time
          description: When holder submitted valid proof.
        verifier:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
        id:
          type: string
        transport:
          type: string
        protocol:
          type: string
        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.
        profile:
          type: string
          description: The profile under which the proof is requested.
      required:
      - createdDate
      - id
      - lastModified
      - protocol
      - state
      - transport
    SearchEntityResponseDTOListProofResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListProofResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    CredentialClaimSchemaResponseDTO:
      type: object
      description: Credential schema attribute to which the claim corresponds.
      properties:
        key:
          type: string
        required:
          type: boolean
        datatype:
          type: string
          description: |
            The type of data accepted for this attribute. The `DATE` datatype
            only accepts full date-time. See the
            [datatypes](/configure/reference#datatype) guide for
            the full reference of datatypes.
        claims:
          type: array
          description: "If the `datatype` is `OBJECT`, the nested claims go in this\
            \ array. Otherwise this array is empty."
          items:
            $ref: "#/components/schemas/CredentialClaimSchemaResponseDTO"
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
        array:
          type: boolean
      required:
      - array
      - createdDate
      - datatype
      - id
      - key
      - lastModified
      - required
    CredentialSchemaResponseDTO:
      type: object
      properties:
        name:
          type: string
        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
        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
        walletStorageType:
          type: string
          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.
          enum:
          - HARDWARE
          - REMOTE_SECURE_ELEMENT
          - SOFTWARE
        layoutType:
          type: string
          description: Determines the general appearance of the credential in the
            holder's wallet and the options supported in `layoutProperties`.
          enum:
          - CARD
          - DOCUMENT
          - SINGLE_ATTRIBUTE
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          type: string
          description: Part of the `credentialSchema` property.
        allowSuspension:
          type: boolean
          description: "If `true` and the chosen revocation method allows for suspension,\
            \ credentials issued with this schema can be suspended."
        externalSchema:
          type: boolean
        organisationId:
          type: string
        layoutProperties:
          $ref: "#/components/schemas/CredentialSchemaLayoutPropertiesDTO"
          description: Design properties of the credential.
      required:
      - allowSuspension
      - createdDate
      - externalSchema
      - format
      - id
      - lastModified
      - name
      - revocationMethod
      - schemaId
      - schemaType
    DetailCertificateResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        state:
          type: string
          enum:
          - ACTIVE
          - EXPIRED
          - NOT_YET_ACTIVE
          - REVOKED
        name:
          type: string
        chain:
          type: string
        key:
          $ref: "#/components/schemas/ListKeyResponseDTO"
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        x509Attributes:
          $ref: "#/components/schemas/X509ResponseDTO"
        organisationId:
          type: string
      required:
      - chain
      - createdDate
      - id
      - key
      - lastModified
      - name
      - organisationId
      - state
      - x509Attributes
    DetailClaimResponseDTOCredentialClaimSchemaResponseDTO:
      type: object
      properties:
        value:
          description: The value of a claim can be a String or JSON Array
        schema:
          $ref: "#/components/schemas/CredentialClaimSchemaResponseDTO"
        path:
          type: string
      required:
      - path
      - schema
    DetailClaimResponseDTOProofClaimSchemaResponseDTO:
      type: object
      properties:
        value:
          description: The value of a claim can be a String or JSON Array
        schema:
          $ref: "#/components/schemas/ProofClaimSchemaResponseDTO"
        path:
          type: string
      required:
      - path
      - schema
    DetailCredentialResponseDTO:
      type: object
      description: The credentials exchanged as part of the successfully shared proof.
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        issuanceDate:
          type: string
          format: date-time
        revocationDate:
          type: string
          format: date-time
        lvvcIssuanceDate:
          type: string
          format: date-time
          description: When the current LVVC was issued.
        suspendEndDate:
          type: string
          format: date-time
          description: The time when the credential is set to automatically reactivate.
        state:
          type: string
          description: The current state representation of the credential.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - OFFERED
          - PENDING
          - REJECTED
          - REVOKED
          - SUSPENDED
        issuer:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Identifier of the issuer.
        holder:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Identifier of the holder.
        issuerCertificate:
          $ref: "#/components/schemas/DetailCertificateResponseDTO"
          description: Certificate details if issuer is using an X.509.
        redirectUri:
          type: string
        lastModified:
          type: string
          format: date-time
        role:
          type: string
          description: The role the system has in relation to the credential.
          enum:
          - HOLDER
          - ISSUER
          - VERIFIER
        schema:
          $ref: "#/components/schemas/CredentialSchemaResponseDTO"
        claims:
          type: array
          description: |
            Claims made by issuer. During the credential offer phase this will be empty unless
            the issuer has provided preview values.
          items:
            $ref: "#/components/schemas/DetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
        mdocMsoValidity:
          $ref: "#/components/schemas/MdocMsoValidityResponseDTO"
        exchange:
          type: string
          deprecated: true
        protocol:
          type: string
        profile:
          type: string
          description: The profile under which the credential is issued.
      required:
      - claims
      - createdDate
      - id
      - lastModified
      - protocol
      - role
      - schema
      - state
    DetailProofResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        state:
          type: string
          description: The state representation of the proof request.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - PENDING
          - REJECTED
          - REQUESTED
          - RETRACTED
        verifier:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
        verifierCertificate:
          $ref: "#/components/schemas/DetailCertificateResponseDTO"
        holder:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
        exchange:
          type: string
          deprecated: true
          description: Exchange protocol used.
        protocol:
          type: string
          description: Verification protocol used.
        requestedDate:
          type: string
          format: date-time
          description: When proof request state changed from `PENDING` to `REQUESTED`.
            Not supported in all exchange protocols.
        completedDate:
          type: string
          format: date-time
          description: When holder submitted valid proof.
        redirectUri:
          type: string
          description: "When a shared proof is accepted, the holder is redirected\
            \ to the resource specified here."
        id:
          type: string
        organisationId:
          type: string
        schema:
          $ref: "#/components/schemas/ListProofSchemaResponseDTO"
        proofInputs:
          type: array
          items:
            $ref: "#/components/schemas/ProofInputResponseDTO"
        transport:
          type: string
        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.
        claimsRemovedAt:
          type: string
          format: date-time
        profile:
          type: string
          description: The profile under which the proof is requested.
      required:
      - createdDate
      - id
      - lastModified
      - organisationId
      - proofInputs
      - protocol
      - state
      - transport
    ListKeyResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        publicKey:
          type: string
        keyType:
          type: string
          description: Corresponds to the associated `property name*` in the `keyAlgorithm`
            object of the configuration.
        storageType:
          type: string
          description: Corresponds to the associated `property name*` in the `keyStorage`
            object of the configuration.
        isRemote:
          type: boolean
      required:
      - createdDate
      - id
      - keyType
      - lastModified
      - name
      - publicKey
      - storageType
    MdocMsoValidityResponseDTO:
      type: object
      properties:
        expiration:
          type: string
          format: date-time
        nextUpdate:
          type: string
          format: date-time
        lastUpdate:
          type: string
          format: date-time
      required:
      - expiration
      - lastUpdate
      - nextUpdate
    ProofClaimSchemaResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        required:
          type: boolean
        key:
          type: string
        dataType:
          type: string
        array:
          type: boolean
      required:
      - array
      - createdDate
      - dataType
      - id
      - key
      - lastModified
      - required
    ProofInputResponseDTO:
      type: object
      properties:
        claims:
          type: array
          description: The set of claims being asserted by the credential shared during
            the proof request.
          items:
            $ref: "#/components/schemas/DetailClaimResponseDTOProofClaimSchemaResponseDTO"
        credential:
          $ref: "#/components/schemas/DetailCredentialResponseDTO"
        validityConstraint:
          type: integer
          format: int64
          description: Defines the maximum age at which an LVVC will be validated.
        credentialSchema:
          $ref: "#/components/schemas/ListCredentialSchemaResponseDTO"
      required:
      - claims
      - credential
      - credentialSchema
    X509ResponseDTO:
      type: object
      properties:
        serialNumber:
          type: string
        notBefore:
          type: string
          format: date-time
        notAfter:
          type: string
          format: date-time
        issuer:
          type: string
        subject:
          type: string
        fingerprint:
          type: string
        extensions:
          type: array
          items:
            $ref: "#/components/schemas/X509ExtensionResponseDTO"
        state:
          type: string
          enum:
          - ACTIVE
          - EXPIRED
          - NOT_YET_ACTIVE
          - REVOKED
      required:
      - extensions
      - fingerprint
      - issuer
      - notAfter
      - notBefore
      - serialNumber
      - state
      - subject
    PresentationDefinitionRequestGroupResponseDTO:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        purpose:
          type: string
        requestedCredentials:
          type: array
          items:
            $ref: "#/components/schemas/RequestGroupRequestedCredentialsResponseDTO"
          minItems: 1
        rule:
          $ref: "#/components/schemas/RequestGroupRuleResponseDTO"
      required:
      - id
      - requestedCredentials
      - rule
    PresentationDefinitionResponseDTO:
      type: object
      properties:
        credentials:
          type: array
          items:
            $ref: "#/components/schemas/DetailCredentialResponseDTO"
          minItems: 1
        requestGroups:
          type: array
          items:
            $ref: "#/components/schemas/PresentationDefinitionRequestGroupResponseDTO"
          minItems: 1
      required:
      - credentials
      - requestGroups
    RequestGroupRequestedCredentialsResponseDTO:
      type: object
      properties:
        applicableCredentials:
          type: array
          items:
            type: string
        id:
          type: string
        inapplicableCredentials:
          type: array
          items:
            type: string
        name:
          type: string
        purpose:
          type: string
        validityCredentialNbf:
          type: string
          format: date-time
        fields:
          type: array
          items:
            $ref: "#/components/schemas/RequestedCredentialsFieldResponseDTO"
      required:
      - applicableCredentials
      - fields
      - id
    RequestGroupRuleResponseDTO:
      type: object
      properties:
        count:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
        min:
          type: integer
          format: int32
        type:
          type: string
      required:
      - type
    RequestedCredentialsFieldResponseDTO:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        purpose:
          type: string
        required:
          type: boolean
        keyMap:
          type: object
          additionalProperties:
            type: string
      required:
      - id
      - keyMap
    ProfileResponseDTO:
      type: object
      properties:
        email:
          type: string
          description: Email address of the user.
        firstName:
          type: string
          description: First name of the user.
        lastName:
          type: string
          description: Last name of the user.
        organisation:
          type: string
          description: ID of the organization in which the user is currently active.
        language:
          type: string
          description: "Language setting of the user, passed to the frontend."
        homepage:
          type: string
          description: Landing page when the user logs in.
        isAdmin:
          type: boolean
          description: Whether the user is an admin in this organization.
        credentialLoginEnabled:
          type: boolean
          description: Whether login with credential feature is enabled.
        profile:
          type: string
        sub:
          type: string
    OrganisationResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: ID of the organization.
        name:
          type: string
        displayName:
          type: string
          description: Passed to the frontend for the UI.
        isActive:
          type: boolean
          description: Whether the user is currently in this organization.
        permissions:
          type: array
          description: Permissions granted in this organization.
          items:
            type: string
            enum:
            - CREDENTIAL_DELETE
            - CREDENTIAL_DETAIL
            - CREDENTIAL_ISSUE
            - CREDENTIAL_LIST
            - CREDENTIAL_REACTIVATE
            - CREDENTIAL_REVOKE
            - CREDENTIAL_SCHEMA_CREATE
            - CREDENTIAL_SCHEMA_DELETE
            - CREDENTIAL_SCHEMA_DETAIL
            - CREDENTIAL_SCHEMA_LIST
            - CREDENTIAL_SCHEMA_SHARE
            - CREDENTIAL_SHARE
            - CREDENTIAL_SUSPEND
            - DID_CREATE
            - DID_DEACTIVATE
            - DID_DETAIL
            - DID_LIST
            - DID_RESOLVE
            - HISTORY_DETAIL
            - HISTORY_LIST
            - HOLDER_CREDENTIAL_LIST
            - IDENTIFIER_CREATE
            - IDENTIFIER_DELETE
            - IDENTIFIER_DETAIL
            - IDENTIFIER_LIST
            - INTERACTION_ISSUANCE
            - INTERACTION_PROOF
            - KEY_CREATE
            - KEY_DETAIL
            - KEY_GENERATE_CSR
            - KEY_LIST
            - OPENID_PROVIDER_CREATE
            - OPENID_PROVIDER_DELETE
            - OPENID_PROVIDER_DETAIL
            - OPENID_PROVIDER_EDIT
            - OPENID_PROVIDER_LIST
            - PROOF_CLAIMS_DELETE
            - PROOF_DELETE
            - PROOF_DETAIL
            - PROOF_ISSUE
            - PROOF_LIST
            - PROOF_SCHEMA_CREATE
            - PROOF_SCHEMA_DELETE
            - PROOF_SCHEMA_DETAIL
            - PROOF_SCHEMA_LIST
            - PROOF_SCHEMA_SHARE
            - PROOF_SHARE
            - STS_IAM_ROLE_CREATE
            - STS_IAM_ROLE_DELETE
            - STS_IAM_ROLE_DETAIL
            - STS_IAM_ROLE_EDIT
            - STS_IAM_ROLE_LIST
            - STS_ORGANISATION_CREATE
            - STS_ORGANISATION_DELETE
            - STS_ORGANISATION_DETAIL
            - STS_ORGANISATION_EDIT
            - STS_ORGANISATION_LIST
            - STS_ROLE_CREATE
            - STS_ROLE_DELETE
            - STS_ROLE_DETAIL
            - STS_ROLE_EDIT
            - STS_ROLE_LIST
            - TRUST_ANCHOR_CREATE
            - TRUST_ANCHOR_DELETE
            - TRUST_ANCHOR_DETAIL
            - TRUST_ANCHOR_LIST
            - TRUST_ENTITY_ACTIVATE
            - TRUST_ENTITY_CREATE
            - TRUST_ENTITY_DETAIL
            - TRUST_ENTITY_EDIT
            - TRUST_ENTITY_LIST
            - TRUST_ENTITY_REMOVE
            - TRUST_ENTITY_WITHDRAW
            - WALLET_UNIT_DETAIL
            - WALLET_UNIT_LIST
          uniqueItems: true
        logo:
          type: string
    ListProviderResponseDTO:
      type: object
      properties:
        proofSchemaId:
          type: string
          format: uuid
          description: The schema used to make the request.
        verifier:
          type: string
          format: uuid
          description: Identifier used for verification.
        acceptedIssuerId:
          type: string
          format: uuid
          description: UUID of the issuer's identifier. Shared credentials must be
            signed by this identifier or login will fail.
        redirectUris:
          type: array
          description: Redirect URI from the OIDC provider.
          items:
            type: string
        name:
          type: string
        subjectMapping:
          type: string
        lastNameMapping:
          type: string
        firstNameMapping:
          type: string
        birthdateMapping:
          type: string
        emailMapping:
          type: string
        phoneNumberMapping:
          type: string
        postLogoutRedirectUris:
          type: array
          items:
            type: string
        displayName:
          type: string
        privacyUrl:
          type: string
        termsUrl:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        clientId:
          type: string
        scopes:
          type: array
          items:
            type: string
            enum:
            - ADDRESS
            - EMAIL
            - OPENID
            - PHONE
            - PROFILE
        grantTypes:
          type: array
          items:
            type: string
            enum:
            - AUTHORIZATION_CODE
            - CLIENT_CREDENTIALS
            - REFRESH_TOKEN
        organisationId:
          type: string
      required:
      - acceptedIssuerId
      - clientId
      - grantTypes
      - id
      - name
      - organisationId
      - proofSchemaId
      - redirectUris
      - scopes
      - verifier
    SearchEntityResponseDTOListProviderResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListProviderResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailProviderResponseDTO:
      type: object
      properties:
        proofSchemaId:
          type: string
          format: uuid
          description: The schema used to make the request.
        verifier:
          type: string
          format: uuid
          description: Identifier used for verification.
        acceptedIssuerId:
          type: string
          format: uuid
          description: UUID of the issuer's identifier. Shared credentials must be
            signed by this identifier or login will fail.
        redirectUris:
          type: array
          description: Redirect URI from the OIDC provider.
          items:
            type: string
        name:
          type: string
        subjectMapping:
          type: string
        lastNameMapping:
          type: string
        firstNameMapping:
          type: string
        birthdateMapping:
          type: string
        emailMapping:
          type: string
        phoneNumberMapping:
          type: string
        postLogoutRedirectUris:
          type: array
          items:
            type: string
        displayName:
          type: string
        privacyUrl:
          type: string
        termsUrl:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        clientId:
          type: string
        scopes:
          type: array
          items:
            type: string
            enum:
            - ADDRESS
            - EMAIL
            - OPENID
            - PHONE
            - PROFILE
        grantTypes:
          type: array
          items:
            type: string
            enum:
            - AUTHORIZATION_CODE
            - CLIENT_CREDENTIALS
            - REFRESH_TOKEN
        organisationId:
          type: string
        logo:
          type: string
        discoveryUrl:
          type: string
      required:
      - acceptedIssuerId
      - clientId
      - grantTypes
      - id
      - name
      - proofSchemaId
      - redirectUris
      - scopes
      - verifier
    keyTypes:
      type: array
      description: Return only keys of the specified algorithms.
      items:
        type: string
        description: Return only keys of the specified algorithms.
        enum:
        - BBS_PLUS
        - DILITHIUM
        - ECDSA
        - EDDSA
    keyStorages:
      type: array
      description: |
        Return only keys stored in the specified storage types.
        Possible values come from your configuration.
      items:
        type: string
        description: |
          Return only keys stored in the specified storage types.
          Possible values come from your configuration.
        enum:
        - AZURE_VAULT
        - INTERNAL
        - PKCS11
        - SECURE_ELEMENT
    SearchEntityResponseDTOListKeyResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListKeyResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailKeyResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        publicKey:
          type: string
        keyType:
          type: string
          description: Corresponds to the associated `property name*` in the `keyAlgorithm`
            object of the configuration.
        storageType:
          type: string
          description: Corresponds to the associated `property name*` in the `keyStorage`
            object of the configuration.
        isRemote:
          type: boolean
        organisationId:
          type: string
      required:
      - createdDate
      - id
      - keyType
      - lastModified
      - name
      - organisationId
      - publicKey
      - storageType
    keyAlgorithms:
      type: array
      description: |
        Return only keys or DIDs whose keys use the specified algorithm. Check the
        `keyAlgorithm` object of the configuration for supported options.
      items:
        type: string
        description: |
          Return only keys or DIDs whose keys use the specified algorithm. Check the
          `keyAlgorithm` object of the configuration for supported options.
        enum:
        - BBS_PLUS
        - DILITHIUM
        - ECDSA
        - EDDSA
    keyRoles:
      type: array
      items:
        type: string
        enum:
        - ASSERTION_METHOD
        - AUTHENTICATION
        - CAPABILITY_DELEGATION
        - CAPABILITY_INVOCATION
        - KEY_AGREEMENT
        - UPDATE_KEY
        - VERIFICATION_METHOD
    didMethods:
      type: array
      description: Return only identifiers using the certain did method.
      enum:
      - WEB
      - KEY
      - WEBVH
      - JWK
      - MDL
      items:
        type: string
        description: Return only identifiers using the certain did method.
        enum:
        - WEB
        - KEY
        - WEBVH
        - JWK
        - MDL
    types:
      type: array
      description: Return only identifiers of certain types.
      enum:
      - KEY
      - DID
      - CERTIFICATE
      items:
        type: string
        description: Return only identifiers of certain types.
        enum:
        - CERTIFICATE
        - DID
        - KEY
        - KEY
        - DID
        - CERTIFICATE
    SearchEntityResponseDTOListIdentifierResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListIdentifierResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailDidResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        id:
          type: string
        name:
          type: string
        organisationId:
          type: string
        did:
          type: string
        type:
          type: string
          description: Whether a DID was locally created or is the DID of a remote
            wallet.
          enum:
          - LOCAL
          - REMOTE
        method:
          type: string
          description: The DID method of the DID. Corresponds to the `property name*`
            of the associated `did` object of the configuration.
        keys:
          $ref: "#/components/schemas/DidKeyAssignmentResponseDTO"
        deactivated:
          type: boolean
      required:
      - createdDate
      - deactivated
      - did
      - id
      - keys
      - lastModified
      - method
      - name
      - type
    DetailIdentifierResponseDTO:
      type: object
      properties:
        id:
          type: string
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        state:
          type: string
          enum:
          - ACTIVE
          - DEACTIVATED
        type:
          type: string
          enum:
          - CERTIFICATE
          - DID
          - KEY
        isRemote:
          type: boolean
        organisationId:
          type: string
        did:
          $ref: "#/components/schemas/DetailDidResponseDTO"
        key:
          $ref: "#/components/schemas/DetailKeyResponseDTO"
        certificates:
          type: array
          items:
            $ref: "#/components/schemas/ListCertificateResponseDTO"
      required:
      - createdDate
      - id
      - isRemote
      - lastModified
      - name
      - state
      - type
    DidKeyAssignmentResponseDTO:
      type: object
      description: "The key, or keys, defining the verification relationships of the\
        \ DID."
      properties:
        authentication:
          type: array
          items:
            $ref: "#/components/schemas/DetailKeyResponseDTO"
        assertionMethod:
          type: array
          items:
            $ref: "#/components/schemas/DetailKeyResponseDTO"
        keyAgreement:
          type: array
          items:
            $ref: "#/components/schemas/DetailKeyResponseDTO"
        capabilityInvocation:
          type: array
          items:
            $ref: "#/components/schemas/DetailKeyResponseDTO"
        capabilityDelegation:
          type: array
          items:
            $ref: "#/components/schemas/DetailKeyResponseDTO"
      required:
      - assertionMethod
      - authentication
      - capabilityDelegation
      - capabilityInvocation
      - keyAgreement
    ListCertificateResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        state:
          type: string
          enum:
          - ACTIVE
          - EXPIRED
          - NOT_YET_ACTIVE
          - REVOKED
        name:
          type: string
        chain:
          type: string
        key:
          $ref: "#/components/schemas/ListKeyResponseDTO"
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
      required:
      - chain
      - createdDate
      - id
      - key
      - lastModified
      - name
      - state
    entityTypes:
      type: array
      description: Return only events associated with the specified entity type(s).
        `PROVIDER` and `INTERACTION` apply only if `source = BRIDGE`.
      enum:
      - KEY
      - DID
      - CREDENTIAL
      - CREDENTIAL_SCHEMA
      - PROOF
      - PROOF_SCHEMA
      - ORGANISATION
      - PROVIDER
      - INTERACTION
      - BACKUP
      - TRUST_ANCHOR
      - TRUST_ENTITY
      items:
        type: string
        description: Return only events associated with the specified entity type(s).
          `PROVIDER` and `INTERACTION` apply only if `source = BRIDGE`.
        enum:
        - BACKUP
        - CERTIFICATE
        - CREDENTIAL
        - CREDENTIAL_SCHEMA
        - DID
        - IDENTIFIER
        - INTERACTION
        - KEY
        - ORGANISATION
        - PROOF
        - PROOF_SCHEMA
        - PROVIDER
        - TRUST_ANCHOR
        - TRUST_ENTITY
        - WALLET_UNIT
        - WALLET_UNIT_ATTESTATION
        - KEY
        - DID
        - CREDENTIAL
        - CREDENTIAL_SCHEMA
        - PROOF
        - PROOF_SCHEMA
        - ORGANISATION
        - PROVIDER
        - INTERACTION
        - BACKUP
        - TRUST_ANCHOR
        - TRUST_ENTITY
    actions:
      type: array
      description: Filter by event action.
      enum:
      - ACCEPTED
      - CREATED
      - DEACTIVATED
      - DELETED
      - ERRORED
      - ISSUED
      - OFFERED
      - REACTIVATED
      - REJECTED
      - REQUESTED
      - REVOKED
      - PENDING
      - SUSPENDED
      - RESTORED
      - SHARED
      - CLAIMS_REMOVED
      - IMPORTED
      items:
        type: string
        description: Filter by event action.
        enum:
        - ACCEPTED
        - CREATED
        - DEACTIVATED
        - DELETED
        - ERRORED
        - ISSUED
        - OFFERED
        - REACTIVATED
        - REJECTED
        - REQUESTED
        - REVOKED
        - PENDING
        - SUSPENDED
        - RESTORED
        - SHARED
        - CLAIMS_REMOVED
        - IMPORTED
    ListHistoryResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: "Event ID. Used by [event details](/desk/gethistorybyid) endpoint."
        createdDate:
          type: string
          format: date-time
        action:
          type: string
        name:
          type: string
        entityType:
          type: string
        entityId:
          type: string
        organisationId:
          type: string
        target:
          type: string
      required:
      - action
      - createdDate
      - entityType
      - id
      - name
    SearchEntityResponseDTOListHistoryResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListHistoryResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailHistoryResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: "Event ID. Used by [event details](/desk/gethistorybyid) endpoint."
        createdDate:
          type: string
          format: date-time
        action:
          type: string
        name:
          type: string
        entityType:
          type: string
        entityId:
          type: string
        organisationId:
          type: string
        target:
          type: string
        metadata: {}
      required:
      - action
      - createdDate
      - entityType
      - id
      - name
    keyIds:
      type: array
      description: Return only DIDs which use the specified keys.
      items:
        type: string
        description: Return only DIDs which use the specified keys.
    SearchEntityResponseDTOListDidResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListDidResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DidDocumentResponseDTO:
      type: object
      properties:
        id:
          type: string
        authentication:
          type: array
          description: Method for authenticating DID subject.
          items:
            type: string
        assertionMethod:
          type: array
          description: Method for asserting claims.
          items:
            type: string
        keyAgreement:
          type: array
          description: Method for establishing confidential communications with DID
            subject.
          items:
            type: string
        capabilityInvocation:
          type: array
          description: Method for invoking a capability the DID subject has.
          items:
            type: string
        capabilityDelegation:
          type: array
          description: Method for delegating a capability to another party.
          items:
            type: string
        verificationMethod:
          type: array
          description: Array of methods for verifying identity of DID subject.
          items:
            $ref: "#/components/schemas/DidDocumentVerificationMethodResponseDTO"
        '@context':
          type: array
          items:
            type: string
      required:
      - id
      - verificationMethod
    DidDocumentVerificationMethodResponseDTO:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        controller:
          type: string
        publicKeyJwk:
          $ref: "#/components/schemas/DidPublicKeyJWKResponseDTO"
      required:
      - controller
      - id
      - publicKeyJwk
      - type
    DidPublicKeyJWKResponseDTO:
      type: object
      description: JWK representation of the public key used to verify the DID.
      properties:
        alg:
          type: string
        kty:
          type: string
        use:
          type: string
        crv:
          type: string
        x:
          type: string
        "y":
          type: string
        k:
          type: string
        e:
          type: string
        "n":
          type: string
      required:
      - crv
      - kty
    include:
      type: array
      description: Choose whether to include `layoutProperties` with the returned
        schemas.
      enum:
      - layoutProperties
      items:
        type: string
        description: Choose whether to include `layoutProperties` with the returned
          schemas.
        enum:
        - layoutProperties
    searchType:
      type: array
      description: "Changes where `searchText` is searched. To search credentials,\
        \ choose one or more `searchType`s and pass a `searchText`."
      items:
        type: string
        description: "Changes where `searchText` is searched. To search credentials,\
          \ choose one or more `searchType`s and pass a `searchText`."
        enum:
        - CLAIM_NAME
        - CLAIM_VALUE
        - CREDENTIAL_SCHEMA_NAME
    credentialSchemaIds:
      type: array
      description: Filter by credential schema ids.
      items:
        type: string
        description: Filter by credential schema ids.
    ListCredentialResponseDTO:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        issuanceDate:
          type: string
          format: date-time
        revocationDate:
          type: string
          format: date-time
        suspendEndDate:
          type: string
          format: date-time
        state:
          type: string
          description: The state representation of the credential in the system.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - OFFERED
          - PENDING
          - REJECTED
          - REVOKED
          - SUSPENDED
        lastModified:
          type: string
          format: date-time
        issuer:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
        id:
          type: string
        role:
          type: string
          description: The role the system has in relation to the credential.
          enum:
          - HOLDER
          - ISSUER
          - VERIFIER
        schema:
          $ref: "#/components/schemas/CredentialSchemaResponseDTO"
        exchange:
          type: string
          deprecated: true
        protocol:
          type: string
        profile:
          type: string
          description: The profile under which the credential is issued.
      required:
      - createdDate
      - id
      - lastModified
      - protocol
      - role
      - schema
      - state
    SearchEntityResponseDTOListCredentialResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListCredentialResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    SearchEntityResponseDTOListCredentialSchemaResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListCredentialSchemaResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    DetailCredentialSchemaResponseDTO:
      type: object
      properties:
        name:
          type: string
        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
        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
        walletStorageType:
          type: string
          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.
          enum:
          - HARDWARE
          - REMOTE_SECURE_ELEMENT
          - SOFTWARE
        layoutType:
          type: string
          description: Determines the general appearance of the credential in the
            holder's wallet and the options supported in `layoutProperties`.
          enum:
          - CARD
          - DOCUMENT
          - SINGLE_ATTRIBUTE
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
        schemaId:
          type: string
          description: Part of the `credentialSchema` property.
        schemaType:
          type: string
          description: Part of the `credentialSchema` property.
        allowSuspension:
          type: boolean
          description: "If `true` and the chosen revocation method allows for suspension,\
            \ credentials issued with this schema can be suspended."
        externalSchema:
          type: boolean
        organisationId:
          type: string
        layoutProperties:
          $ref: "#/components/schemas/CredentialSchemaLayoutPropertiesDTO"
          description: Design properties of the credential.
        claims:
          type: array
          description: The set of claims being asserted when using this credential
            schema.
          items:
            $ref: "#/components/schemas/CredentialClaimSchemaResponseDTO"
      required:
      - allowSuspension
      - claims
      - createdDate
      - externalSchema
      - format
      - id
      - lastModified
      - name
      - revocationMethod
      - schemaId
      - schemaType
    ConfigAuthorizationCodeFlowParamsResponseDTO:
      type: object
      properties:
        logo:
          type: string
        issuer:
          type: string
    ConfigCacheEntitiesParamsResponseDTO:
      type: object
      properties:
        cacheType:
          type: string
          enum:
          - DB
          - IN_MEMORY
        refreshAfter:
          type: integer
          format: int32
        cacheRefreshTimeout:
          type: integer
          format: int32
        cacheSize:
          type: integer
          format: int32
    ConfigDatatypeEnumResponseDTO:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
        display: {}
    ConfigDatatypeParamsResponseDTO:
      type: object
      properties:
        min:
          type: string
        max:
          type: string
        autocomplete:
          type: boolean
        placeholder:
          type: string
        pattern:
          type: string
        error: {}
        accept:
          type: array
          items:
            type: string
        fileSize:
          type: integer
          format: int64
        showAs:
          type: string
        values:
          type: array
          items:
            $ref: "#/components/schemas/ConfigDatatypeEnumResponseDTO"
        formats:
          type: array
          items:
            type: string
        preferredFormat:
          type: string
    ConfigDidKeyParamsResponseDTO:
      type: object
      description: "When multiple keys are supported for DID verification methods,\
        \ specifies minimum and maximum number of keys supported."
      properties:
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
        authentication:
          $ref: "#/components/schemas/MinMaxParamsResponseDTO"
        assertionMethod:
          $ref: "#/components/schemas/MinMaxParamsResponseDTO"
        keyAgreement:
          $ref: "#/components/schemas/MinMaxParamsResponseDTO"
        capabilityInvocation:
          $ref: "#/components/schemas/MinMaxParamsResponseDTO"
        capabilityDelegation:
          $ref: "#/components/schemas/MinMaxParamsResponseDTO"
    ConfigDidParamsResponseDTO:
      type: object
      properties:
        keys:
          $ref: "#/components/schemas/ConfigDidKeyParamsResponseDTO"
    ConfigFormatParamsResponseDTO:
      type: object
      properties:
        disclosureLevel:
          type: integer
          format: int32
    ConfigHistoryResponseDTO:
      type: object
      properties:
        enabled:
          type: boolean
        pagesEnabled:
          type: array
          items:
            type: string
    ConfigItemResponseDTOConfigAuthorizationCodeFlowParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigAuthorizationCodeFlowParamsResponseDTO"
    ConfigItemResponseDTOConfigDatatypeParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigDatatypeParamsResponseDTO"
    ConfigItemResponseDTOConfigDidParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigDidParamsResponseDTO"
    ConfigItemResponseDTOConfigFormatParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigFormatParamsResponseDTO"
    ConfigItemResponseDTOConfigKeyAlgorithmParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigKeyAlgorithmParamsResponseDTO"
    ConfigItemResponseDTOObject:
      type: object
      properties:
        type:
          type: string
        display: {}
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params: {}
    ConfigKeyAlgorithmParamsResponseDTO:
      type: object
      properties:
        algorithm:
          type: string
    ConfigOpenidResponseDTO:
      type: object
      properties:
        enabled:
          type: boolean
        credentialLoginEnabled:
          type: boolean
        usedExchangeProtocol:
          type: string
        usedVerificationProtocol:
          type: string
    ConfigResponseDTO:
      type: object
      properties:
        format:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigFormatParamsResponseDTO"
          description: "Credential formats for issuing, holding and verifying."
        datatype:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigDatatypeParamsResponseDTO"
          description: Datatypes for claim validation.
        did:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigDidParamsResponseDTO"
          description: DID methods used for identifying agents.
        revocation:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: Revocation methods for credential status.
        issuanceProtocol:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: Issuance protocols for the direct exchange of credentials.
        verificationProtocol:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: Verification protocols for the direct exchange of credentials.
        transport:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: Transport protocols over which to communicate.
        keyAlgorithm:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigKeyAlgorithmParamsResponseDTO"
          description: Key signing algorithms used for signatures.
        keyStorage:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: How keys are stored.
        holderKeyStorage:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: How holder keys are stored.
        trustManagement:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: Trust management solutions.
        cacheEntities:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigCacheEntitiesParamsResponseDTO"
          description: Entities held in temporary storage.
        openidProvider:
          $ref: "#/components/schemas/ConfigOpenidResponseDTO"
          description: OpenID Connect provider integration.
        history:
          $ref: "#/components/schemas/ConfigHistoryResponseDTO"
          description: History configuration
        frontend:
          $ref: "#/components/schemas/FrontendConfigurationResponseDTO"
          description: Frontend configuration
        identifier:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOObject"
          description: "Identifier types to associate entities to schemas, credentials,\
            \ trust lists and proofs."
        permissions:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              enum:
              - CREDENTIAL_DELETE
              - CREDENTIAL_DETAIL
              - CREDENTIAL_ISSUE
              - CREDENTIAL_LIST
              - CREDENTIAL_REACTIVATE
              - CREDENTIAL_REVOKE
              - CREDENTIAL_SCHEMA_CREATE
              - CREDENTIAL_SCHEMA_DELETE
              - CREDENTIAL_SCHEMA_DETAIL
              - CREDENTIAL_SCHEMA_LIST
              - CREDENTIAL_SCHEMA_SHARE
              - CREDENTIAL_SHARE
              - CREDENTIAL_SUSPEND
              - DID_CREATE
              - DID_DEACTIVATE
              - DID_DETAIL
              - DID_LIST
              - DID_RESOLVE
              - HISTORY_DETAIL
              - HISTORY_LIST
              - HOLDER_CREDENTIAL_LIST
              - IDENTIFIER_CREATE
              - IDENTIFIER_DELETE
              - IDENTIFIER_DETAIL
              - IDENTIFIER_LIST
              - INTERACTION_ISSUANCE
              - INTERACTION_PROOF
              - KEY_CREATE
              - KEY_DETAIL
              - KEY_GENERATE_CSR
              - KEY_LIST
              - OPENID_PROVIDER_CREATE
              - OPENID_PROVIDER_DELETE
              - OPENID_PROVIDER_DETAIL
              - OPENID_PROVIDER_EDIT
              - OPENID_PROVIDER_LIST
              - PROOF_CLAIMS_DELETE
              - PROOF_DELETE
              - PROOF_DETAIL
              - PROOF_ISSUE
              - PROOF_LIST
              - PROOF_SCHEMA_CREATE
              - PROOF_SCHEMA_DELETE
              - PROOF_SCHEMA_DETAIL
              - PROOF_SCHEMA_LIST
              - PROOF_SCHEMA_SHARE
              - PROOF_SHARE
              - STS_IAM_ROLE_CREATE
              - STS_IAM_ROLE_DELETE
              - STS_IAM_ROLE_DETAIL
              - STS_IAM_ROLE_EDIT
              - STS_IAM_ROLE_LIST
              - STS_ORGANISATION_CREATE
              - STS_ORGANISATION_DELETE
              - STS_ORGANISATION_DETAIL
              - STS_ORGANISATION_EDIT
              - STS_ORGANISATION_LIST
              - STS_ROLE_CREATE
              - STS_ROLE_DELETE
              - STS_ROLE_DETAIL
              - STS_ROLE_EDIT
              - STS_ROLE_LIST
              - TRUST_ANCHOR_CREATE
              - TRUST_ANCHOR_DELETE
              - TRUST_ANCHOR_DETAIL
              - TRUST_ANCHOR_LIST
              - TRUST_ENTITY_ACTIVATE
              - TRUST_ENTITY_CREATE
              - TRUST_ENTITY_DETAIL
              - TRUST_ENTITY_EDIT
              - TRUST_ENTITY_LIST
              - TRUST_ENTITY_REMOVE
              - TRUST_ENTITY_WITHDRAW
              - WALLET_UNIT_DETAIL
              - WALLET_UNIT_LIST
          description: Frontend permissions
        authorizationCodeFlow:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigAuthorizationCodeFlowParamsResponseDTO"
      required:
      - cacheEntities
      - datatype
      - did
      - format
      - frontend
      - history
      - holderKeyStorage
      - identifier
      - issuanceProtocol
      - keyAlgorithm
      - keyStorage
      - openidProvider
      - permissions
      - revocation
      - transport
      - trustManagement
      - verificationProtocol
    FrontendConfigurationResponseDTO:
      type: object
      properties:
        reissueEnabled:
          type: boolean
        walletEnabled:
          type: boolean
        logoutUrl:
          type: string
        profilesEnabled:
          type: boolean
        walletProviderEnabled:
          type: boolean
    MinMaxParamsResponseDTO:
      type: object
      properties:
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
    ConfigProfileEntryFilterItemResponseDTO:
      type: object
      properties:
        protocols:
          type: array
          items:
            type: string
        keyAlgorithmTypes:
          type: array
          items:
            type: string
        identifierTypes:
          type: array
          items:
            type: string
        identifierDidMethods:
          type: array
          items:
            type: string
    ConfigProfileEntryFilterResponseDTO:
      type: object
      properties:
        issuer:
          $ref: "#/components/schemas/ConfigProfileEntryFilterItemResponseDTO"
        verifier:
          $ref: "#/components/schemas/ConfigProfileEntryFilterItemResponseDTO"
        formats:
          type: array
          items:
            type: string
    ConfigProfileEntryResponseDTO:
      type: object
      properties:
        id:
          type: string
        display:
          $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        filter:
          $ref: "#/components/schemas/ConfigProfileEntryFilterResponseDTO"
      required:
      - id
    ConfigProfileResponseDTO:
      type: object
      properties:
        profiles:
          type: array
          items:
            $ref: "#/components/schemas/ConfigProfileEntryResponseDTO"
        modifiedDate:
          type: string
          format: date-time
    I18nResponseDTO:
      type: object
      properties:
        en:
          type: string
        de:
          type: string
    BuildInfoResponseDTO:
      type: object
      properties:
        name:
          type: string
        time:
          type: string
          format: date-time
        version:
          type: string
        group:
          type: string
        artifact:
          type: string
        javaVersion:
          type: string
        description:
          type: string
        commitSha:
          type: string
        pipelineId:
          type: string
        commitBranch:
          type: string
        commitTag:
          type: string
    STSJwksKeyResponseDTO:
      type: object
      properties:
        alg:
          type: string
        kid:
          type: string
        kty:
          type: string
        use:
          type: string
        crv:
          type: string
        x:
          type: string
        "y":
          type: string
        k:
          type: string
        e:
          type: string
        "n":
          type: string
      required:
      - crv
      - kty
    STSJwksResponseDTO:
      type: object
      properties:
        keys:
          type: array
          items:
            $ref: "#/components/schemas/STSJwksKeyResponseDTO"
      required:
      - keys
    WellKnownAssetLinksResponseDTO:
      type: object
      properties:
        relation:
          type: array
          description: List of relations between the website and app.
          items:
            type: string
        target:
          $ref: "#/components/schemas/WellKnownAssetLinksTargetResponseDTO"
          description: Target Android application details.
    WellKnownAssetLinksTargetResponseDTO:
      type: object
      properties:
        namespace:
          type: string
          description: "App namespace, typically `android_app`."
        package_name:
          type: string
          description: Android package name.
        sha256_cert_fingerprints:
          type: array
          description: SHA256 fingerprints of app signing certificates.
          items:
            type: string
    WellKnownAppleSiteAssociationAppLinksResponseDTO:
      type: object
      properties:
        details:
          type: array
          items:
            $ref: "#/components/schemas/WellKnownAppleSiteAssociationDetailsResponseDTO"
    WellKnownAppleSiteAssociationDetailsResponseDTO:
      type: object
      properties:
        appIDs:
          type: array
          items:
            type: string
        components:
          type: array
          items:
            type: object
            additionalProperties: {}
    WellKnownAppleSiteAssociationResponseDTO:
      type: object
      properties:
        applinks:
          $ref: "#/components/schemas/WellKnownAppleSiteAssociationAppLinksResponseDTO"
  securitySchemes:
    bearerAuth:
      type: http
      in: header
      scheme: bearer
      bearerFormat: JWT
