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.
  contact:
    name: Procivis One Docs
    url: https://www.procivis.ch/en/procivis-one#signup
  version: v1.69.2
servers:
- url: ""
- url: https://desk.trial.procivis-one.com
  description: Trial url
security:
- bearer: []
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
  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: |
    Use the identifier API to create DIDs. The system assigns an ID to both
    the identifier and the DID. Use the DID ID returned from the identifier
    response with this DID API for management operations like deactivation.
  x-displayName: DIDs
- name: credential-schema-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: wallet-unit-controller
  description: "For Wallet Providers, manage wallet units and attestations issued\
    \ by the system."
  x-displayName: Wallet units (Provider)
- name: holder-wallet-unit-controller
  description: "For wallet units, register with the Wallet Provider and check status."
  x-displayName: Wallet units (Holder)
- 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: Endpoint for token exchange.
  x-displayName: Secure Token Service
- name: sts-role-controller
  description: |
    Manage system roles that define permission sets. Each role consists of a
    name and a list of platform permissions. These roles are used to grant users
    and technical users specific capabilities within the platform.
  x-displayName: System roles
- name: sts-organisation-controller
  description: |
    Create and manage organizations (tenants) within the platform. Each tenant
    provides isolated data and resource boundaries for multi-tenant deployments
    (assuming Core is in STS authentication mode). Use these endpoints to provision
    new tenants, update tenant configurations, and manage tenant lifecycle.
  x-displayName: Organizations (tenants)
- name: sts-iam-role-controller
  description: |
    Map IAM provider roles to platform roles and tenant access. These mappings
    define which tenants a user can access and what permissions they have within
    each tenant when they authenticate through your IAM provider. Use these endpoints
    to configure role-based access control that bridges your IAM system with platform
    authorization.
  x-displayName: IAM role mapping
- name: wallet-relying-party-controller
  description: |
    Manage a Wallet-Relying Party Registry.
  x-displayName: Wallet-Relying Party Registry
- name: wrp-certificate-controller
  description: Create and manage Registration Certificates.
  x-displayName: Registration Certificates
- name: signature-controller
  description: Create and revoke signatures.
  x-displayName: Signatures
- name: user-controller
  description: List users.
  x-displayName: Users
- name: build-info-controller
  description: Retrieve Procivis One version information.
  x-displayName: Version
- name: Actuator
  description: Monitor and interact
  externalDocs:
    description: Spring Boot Actuator Web API Documentation
    url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
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"
    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"
    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
  /api/wrp-certificate/v1/{certificateId}/revoke:
    post:
      tags:
      - wrp-certificate-controller
      summary: Revoke a Registration Certificate
      operationId: revokeCertificateById
      parameters:
      - name: certificateId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "400":
          description: Invalid query param
          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
  /api/wrp-certificate/v1/registration:
    post:
      tags:
      - wrp-certificate-controller
      summary: Create Registration Certificate
      description: |
        Creates and signs a Registration Certificate for a
        wallet-relying party (WRP).
      operationId: certificateRegistration
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CertificateRegistrationRequestDTO"
        required: true
      responses:
        "400":
          description: Invalid query param
          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"
  /api/wallet-unit/v1/{walletUnitId}/revoke:
    post:
      tags:
      - wallet-unit-controller
      summary: Revoke a wallet unit
      description: |
        Revokes a wallet unit, preventing issuance of any new attestations. If Token
        Status List is enabled for WUAs, all existing attestations are no longer valid.
      operationId: revokeWalletUnitById
      parameters:
      - name: walletUnitId
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
  /api/wallet-relying-party/v1:
    get:
      tags:
      - wallet-relying-party-controller
      summary: List wallet-relying parties
      description: |
        Search and filter registered wallet-relying parties. Supports filtering
        by name, entitlement type, registration status, and date ranges. Results
        are paginated and can be sorted by name, creation date, or status.
      operationId: getWalletRelyingParties
      parameters:
      - 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
          - state
      - name: exact
        in: query
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - name: entitlements
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
      - name: states
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - REVOKED
            - SUSPENDED
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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/SearchEntityResponseDTOListWalletRelyingPartyResponseDTO"
    post:
      tags:
      - wallet-relying-party-controller
      summary: Create a wallet-relying party
      description: |
        Register a new wallet-relying party in the national registry. Organizations
        must register before they can request data from EUDI Wallets. Registration
        captures the organization's identity, the specific data they intend to request,
        and the purposes for which they will use it.
      operationId: createWalletRelyingParty
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateWalletRelyingPartyRequestDTO"
        required: true
      responses:
        "400":
          description: Invalid wallet-relying party 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/EntityResponseDTO"
  /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: Filter trust entities by role.
        required: false
        schema:
          type: string
          description: Filter trust entities by role.
          enum:
          - BOTH
          - ISSUER
          - VERIFIER
      - name: types
        in: query
        description: Filter by one or more trust entity types.
        required: false
        schema:
          $ref: "#/components/schemas/types"
      - name: states
        in: query
        description: Filter by one or more trust entity types.
        required: false
        schema:
          $ref: "#/components/schemas/states"
      - 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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
            - type
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /api/sts/organisation/v1:
    get:
      tags:
      - sts-organisation-controller
      summary: List organizations
      operationId: listOrganisations
      parameters:
      - name: states
        in: query
        required: false
        schema:
          $ref: "#/components/schemas/states"
      - name: exact
        in: query
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
            - slug
      - name: slug
        in: query
        required: false
        schema:
          type: string
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - 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: 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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.

        You can update an organization's roles 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"
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /api/signature/v1:
    post:
      tags:
      - signature-controller
      summary: Create signature
      description: |
        Signs a data payload. The `signer` value must match an entry from the
        `signer` configuration, and the `data` payload must match what is
        expected by that signer provider.
      operationId: createSignature
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CoreSignatureRequestDTOObject"
        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/CoreSignatureResponseDTO"
  /api/signature/v1/{id}/revoke:
    post:
      tags:
      - signature-controller
      summary: Revoke signature
      operationId: revokeSignature
      parameters:
      - name: id
        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"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CoreSignatureResponseDTO"
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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"
  /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 one or more 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: states
        in: query
        description: Filter by one or more proof states.
        required: false
        schema:
          type: array
          description: Filter by one or more proof states.
          items:
            type: string
            description: Filter by one or more proof states.
            enum:
            - ACCEPTED
            - CREATED
            - ERROR
            - INTERACTION_EXPIRED
            - PENDING
            - REJECTED
            - REQUESTED
            - RETRACTED
      - name: verifiers
        in: query
        required: false
        schema:
          $ref: "#/components/schemas/verifiers"
      - 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: roles
        in: query
        description: "Filter proof requests by one or more roles: requested by the\
          \ system or received by the system."
        required: false
        schema:
          $ref: "#/components/schemas/roles"
      - name: exact
        in: query
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - name: profiles
        in: query
        description: Filter by one or more country profiles.
        required: false
        schema:
          $ref: "#/components/schemas/profiles"
      - name: requestedDateAfter
        in: query
        description: Return only proof requests requested after this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only proof requests requested after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: requestedDateBefore
        in: query
        description: Return only proof requests requested before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only proof requests requested before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: completedDateAfter
        in: query
        description: Return only proof requests completed after this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only proof requests completed after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: completedDateBefore
        in: query
        description: Return only proof requests completed before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only proof requests completed before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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"
  /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
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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"
  /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
        required: false
        schema:
          $ref: "#/components/schemas/keyTypes"
      - name: keyStorages
        in: query
        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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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"
  /api/interaction/v2/presentation-submit:
    post:
      tags:
      - interaction-controller
      summary: Submit presentation
      description: |
        Submits a presentation in response to a request. This endpoint uses DCQL
        as a query language and should be used after "Presentation Definition (V2)".
      operationId: presentationSubmit
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PresentationSubmitV2RequestDTO"
        required: true
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
  /api/interaction/v1/presentation-submit:
    post:
      tags:
      - interaction-controller
      summary: Submit presentation
      description: |
        Submits a presentation in response to a request. This endpoint uses
        Presentation Exchange as the query language and should be used
        after "Presentation Definition (V1)".

        `didId` is deprecated.
      operationId: presentationSubmit_1
      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
  /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
  /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
  /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"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
  /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"
  /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"
  /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"
  /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 one or more 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
        description: Return keys used as one or more verification methods of a DID.
        required: false
        schema:
          $ref: "#/components/schemas/keyRoles"
      - name: didMethods
        in: query
        description: Filter by one or more DID methods.
        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: states
        in: query
        description: Filter by one or more identifier states.
        required: false
        schema:
          type: array
          description: Filter by one or more identifier states.
          items:
            type: string
            description: Identifier status
            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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    post:
      tags:
      - identifier-controller
      summary: Create an identifier
      description: |
        Creates a new identifier to use for issuing, holding, or verifying. All
        identifiers have an identifier ID for credential operations and a separate
        ID for managing the underlying resource.

        Use the identifier ID with the `issuer` field when issuing credentials,
        the `verifier` field when verifying credentials, and the `identifierId`
        field when interacting as a holder. Use the resource ID
        (DID ID, key ID, or certificate ID) with their respective APIs for
        resource-specific management operations.

        For a DID identifier: Specify a name, the method, and the keys
        to use for the verification methods. The system assigns an ID to both
        the identifier and the DID. Use the DID ID with the DID API for operations
        like deactivation.

        For a key identifier: Create the key first using the key API. Pass
        the key ID and a name for the identifier. The system assigns an ID
        to the identifier. Use the key ID with the key API for key-specific
        management operations.

        For a certificate identifier: Use the key API to generate a key and a
        Certificate Signing Request (CSR). When you have a signed certificate,
        pass the certificate in PEM format, also specifying the original key ID
        and a name for the identifier. Use the certificate ID with the certificate
        API for certificate operations.
      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"
  /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"
  /api/holder-wallet-unit/v1:
    post:
      tags:
      - holder-wallet-unit-controller
      summary: Register with a Wallet Provider
      description: Register a wallet unit with a Wallet Provider.
      operationId: registerWalletUnit
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RegisterWalletUnitRequestDTO"
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityResponseDTO"
  /api/holder-wallet-unit/v1/{walletUnitId}/status:
    post:
      tags:
      - holder-wallet-unit-controller
      summary: Check wallet status
      description: |
        Check the status of a wallet unit. Active units return `204`.
        Revoked units return an error.
      operationId: refreshWalletUnitStatus
      parameters:
      - name: walletUnitId
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
            - did
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    post:
      tags:
      - did-controller
      summary: Create a DID
      description: |
        Deprecated. Use the identifier API to create a DID as an identifier
        to use in issuing, holding, or verifying.

        When you create a DID as an identifier, both the identifier and the
        DID receive separate system IDs. You can access the DID's system ID
        from the identifier response to use with the DID API for operations
        like DID deactivation.
      operationId: 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"
  /api/credential/v1:
    get:
      tags:
      - credential-controller
      summary: List credentials
      description: Returns a list of credentials within the organization.
      operationId: getCredentials
      parameters:
      - name: roles
        in: query
        description: "Filter credentials by one or more roles: issued by the system,\
          \ verified by the system, or held by the system as a wallet."
        required: false
        schema:
          type: array
          description: "Filter credentials by one or more roles: issued by the system,\
            \ verified by the system, or held by the system as a wallet."
          items:
            type: string
            description: "Filter credentials by one or more roles: issued by the system,\
              \ verified by the system, or held by the system as 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 one or more UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/ids"
      - name: issuers
        in: query
        required: false
        schema:
          $ref: "#/components/schemas/issuers"
      - 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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
      - name: profiles
        in: query
        description: Filter by one or more country profiles.
        required: false
        schema:
          $ref: "#/components/schemas/profiles"
      - name: states
        in: query
        description: Filter by one or more credential states.
        required: false
        schema:
          type: array
          description: Filter by one or more credential states.
          items:
            type: string
            description: Filter by one or more credential states.
            enum:
            - ACCEPTED
            - CREATED
            - ERROR
            - INTERACTION_EXPIRED
            - OFFERED
            - PENDING
            - REJECTED
            - REVOKED
            - SUSPENDED
      - name: credentialSchemaIds
        in: query
        description: Filter by credential schema IDs.
        required: false
        schema:
          $ref: "#/components/schemas/credentialSchemaIds"
      - name: issuanceDateAfter
        in: query
        description: Return only credentials issued after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only credentials issued after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: issuanceDateBefore
        in: query
        description: Return only credentials issued before this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only credentials issued before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: revocationDateAfter
        in: query
        description: Return only credentials revoked after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only credentials revoked after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: revocationDateBefore
        in: query
        description: Return only credentials revoked before this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only credentials revoked before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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
  /api/credential/v1/{credentialId}/share:
    post:
      tags:
      - credential-controller
      summary: Issue a credential
      description: |
        Creates a share URL. A wallet holder can use this URL to access
        the offered credential.
      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"
  /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
  /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
  /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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
            - schemaId
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
    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"
  /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"
  /api/wallet-relying-party/v1/{walletRelyingPartyId}:
    get:
      tags:
      - wallet-relying-party-controller
      summary: Retrieve a wallet-relying party
      description: |
        Returns complete registration details for a specific wallet-relying party,
        including all intended use cases, credentials they may request, and
        intermediary relationships.
      operationId: getWalletRelyingById
      parameters:
      - name: walletRelyingPartyId
        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: Wallet-relying party not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailWalletRelyingPartyResponseDTO"
    delete:
      tags:
      - wallet-relying-party-controller
      summary: Delete a Wallet Relying Party
      operationId: deleteWalletRelyingParty
      parameters:
      - name: walletRelyingPartyId
        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: Wallet relying party not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
    patch:
      tags:
      - wallet-relying-party-controller
      summary: Update a wallet-relying party
      description: |
        Update an existing registration. Changes to intended uses or requested
        credentials may require re-issuance of registration certificates. Change
        the `state` to suspend, reactivate, or revoke a wallet-relying party.
      operationId: updateWalletRelyingParty
      parameters:
      - name: walletRelyingPartyId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateWalletRelyingPartyRequestDTO"
        required: true
      responses:
        "400":
          description: Invalid wallet-relying party 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
  /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"
    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"
  /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"
    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
    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
  /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"
    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
    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
  /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"
    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"
  /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"
    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
    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
  /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"
    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
  /api/wrp-certificate/v1:
    get:
      tags:
      - wrp-certificate-controller
      summary: Get Registration Certificates summary
      description: |
        Returns one certificate per wallet-relying party for display
        purposes. For each party, returns the certificate with the
        validity end date furthest in the future.
      operationId: getAggregatedRegistrationCertificates
      parameters:
      - name: certificateTypes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACCESS_CERTIFICATE
            - REGISTRATION_CERTIFICATE
      - 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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      responses:
        "400":
          description: Invalid query param
          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/SearchEntityResponseDTOAggregatedRegistrationCertificateResponseDTO"
  /api/wrp-certificate/v1/wallet-relying-party/{identifier}/certificates:
    get:
      tags:
      - wrp-certificate-controller
      summary: Get Registration Certificates by identifier
      description: |
        Pass an ETSI identifier to return certificates for the
        given wallet-relying party.
      operationId: getRegistrationCertificatesByIdentifier
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      - name: certificateTypes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACCESS_CERTIFICATE
            - REGISTRATION_CERTIFICATE
      - 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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      responses:
        "400":
          description: Invalid query param
          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/SearchEntityResponseDTOListRegistrationCertificateResponseDTO"
  /api/wallet-unit/v1:
    get:
      tags:
      - wallet-unit-controller
      summary: List wallet units
      description: Returns a list of wallet units
      operationId: getWalletUnits
      parameters:
      - name: status
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - ERROR
            - PENDING
            - REVOKED
      - name: walletProviderType
        in: query
        description: Return only wallet units with the specified wallet provider types.
        required: false
        schema:
          $ref: "#/components/schemas/walletProviderType"
      - name: os
        in: query
        description: Return only wallet units with the specified operating systems.
        required: false
        schema:
          $ref: "#/components/schemas/os"
      - 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
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - name
            - attestation
      - name: attestation
        in: query
        description: Return only the wallet unit with the specified attestation.
        required: false
        schema:
          type: string
          description: Return only the wallet unit with the specified attestation.
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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"
  /api/wallet-unit/v1/{walletUnitId}:
    get:
      tags:
      - wallet-unit-controller
      summary: Retrieve a wallet unit
      description: Returns details on a given wallet unit.
      operationId: getWalletUnitById
      parameters:
      - name: walletUnitId
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailWalletUnitResponseDTO"
    delete:
      tags:
      - wallet-unit-controller
      summary: Delete a wallet unit
      description: "Permanently deletes a given wallet unit from the database, including\
        \ history entries."
      operationId: deleteWalletUnitById
      parameters:
      - name: walletUnitId
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "204":
          description: No Content
  /api/wallet-relying-party/v1/identifier/{identifier}:
    get:
      tags:
      - wallet-relying-party-controller
      summary: Retrieve a wallet-relying party
      operationId: getWalletRelyingByIdentifier
      parameters:
      - name: identifier
        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-relying party not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicWalletRelyingPartyDTO"
  /api/user/v1:
    get:
      tags:
      - user-controller
      summary: List users
      description: Returns a list of users.
      operationId: listUsers
      parameters:
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: searchText
        in: query
        required: false
        schema:
          type: string
      - name: searchType
        in: query
        required: false
        schema:
          type: array
          description: Set search type. Defaults to all values.
          items:
            type: string
            enum:
            - sub
            - username
            - email
            - firstName
            - lastName
      - 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
          - sub
          - username
          - email
          - firstName
          - lastName
      - name: exact
        in: query
        required: false
        schema:
          type: array
          description: Set which filters apply in an exact way.
          items:
            type: string
            enum:
            - username
            - email
            - firstName
            - lastName
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created after this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: Return only entities created before this time. Timestamp in RFC3339
          format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only entities created before this time. Timestamp in
            RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedAfter
        in: query
        description: Return only events last modified after this time. Timestamp in
          RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified after this time. Timestamp
            in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: lastModifiedBefore
        in: query
        description: Return only events last modified before this time. Timestamp
          in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: Return only events last modified before this time. Timestamp
            in RFC3339 format (e.g. '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/SearchEntityResponseDTOListUserResponseDTO"
  /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"
    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
  /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"
    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
  /api/proof-request/v2/{proofRequestId}/presentation-definition:
    get:
      tags:
      - proof-request-controller
      summary: Presentation definition (V2)
      description: |
        For wallets; after a wallet connects to a verifier's request for proof
        via the Handle Invitation endpoint, the presentation definition endpoint
        takes the resulting `proofId` and filters the wallet, returning
        credentials which match the verifier's request.

        This version uses DCQL as the query language.
      operationId: 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/PresentationDefinitionV2ResponseDTO"
  /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"
    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
  /api/proof-request/v1/{proofRequestId}/presentation-definition:
    get:
      tags:
      - proof-request-controller
      summary: Presentation definition (V1)
      description: |
        For wallets; after a wallet connects to a verifier's request for proof
        via the Handle Invitation endpoint, the presentation definition endpoint
        takes the resulting `proofId` and filters the wallet, returning
        credentials which match the verifier's request.

        This version uses Presentation Exchange as the query language.
      operationId: getPresentationDefinition_1
      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"
  /api/profile/v1/credential:
    get:
      tags:
      - profile-controller
      summary: Retrieve login credential detail
      description: Returns details of the login credential.
      operationId: getLoginCredential
      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/DetailCredentialResponseDTODetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
  /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"
  /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"
  /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"
    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
  /api/holder-wallet-unit/v1/{walletUnitId}:
    get:
      tags:
      - holder-wallet-unit-controller
      summary: Retrieve wallet registration details
      description: Retrieve details of the wallet unit's registration from the Wallet
        Provider.
      operationId: getWalletUnit
      parameters:
      - name: walletUnitId
        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: Wallet unit not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailHolderWalletUnitResponseDTO"
  /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: entityIds
        in: query
        description: Return only history events associated with the provided entity
          UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/entityIds"
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred after this time. Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: |
          Return only events which occurred before this time. Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred before this time. Timestamp in RFC3339 format (e.g. '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: 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: sources
        in: query
        description: Filter history events by source.
        required: false
        schema:
          $ref: "#/components/schemas/sources"
      - name: users
        in: query
        description: Return only events associated with the provided user(s).
        required: false
        schema:
          type: array
          description: Return only events associated with the provided user(s).
          items:
            type: string
            description: Return only events associated with the provided user(s).
      - name: organisationIds
        in: query
        description: Specify the organization(s) from which to return history events.
        required: false
        schema:
          type: array
          description: Specify the organization(s) from which to return history events.
          items:
            type: string
            description: Specify the organization(s) from which to return history
              events.
      - name: showSystemHistory
        in: query
        description: |
          Controls cross-organization history access. When `false` (default),
          returns events from the organization in your STS token. When `true`,
          returns events from all organizations; requires `SYSTEM_HISTORY_LIST`
          permission.
        required: false
        schema:
          type: boolean
          description: |
            Controls cross-organization history access. When `false` (default),
            returns events from the organization in your STS token. When `true`,
            returns events from all organizations; requires `SYSTEM_HISTORY_LIST`
            permission.
      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"
  /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
          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: History not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DetailHistoryResponseDTO"
  /api/history/v1/export:
    get:
      tags:
      - history-controller
      summary: Exports history events as CSV
      description: Returns a CSV file of history events for entities in the system.
        Use the parameters to filter.
      operationId: exportHistory
      parameters:
      - 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: entityIds
        in: query
        description: Return only history events associated with the provided entity
          UUIDs.
        required: false
        schema:
          $ref: "#/components/schemas/entityIds"
      - 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 (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred after this time. Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
      - name: createdDateBefore
        in: query
        description: |
          Return only events which occurred before this time. Timestamp in RFC3339 format (e.g. '2023-06-09T14:19:57.000Z').
        required: false
        schema:
          type: string
          format: date-time
          description: |
            Return only events which occurred before this time. Timestamp in RFC3339 format (e.g. '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: 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: sources
        in: query
        description: Filter history events by source.
        required: false
        schema:
          $ref: "#/components/schemas/sources"
      - name: users
        in: query
        description: Return only events associated with the provided user(s).
        required: false
        schema:
          type: array
          description: Return only events associated with the provided user(s).
          items:
            type: string
            description: Return only events associated with the provided user(s).
      - name: organisationIds
        in: query
        description: Specify the organization(s) from which to return history events.
        required: false
        schema:
          type: array
          description: Specify the organization(s) from which to return history events.
          items:
            type: string
            description: Specify the organization(s) from which to return history
              events.
      - name: showSystemHistory
        in: query
        description: |
          Controls cross-organization history access. When `false` (default),
          returns events from the organization in your STS token. When `true`,
          returns events from all organizations; requires `SYSTEM_HISTORY_LIST`
          permission.
        required: false
        schema:
          type: boolean
          description: |
            Controls cross-organization history access. When `false` (default),
            returns events from the organization in your STS token. When `true`,
            returns events from all organizations; requires `SYSTEM_HISTORY_LIST`
            permission.
      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:
            text/csv:
              schema:
                $ref: "#/components/schemas/StreamingResponseBody"
            application/json:
              schema:
                $ref: "#/components/schemas/StreamingResponseBody"
  /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"
  /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"
  /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/DetailCredentialResponseDTODetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
    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"
  /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"
    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
  /api/config/v1:
    get:
      tags:
      - config-controller
      summary: Retrieve the configuration
      description: Returns the system 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/config/announcement/v1:
    get:
      tags:
      - config-controller
      summary: Retrieve system announcement
      description: Returns a system announcement if one is available.
      operationId: getAnnouncementConfig
      responses:
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponseDTO"
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigAnnouncementResponseDTO"
  /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"
  /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"
  /actuator:
    get:
      tags:
      - Actuator
      summary: Actuator root web endpoint
      operationId: links
      responses:
        "200":
          description: OK
          content:
            application/vnd.spring-boot.actuator.v3+json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties:
                    $ref: "#/components/schemas/Link"
            application/vnd.spring-boot.actuator.v2+json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties:
                    $ref: "#/components/schemas/Link"
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties:
                    $ref: "#/components/schemas/Link"
  /actuator/health:
    get:
      tags:
      - Actuator
      summary: Actuator web endpoint 'health'
      operationId: health
      responses:
        "200":
          description: OK
          content:
            application/vnd.spring-boot.actuator.v3+json:
              schema:
                type: object
            application/vnd.spring-boot.actuator.v2+json:
              schema:
                type: object
            application/json:
              schema:
                type: object
  /.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
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
    CertificateRegistrationRequestDTO:
      type: object
      properties:
        validityStart:
          type: string
          format: date-time
          description: |
            Pass nothing to start validity now or choose a datetime
            in the future.
        validityEnd:
          type: string
          format: date-time
          description: |
            Pass nothing to set the maximum validity period allowed
            by the configuration or choose a datetime with a shorter
            validity period.
        issuer:
          type: string
          format: uuid
          description: |
            Choose an identifier to use to sign the certificate.
        issuerCertificate:
          type: string
          format: uuid
        walletRelyingPartyId:
          type: string
          format: uuid
        intermediaryId:
          type: string
          format: uuid
      required:
      - issuer
      - walletRelyingPartyId
    CreateContactRequestDTO:
      type: object
      properties:
        country:
          type: string
          description: |
            The country where the organization is legally established. This
            determines which Member State's registry the organization
            belongs to and which supervisory authorities have jurisdiction.
            This value must match an option from
            `walletRelyingPartyRegistry.contactCountries.value` in the
            configuration.
        emails:
          type: array
          description: |
            Email addresses for matters relating to the organization's registration
            and use of wallet data.
          items:
            type: string
        phoneNumbers:
          type: array
          description: |
            Phone numbers for matters relating to registration and wallet data usage.
            Must include the international dialing prefix (for example, +49 for Germany).
          items:
            type: string
        urls:
          type: array
          description: |
            Website addresses for general information about the organization. These
            help wallet users verify they are sharing data with a legitimate organization.
          items:
            type: string
        postalAddress:
          type: string
          description: |
            The physical address where the organization is established. This is stored
            for regulatory purposes but is not exposed through the public registry API.
        identifiers:
          type: array
          description: |
            Official identifiers that uniquely identify this organization, such
            as EUID, VAT number, or LEI. At least one identifier is required. The
            EUID (European Unique Identifier) is preferred for cross-border
            recognition. Each identifier must specify its type and the value as
            it appears in the official record.
          items:
            $ref: "#/components/schemas/CreateIdentifierRequestDTO"
      required:
      - country
      - postalAddress
      - urls
    CreateCredentialRequestDTO:
      type: object
      properties:
        credentialSchemaId:
          type: string
          format: uuid
          description: |
            Reference to a credential schema ID. This is the credential type
            being requested (for example, a national ID, driving license,
            diploma or other credential type). The credential schema must be
            registered in the same organization as the national register.
        claimSchemaIds:
          type: array
          description: |
            The specific attributes needed from within the credential. If
            omitted, all attributes in the credential may be requested. To
            support data minimization, list only the attributes actually
            needed. For example, an age verification use case may only need
            the birth date from an ID credential, not the full name or address.
            Specify the claim schema ID(s) from the credential schema.
          items:
            type: string
            format: uuid
      required:
      - credentialSchemaId
    CreateIdentifierRequestDTO:
      type: object
      properties:
        value:
          type: string
          description: |
            The identifier exactly as it appears in the official record. For VAT
            numbers and certain national identifiers, this should include the
            two-letter country prefix.
        type:
          type: string
          description: |
            The identifier scheme, such as EUID, VAT, LEI or national business
            register number. This determines how the identifier value is validated
            and how it can be used for cross-border verification. This value must
            match an option from `walletRelyingPartyRegistry.identifierTypes.value`
            in the configuration.
      required:
      - type
      - value
    CreateIntendedUseRequestDTO:
      type: object
      properties:
        validityStart:
          type: string
          format: date-time
          description: |
            When this intended use becomes active. Requests made before this date
            will not be valid.
        validityEnd:
          type: string
          format: date-time
          description: |
            When this intended use expires. After this date, the organization can
            no longer request data for this purpose. If omitted, the intended use
            remains valid until explicitly revoked.
        credentials:
          type: array
          description: |
            The specific credentials (attestations) this organization will request
            from wallets for this intended use. Each credential specifies a type
            and the particular attributes needed. Organizations should request only
            the minimum attributes necessary for their stated purpose.
          items:
            $ref: "#/components/schemas/CreateCredentialRequestDTO"
        purposes:
          type: array
          description: |
            Localized explanations of why this data is being requested, written
            for wallet users who must decide whether to share their information.
            This should reference the legal basis for processing under GDPR
            Article 6. Provide translations for all languages where the service
            operates.
          items:
            $ref: "#/components/schemas/CreatePurposeRequestDTO"
        privacyPolicies:
          type: array
          description: |
            Links to the privacy policy governing this intended use. The privacy
            policy must explain how data will be processed, stored, and protected.
            Provide localized versions for all languages where the service
            operates.
          items:
            $ref: "#/components/schemas/CreatePrivacyPolicyRequestDTO"
      required:
      - validityStart
    CreateLegalPersonRequestDTO:
      type: object
      properties:
        legalNames:
          type: array
          description: |
            The official registered name(s) of the organization as stated
            in business registry records. This must match what appears in
            the official record referenced by the organization's identifier.
          items:
            type: string
        establishedByLaw:
          type: array
          description: |
            For public sector bodies or entities created by statute,
            references to the legal instruments that established the
            organization. This helps document the legal basis for the
            organization's existence and may be relevant for determining
            applicable registration requirements. This value must match
            an option from
            `walletRelyingPartyRegistry.establishedByLawTypes.value` in
            the configuration.
          items:
            type: string
        contact:
          $ref: "#/components/schemas/CreateContactRequestDTO"
          description: Contact and identification details for the organization.
      required:
      - contact
      - legalNames
    CreateNaturalPersonRequestDTO:
      type: object
      properties:
        givenName:
          type: string
          description: |
            The first name(s) of the individual, including middle names where applicable,
            exactly as recorded in official identity documents.
        surname:
          type: string
          description: |
            The family name(s) of the individual, exactly as recorded in official
            identity documents.
        birthdate:
          type: string
          format: date
          description: |
            The individual's date of birth as recorded in official identity documents.
            Used together with other attributes to uniquely identify the person.
        birthplace:
          type: string
          description: |
            The individual's place of birth as recorded in official identity documents.
            Used together with other attributes to uniquely identify the person.
        contact:
          $ref: "#/components/schemas/CreateContactRequestDTO"
          description: |
            Contact and identification details for the individual's professional
            capacity.
      required:
      - birthdate
      - birthplace
      - contact
      - givenName
      - surname
    CreatePrivacyPolicyRequestDTO:
      type: object
      properties:
        policyUri:
          type: string
          description: |
            URL where the privacy policy can be accessed. This should be
            a stable URL that remains valid for the duration of the
            registration.
        type:
          type: string
          description: |
            The type of policy document. This value must match an option from
            `walletRelyingPartyRegistry.privacyPolicyTypes.value` in the
            configuration.
      required:
      - policyUri
      - type
    CreatePurposeRequestDTO:
      type: object
      properties:
        language:
          type: string
          description: |
            The language of this purpose statement. This value must match an option
            from `walletRelyingPartyRegistry.languages.value` in the configuration.
        purpose:
          type: string
          description: |
            A clear explanation of why the data is needed, such as "To verify your
            age for purchasing age-restricted products" or "To confirm your identity
            when opening a bank account". This text is displayed to wallet users at
            the moment they are asked to share data.
      required:
      - language
      - purpose
    CreateServiceDescriptionRequestDTO:
      type: object
      properties:
        language:
          type: string
          description: |
            This value must match an option from
            `walletRelyingPartyRegistry.languages.value` in the
            configuration.
        description:
          type: string
          description: |
            A clear, concise description of the services provided, written
            for a general audience. Avoid legal or technical jargon.
      required:
      - description
      - language
    CreateWalletRelyingPartyRequestDTO:
      type: object
      properties:
        name:
          type: string
          description: |
            A user-friendly name that wallet users will see when asked
            to share their data. This can be a trade name or service name
            that is recognizable to the public, even if it differs from
            the formal legal name.
        isPublicSector:
          type: boolean
          description: |
            Whether this organization is a public sector body. Public bodies
            may have different legal bases for requesting personal data under
            GDPR and may be subject to different registration requirements.
        supportUris:
          type: array
          description: |
            One or more URIs where users can contact the organization for
            support or to exercise their data rights, particularly data deletion
            requests. At least one website URI or email address is strongly
            recommended. Wallet users may be directed here to request deletion
            of data they have shared.
          items:
            type: string
          minItems: 1
        serviceDescriptions:
          type: array
          description: |
            Localized descriptions of the services this organization provides.
            These help wallet users understand what kind of organization is
            requesting their data. Provide descriptions in all languages relevant
            to your user base.
          items:
            $ref: "#/components/schemas/CreateServiceDescriptionRequestDTO"
        entitlements:
          type: array
          description: |
            The formal roles this organization is authorized to perform in the
            wallet ecosystem. Most organizations register as "Service_Provider"
            to request data from wallets. Attestation providers (organizations
            that issue credentials to wallets) must also register their provider
            role, such as "QEAA_Provider" or "PUB_EAA_Provider". An organization
            that both issues and consumes credentials must register both
            entitlements.
          items:
            type: string
          minItems: 1
        intermediaries:
          type: array
          description: |
            Reference to other registered wallet-relying parties that will handle
            wallet interactions on behalf of this organization. When using an
            intermediary, the intermediary's systems connect to wallets using
            their own access certificate, but present this organization's
            registration certificate. The wallet user sees this organization's
            identity and purpose, not the intermediary's.
          items:
            type: string
            format: uuid
          uniqueItems: true
        intendedUses:
          type: array
          description: |
            The specific purposes for which this organization will request data
            from wallets. Each intended use defines a distinct purpose, the
            credentials and attributes needed, and the applicable privacy policy.
            Organizations that only act as intermediaries do not register intended
            uses.
          items:
            $ref: "#/components/schemas/CreateIntendedUseRequestDTO"
        attestations:
          type: array
          description: |
            For organizations registered as attestation providers (for example,
            QEAA_Provider or PID_Provider), this lists the credential types they
            issue to wallets. Reference credential schemas from the Catologue of
            Attestations where available.
          items:
            type: string
            format: uuid
        legalPerson:
          $ref: "#/components/schemas/CreateLegalPersonRequestDTO"
          description: |
            Identity information for an organization registering as a wallet-relying
            party. Use this when registering a company, public body, association, or
            any other incorporated entity. Exactly one of `legalPerson` or
            `naturalPerson` must be provided.
        naturalPerson:
          $ref: "#/components/schemas/CreateNaturalPersonRequestDTO"
          description: |
            Identity information for an individual registering as a wallet-relying
            party. Use this section when registering a sole trader, freelance
            professional, or other self-employed individual who operates under their
            own name rather than through an incorporated entity. Exactly one of
            `legalPerson` or `naturalPerson` must be provided.
      required:
      - entitlements
      - name
      - supportUris
    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
            - NATIONAL_REGISTER
            - 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
        slug:
          type: string
          maxLength: 255
          minLength: 0
          pattern: "^[A-Za-z0-9-]*$"
      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
    CoreSignatureRequestDTOObject:
      type: object
      properties:
        issuer:
          type: string
          format: uuid
        issuer_key:
          type: string
          format: uuid
        issuer_certificate:
          type: string
          format: uuid
        signer:
          type: string
        data: {}
        validity_start:
          type: string
          format: date-time
        validity_end:
          type: string
          format: date-time
      required:
      - data
      - issuer
      - signer
    CoreSignatureResponseDTO:
      type: object
      properties:
        result:
          type: string
        id:
          type: string
          format: uuid
      required:
      - id
      - result
    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."
        expiresAt:
          type: string
          format: date-time
      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
    PresentationSubmissionSubmitCredentialV2RequestDTO:
      type: object
      properties:
        credentialId:
          type: string
          format: uuid
          description: |
            Select a credential.
        userSelections:
          type: array
          items:
            type: string
      required:
      - credentialId
    PresentationSubmitV2RequestDTO:
      type: object
      properties:
        interactionId:
          type: string
          format: uuid
        submission:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: "#/components/schemas/PresentationSubmissionSubmitCredentialV2RequestDTO"
          minProperties: 1
      required:
      - interactionId
      - submission
    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:
        interactionId:
          type: string
          format: uuid
        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:
        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.
        interactionType:
          type: string
          enum:
          - ISSUANCE
          - VERIFICATION
        keyStorageSecurityLevels:
          type: array
          items:
            type: string
        keyAlgorithms:
          type: array
          items:
            type: string
      required:
      - interactionId
      - interactionType
    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"
        keyStorageSecurityLevels:
          type: array
          items:
            type: string
        keyAlgorithms:
          type: array
          items:
            type: string
      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
          description: Identifier status
          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
    RegisterWalletUnitProviderRequestDTO:
      type: object
      properties:
        type:
          type: string
        url:
          type: string
      required:
      - type
      - url
    RegisterWalletUnitRequestDTO:
      type: object
      properties:
        keyType:
          type: string
        walletProvider:
          $ref: "#/components/schemas/RegisterWalletUnitProviderRequestDTO"
      required:
      - keyType
      - walletProvider
    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: |
            UUID of the credential schema to use for issuing this credential.
            The `id` field is returned when creating a credential schema; do not
            use the `schemaId` (document type) value.
        issuerDid:
          type: string
          deprecated: true
          description: "Use `issuer` to set the identifier, regardless of type."
        issuer:
          type: string
          format: uuid
          description: |
            UUID of the identifier to use for issuing this credential. This references
            an identifier entity (which could be a DID, key, or certificate) created
            via the identifiers API. Use the `id` field from the identifier, not the
            actual DID string or key value.
        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: |
            Use `protocol`.
          example: OPENID4VCI_DRAFT13
        protocol:
          type: string
          description: |
            Issuance protocol to use for issuing the credential to a wallet. Check your
            `issuanceProtocol` configuration for supported options and reference
            the configured instance name.
          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."
        expiresAt:
          type: string
          format: date-time
        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
        keyStorageSecurity:
          type: string
          description: |
            Specifies requirements that the holder's wallet must meet for credential
            issuance, including key storage type and wallet attestation.
          example: HIGH
        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
        requiresAppAttestation:
          type: boolean
        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: |
            Document type or credential type identifier. For credential formats requiring
            a schema ID (check your `format` configuration for `REQUIRES_SCHEMA_ID`), specify
            the document type here. For ISO mdoc, use DocType. For IETF SD-JWT VC, use the vct
            value. For VC barcodes, use predefined types like `UtopiaEmploymentDocument`. For
            formats not requiring a schema ID, do not pass this field and a URI will be
            auto-generated.
          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
    UpdateContactRequestDTO:
      type: object
      properties:
        country:
          type: string
        emails:
          type: array
          items:
            type: string
        phoneNumbers:
          type: array
          items:
            type: string
        urls:
          type: array
          items:
            type: string
        postalAddress:
          type: string
        identifiers:
          type: array
          items:
            $ref: "#/components/schemas/UpdateIdentifierRequestDTO"
    UpdateCredentialRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        credentialSchemaId:
          type: string
          format: uuid
        claimSchemaIds:
          type: array
          items:
            type: string
            format: uuid
    UpdateIdentifierRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        value:
          type: string
        type:
          type: string
    UpdateIntendedUseRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        validityStart:
          type: string
          format: date-time
        validityEnd:
          type: string
          format: date-time
        credentials:
          type: array
          items:
            $ref: "#/components/schemas/UpdateCredentialRequestDTO"
        purposes:
          type: array
          items:
            $ref: "#/components/schemas/UpdatePurposeRequestDTO"
        privacyPolicies:
          type: array
          items:
            $ref: "#/components/schemas/UpdatePrivacyPolicyRequestDTO"
    UpdateLegalPersonRequestDTO:
      type: object
      properties:
        legalNames:
          type: array
          items:
            type: string
        establishedByLaw:
          type: array
          items:
            type: string
        contact:
          $ref: "#/components/schemas/UpdateContactRequestDTO"
    UpdateNaturalPersonRequestDTO:
      type: object
      properties:
        givenName:
          type: string
        surname:
          type: string
        birthdate:
          type: string
          format: date
        birthplace:
          type: string
        contact:
          $ref: "#/components/schemas/UpdateContactRequestDTO"
    UpdatePrivacyPolicyRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        policyUri:
          type: string
        type:
          type: string
    UpdatePurposeRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        language:
          type: string
        purpose:
          type: string
    UpdateServiceDescriptionRequestDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        language:
          type: string
        description:
          type: string
    UpdateWalletRelyingPartyRequestDTO:
      type: object
      properties:
        state:
          $ref: "#/components/schemas/WalletRelyingPartyStateEnum"
        name:
          type: string
        isPublicSector:
          type: boolean
        supportUris:
          type: array
          items:
            type: string
        serviceDescriptions:
          type: array
          items:
            $ref: "#/components/schemas/UpdateServiceDescriptionRequestDTO"
        entitlements:
          type: array
          items:
            type: string
        attestations:
          type: array
          items:
            type: string
            format: uuid
        intermediaries:
          type: array
          items:
            type: string
            format: uuid
          uniqueItems: true
        intendedUses:
          type: array
          items:
            $ref: "#/components/schemas/UpdateIntendedUseRequestDTO"
        legalPerson:
          $ref: "#/components/schemas/UpdateLegalPersonRequestDTO"
        naturalPerson:
          $ref: "#/components/schemas/UpdateNaturalPersonRequestDTO"
    WalletRelyingPartyStateEnum:
      type: string
      enum:
      - ACTIVE
      - REVOKED
      - SUSPENDED
    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
          description: Name of the organisation
        roles:
          type: array
          description: |2
                Array of functional roles that define what actions are allowed in
                this organization.
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - NATIONAL_REGISTER
            - 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`.
        walletProvider:
          type: string
          description: |
            Specify which configured wallet provider this organization will use
            to issue attestations.
          example: PROCIVIS_ONE
        walletProviderIssuer:
          type: string
          description: |
            Specify which identifier to use as the attestation issuer. This can
            be any type of identifier but it must be backed by an ECDSA key.
        slug:
          type: string
          default: my-org
          maxLength: 255
          minLength: 0
          pattern: "^[A-Za-z0-9-]*$"
    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
        showGetStartedNotification:
          type: boolean
        showSupportNotification:
          type: boolean
    ProfileUpdateResponseDTO:
      type: object
      properties:
        loginCredentialUrls:
          $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
    AggregatedRegistrationCertificateResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        maxExpiryDate:
          type: string
          format: date-time
        walletRelyingPartyName:
          type: string
        walletRelyingPartyIdentifier:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - maxExpiryDate
      - walletRelyingPartyIdentifier
      - walletRelyingPartyName
    SearchEntityResponseDTOAggregatedRegistrationCertificateResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/AggregatedRegistrationCertificateResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    ListRegistrationCertificateResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        validityStart:
          type: string
          format: date-time
        validityEnd:
          type: string
          format: date-time
        state:
          type: string
          enum:
          - ACTIVE
          - EXPIRED
          - NOT_YET_ACTIVE
          - REVOKED
        certificate:
          type: string
      required:
      - certificate
      - createdDate
      - id
      - lastModified
      - state
      - validityEnd
      - validityStart
    SearchEntityResponseDTOListRegistrationCertificateResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListRegistrationCertificateResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    walletProviderType:
      type: array
      description: Return only wallet units with the specified wallet provider types.
      items:
        type: string
        description: Return only wallet units with the specified wallet provider types.
    os:
      type: array
      description: Return only wallet units with the specified operating systems.
      items:
        type: string
        description: Return only wallet units with the specified operating systems.
        enum:
        - ANDROID
        - IOS
        - WEB
    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
      required:
      - createdDate
      - id
      - lastModified
      - name
      - os
      - status
      - walletProviderType
    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
        authenticationKeyJwk:
          $ref: "#/components/schemas/STSJwksKeyResponseDTO"
        organisationId:
          type: string
          format: uuid
      required:
      - createdDate
      - id
      - lastModified
      - name
      - os
      - status
      - walletProviderType
    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
    ListWalletRelyingPartyResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        entitlements:
          type: array
          items:
            type: string
        state:
          type: string
          description: The current registration status.
          enum:
          - ACTIVE
          - REVOKED
          - SUSPENDED
      required:
      - createdDate
      - id
      - lastModified
      - name
    SearchEntityResponseDTOListWalletRelyingPartyResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListWalletRelyingPartyResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    ContactIdentifierResponseDTO:
      type: object
      properties:
        value:
          type: string
        type:
          type: string
      required:
      - type
      - value
    DetailContactResponseDTO:
      type: object
      properties:
        country:
          type: string
        emails:
          type: array
          items:
            type: string
        phoneNumbers:
          type: array
          items:
            type: string
        urls:
          type: array
          items:
            type: string
        postalAddress:
          type: string
        identifiers:
          type: array
          items:
            $ref: "#/components/schemas/ContactIdentifierResponseDTO"
      required:
      - country
      - postalAddress
      - urls
    DetailCredentialResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        credentialSchemaId:
          type: string
          format: uuid
        claimSchemaIds:
          type: array
          items:
            type: string
            format: uuid
      required:
      - createdDate
      - credentialSchemaId
      - id
      - lastModified
    DetailIntendedUseResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        validityStart:
          type: string
          format: date-time
        validityEnd:
          type: string
          format: date-time
        credentials:
          type: array
          items:
            $ref: "#/components/schemas/DetailCredentialResponseDTO"
        purposes:
          type: array
          items:
            $ref: "#/components/schemas/DetailPurposeResponseDTO"
        privacyPolicies:
          type: array
          items:
            $ref: "#/components/schemas/DetailPrivacyPolicyResponseDTO"
      required:
      - createdDate
      - id
      - lastModified
      - validityStart
    DetailIntermediaryResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - name
    DetailLegalPersonResponseDTO:
      type: object
      properties:
        legalNames:
          type: array
          items:
            type: string
        establishedByLaw:
          type: array
          items:
            type: string
        contact:
          $ref: "#/components/schemas/DetailContactResponseDTO"
      required:
      - contact
      - legalNames
    DetailNaturalPersonResponseDTO:
      type: object
      properties:
        givenName:
          type: string
        surname:
          type: string
        birthdate:
          type: string
          format: date
        birthplace:
          type: string
        contact:
          $ref: "#/components/schemas/DetailContactResponseDTO"
      required:
      - birthdate
      - birthplace
      - contact
      - givenName
      - surname
    DetailPrivacyPolicyResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        policyUri:
          type: string
        type:
          type: string
      required:
      - createdDate
      - id
      - lastModified
      - policyUri
      - type
    DetailPurposeResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        language:
          type: string
        purpose:
          type: string
      required:
      - createdDate
      - id
      - language
      - lastModified
      - purpose
    DetailServiceDescriptionResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        language:
          type: string
        description:
          type: string
      required:
      - createdDate
      - description
      - id
      - language
      - lastModified
    DetailWalletRelyingPartyResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        name:
          type: string
        entitlements:
          type: array
          items:
            type: string
        state:
          type: string
          description: The current registration status.
          enum:
          - ACTIVE
          - REVOKED
          - SUSPENDED
        isPublicSector:
          type: boolean
        supportUris:
          type: array
          items:
            type: string
          minItems: 1
        intermediaries:
          type: array
          items:
            $ref: "#/components/schemas/DetailIntermediaryResponseDTO"
        serviceDescriptions:
          type: array
          items:
            $ref: "#/components/schemas/DetailServiceDescriptionResponseDTO"
        intendedUses:
          type: array
          items:
            $ref: "#/components/schemas/DetailIntendedUseResponseDTO"
        legalPerson:
          $ref: "#/components/schemas/DetailLegalPersonResponseDTO"
        naturalPerson:
          $ref: "#/components/schemas/DetailNaturalPersonResponseDTO"
        attestations:
          type: array
          items:
            type: string
            format: uuid
      required:
      - createdDate
      - id
      - lastModified
      - name
      - supportUris
    JsonNode: {}
    PublicClaimDTO:
      type: object
      properties:
        path:
          type: string
        values:
          type: array
          items:
            type: string
      required:
      - path
    PublicCredentialDTO:
      type: object
      properties:
        format:
          type: string
        meta:
          $ref: "#/components/schemas/JsonNode"
        claim:
          type: array
          items:
            $ref: "#/components/schemas/PublicClaimDTO"
      required:
      - format
      - meta
    PublicIdentifierDTO:
      type: object
      properties:
        type:
          type: string
        identifier:
          type: string
      required:
      - identifier
      - type
    PublicIntendedUseDTO:
      type: object
      properties:
        purpose:
          type: array
          items:
            $ref: "#/components/schemas/PublicMultiLangStringDTO"
          minItems: 1
        privacyPolicy:
          type: array
          items:
            $ref: "#/components/schemas/PublicPolicyDTO"
          minItems: 1
        createdAt:
          type: string
          format: date-time
        revokedAt:
          type: string
          format: date-time
        credential:
          type: array
          items:
            $ref: "#/components/schemas/PublicCredentialDTO"
          minItems: 1
        intendedUseIdentifier:
          type: string
      required:
      - createdAt
      - credential
      - intendedUseIdentifier
      - privacyPolicy
      - purpose
    PublicLawDTO:
      type: object
      properties:
        lang:
          type: string
        legalBasis:
          type: string
      required:
      - lang
      - legalBasis
    PublicLegalEntityDTO:
      type: object
      properties:
        legalPerson:
          $ref: "#/components/schemas/PublicLegalPersonDTO"
        naturalPerson:
          $ref: "#/components/schemas/PublicNaturalPersonDTO"
        identifier:
          type: array
          items:
            $ref: "#/components/schemas/PublicIdentifierDTO"
        postalAddress:
          type: string
        country:
          type: string
        email:
          type: array
          items:
            type: string
        phone:
          type: array
          items:
            type: string
        infoURI:
          type: array
          items:
            type: string
      required:
      - country
      - postalAddress
    PublicLegalPersonDTO:
      type: object
      properties:
        legalName:
          type: array
          items:
            type: string
          minItems: 1
        establishedByLaw:
          type: array
          items:
            $ref: "#/components/schemas/PublicLawDTO"
      required:
      - legalName
    PublicMultiLangStringDTO:
      type: object
      properties:
        lang:
          type: string
        content:
          type: string
      required:
      - content
      - lang
    PublicNaturalPersonDTO:
      type: object
      properties:
        givenName:
          type: string
        familyName:
          type: string
        dateOfBirth:
          type: string
          format: date-time
        placeOfBirth:
          type: string
      required:
      - familyName
      - givenName
    PublicPolicyDTO:
      type: object
      properties:
        type:
          type: string
        policyURI:
          type: string
      required:
      - policyURI
      - type
    PublicWalletRelyingPartyDTO:
      type: object
      properties:
        tradeName:
          type: string
        supportURI:
          type: array
          items:
            type: string
          minItems: 1
        srvDescription:
          type: array
          items:
            $ref: "#/components/schemas/PublicMultiLangStringDTO"
          minItems: 1
        intendedUse:
          type: array
          items:
            $ref: "#/components/schemas/PublicIntendedUseDTO"
        isPSB:
          type: boolean
        entitlement:
          type: array
          items:
            type: string
          minItems: 1
        providesAttestations:
          type: array
          items:
            $ref: "#/components/schemas/PublicCredentialDTO"
        supervisoryAuthority:
          $ref: "#/components/schemas/PublicLegalEntityDTO"
        registryURI:
          type: string
        x5c:
          type: string
        policy:
          type: array
          items:
            $ref: "#/components/schemas/PublicPolicyDTO"
        providerType:
          type: string
        usesIntermediary:
          type: array
          items:
            required:
            - entitlement
            - isPSB
            - registryURI
            - srvDescription
            - supervisoryAuthority
            - supportURI
        isIntermediary:
          type: boolean
        intermediary:
          type: boolean
      required:
      - entitlement
      - isPSB
      - registryURI
      - srvDescription
      - supervisoryAuthority
      - supportURI
    ListUserResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        email:
          type: string
        username:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        language:
          type: string
        sub:
          type: string
        isAdmin:
          type: boolean
        credentialLoginEnabled:
          type: boolean
      required:
      - createdDate
      - id
      - lastModified
    SearchEntityResponseDTOListUserResponseDTO:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: "#/components/schemas/ListUserResponseDTO"
        totalItems:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      required:
      - totalItems
      - totalPages
      - values
    types:
      type: array
      description: Filter by one or more trust entity types.
      items:
        type: string
        description: Filter by one or more trust entity types.
        enum:
        - CA
        - DID
    states:
      type: array
      description: Filter by one or more trust entity types.
      items:
        type: string
        description: Trust entity status
        enum:
        - ACTIVE
        - REMOVED
        - REMOVED_AND_WITHDRAWN
        - WITHDRAWN
    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
        slug:
          type: string
        roles:
          type: array
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - NATIONAL_REGISTER
            - 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
        slug:
          type: string
        roles:
          type: array
          items:
            type: string
            enum:
            - HOLDER
            - ISSUER
            - NATIONAL_REGISTER
            - VERIFIER
            - WALLET_PROVIDER
        description:
          type: string
        walletProvider:
          type: string
        walletProviderIssuer:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
      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
            - NATIONAL_REGISTER
            - 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
        keyStorageSecurity:
          type: string
          description: |
            Specifies requirements that the holder's wallet must meet for credential
            issuance, including key storage type and wallet attestation.
          example: HIGH
        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
        requiresAppAttestation:
          type: boolean
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
          description: |
            UUID of this credential schema. Use this value as `credentialSchemaId`
            when creating credentials with this schema.
        schemaId:
          type: string
          description: |
            Document type or credential type identifier used by the credential format.
            This is the semantic identifier for the credential type, not the database
            ID of this schema record.
        schemaType:
          type: string
          description: |
            System-assigned schema type for credential validation. Automatically set
            based on the credential format.
        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:
          type: array
          items:
            $ref: "#/components/schemas/ProofClaimSchemaNestedResponseDTO"
      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
    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
        keyStorageSecurity:
          type: string
          description: |
            Specifies requirements that the holder's wallet must meet for credential
            issuance, including key storage type and wallet attestation.
          example: HIGH
        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
        requiresAppAttestation:
          type: boolean
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
          description: |
            UUID of this credential schema. Use this value as `credentialSchemaId`
            when creating credentials with this schema.
        schemaId:
          type: string
          description: |
            Document type or credential type identifier used by the credential format.
            This is the semantic identifier for the credential type, not the database
            ID of this schema record.
        schemaType:
          type: string
          description: |
            System-assigned schema type for credential validation. Automatically set
            based on the credential format.
        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
    DetailCredentialResponseDTOPresentationDefinitionClaimResponseDTO:
      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: For credentials issued with LVVC revocation.
        suspendEndDate:
          type: string
          format: date-time
          description: Scheduled date for credential reactivation.
        state:
          type: string
          description: The current state representation of the credential.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - INTERACTION_EXPIRED
          - OFFERED
          - PENDING
          - REJECTED
          - REVOKED
          - SUSPENDED
        issuer:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Issuer metadata.
        holder:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Holder metadata.
        issuerCertificate:
          $ref: "#/components/schemas/DetailCertificateResponseDTO"
          description: Certificate details if issuer used an X.509 to issue credential.
        redirectUri:
          type: string
          description: URI holder is redirected to after credential issuance.
        lastModified:
          type: string
          format: date-time
        role:
          type: string
          description: "The role the system has in relation to the credential. For\
            \ example,if the system issued the credential this value will be `ISSUER`.\
            \ If the systemreceived this credential as a wallet this value will be\
            \ `HOLDER`."
          enum:
          - HOLDER
          - ISSUER
          - VERIFIER
        schema:
          $ref: "#/components/schemas/CredentialSchemaResponseDTO"
          description: Schema of the credential.
        claims:
          type: array
          description: Claims made by the credential issuer.
          items:
            $ref: "#/components/schemas/PresentationDefinitionClaimResponseDTO"
        mdocMsoValidity:
          $ref: "#/components/schemas/MdocMsoValidityResponseDTO"
          description: Validity details for ISO mdocs.
        exchange:
          type: string
          deprecated: true
        protocol:
          type: string
          description: Issuance protocol used to issue this credential.
        profile:
          type: string
          description: Country profile associated with this credential.
        walletUnitAttestation:
          $ref: "#/components/schemas/WalletUnitAttestationResponseDTO"
          description: |
            The wallet unit attestation, or "key attestation", that was provided by the holder's
            wallet during credential issuance. This field is only present if the wallet provided
            a valid attestation when the credential was issued, a requirement for the issuance of
            certain credentials such as EU PIDs.
        walletAppAttestation:
          $ref: "#/components/schemas/WalletAppAttestationResponseDTO"
          description: |
            The wallet app attestation that was provided by the holder's wallet during credential
            issuance. This field is only present if the wallet provided a valid attestation when
            the credential was issued. The attestation serves as proof that the wallet app instance
            is a legitimate installation and may be required for the issuance of certain credentials.
      required:
      - claims
      - createdDate
      - id
      - lastModified
      - protocol
      - role
      - schema
      - state
    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
        keyStorageSecurity:
          type: string
          description: |
            Specifies requirements that the holder's wallet must meet for credential
            issuance, including key storage type and wallet attestation.
          example: HIGH
        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
        requiresAppAttestation:
          type: boolean
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
          description: |
            UUID of this credential schema. Use this value as `credentialSchemaId`
            when creating credentials with this schema.
        schemaId:
          type: string
          description: |
            Document type or credential type identifier used by the credential format.
            This is the semantic identifier for the credential type, not the database
            ID of this schema record.
        schemaType:
          type: string
          description: |
            System-assigned schema type for credential validation. Automatically set
            based on the credential format.
        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
    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
    PresentationDefinitionClaimResponseDTO:
      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
        userSelection:
          type: boolean
        required:
          type: boolean
      required:
      - path
      - required
      - schema
      - userSelection
    PresentationDefinitionCredentialQueryResponseDTO:
      type: object
      properties:
        multiple:
          type: boolean
        applicableCredentials:
          type: array
          items:
            $ref: "#/components/schemas/DetailCredentialResponseDTOPresentationDefinitionClaimResponseDTO"
        failureHint:
          $ref: "#/components/schemas/PresentationDefinitionFailureHintResponseDTO"
      required:
      - multiple
    PresentationDefinitionCredentialSetResponseDTO:
      type: object
      properties:
        required:
          type: boolean
        options:
          type: array
          items:
            type: array
            items:
              type: string
          minItems: 1
      required:
      - options
      - required
    PresentationDefinitionFailureHintResponseDTO:
      type: object
      properties:
        credentialSchema:
          $ref: "#/components/schemas/DetailCredentialSchemaResponseDTO"
        reason:
          type: string
          enum:
          - CONSTRAINT
          - NO_CREDENTIAL
          - VALIDITY
      required:
      - reason
    PresentationDefinitionV2ResponseDTO:
      type: object
      properties:
        credentialQueries:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/PresentationDefinitionCredentialQueryResponseDTO"
          minProperties: 1
        credentialSets:
          type: array
          items:
            $ref: "#/components/schemas/PresentationDefinitionCredentialSetResponseDTO"
          minItems: 1
      required:
      - credentialQueries
      - credentialSets
    WalletAppAttestationResponseDTO:
      type: object
      properties:
        name:
          type: string
        link:
          type: string
        attestation:
          type: string
      required:
      - attestation
      - name
    WalletUnitAttestationResponseDTO:
      type: object
      properties:
        attestation:
          type: string
      required:
      - attestation
    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
    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.
    verifiers:
      type: array
      items:
        type: string
    roles:
      type: array
      description: "Filter proof requests by one or more roles: requested by the system\
        \ or received by the system."
      enum:
      - VERIFIER
      - HOLDER
      items:
        type: string
        description: "Filter proof requests by one or more roles: requested by the\
          \ system or received by the system."
        enum:
        - VERIFIER
        - HOLDER
    profiles:
      type: array
      description: Filter by one or more country profiles.
      items:
        type: string
        description: Filter by one or more country profiles.
    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
          - INTERACTION_EXPIRED
          - 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
    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
    DetailCredentialResponseDTODetailClaimResponseDTOCredentialClaimSchemaResponseDTO:
      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: For credentials issued with LVVC revocation.
        suspendEndDate:
          type: string
          format: date-time
          description: Scheduled date for credential reactivation.
        state:
          type: string
          description: The current state representation of the credential.
          enum:
          - ACCEPTED
          - CREATED
          - ERROR
          - INTERACTION_EXPIRED
          - OFFERED
          - PENDING
          - REJECTED
          - REVOKED
          - SUSPENDED
        issuer:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Issuer metadata.
        holder:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
          description: Holder metadata.
        issuerCertificate:
          $ref: "#/components/schemas/DetailCertificateResponseDTO"
          description: Certificate details if issuer used an X.509 to issue credential.
        redirectUri:
          type: string
          description: URI holder is redirected to after credential issuance.
        lastModified:
          type: string
          format: date-time
        role:
          type: string
          description: "The role the system has in relation to the credential. For\
            \ example,if the system issued the credential this value will be `ISSUER`.\
            \ If the systemreceived this credential as a wallet this value will be\
            \ `HOLDER`."
          enum:
          - HOLDER
          - ISSUER
          - VERIFIER
        schema:
          $ref: "#/components/schemas/CredentialSchemaResponseDTO"
          description: Schema of the credential.
        claims:
          type: array
          description: Claims made by the credential issuer.
          items:
            $ref: "#/components/schemas/DetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
        mdocMsoValidity:
          $ref: "#/components/schemas/MdocMsoValidityResponseDTO"
          description: Validity details for ISO mdocs.
        exchange:
          type: string
          deprecated: true
        protocol:
          type: string
          description: Issuance protocol used to issue this credential.
        profile:
          type: string
          description: Country profile associated with this credential.
        walletUnitAttestation:
          $ref: "#/components/schemas/WalletUnitAttestationResponseDTO"
          description: |
            The wallet unit attestation, or "key attestation", that was provided by the holder's
            wallet during credential issuance. This field is only present if the wallet provided
            a valid attestation when the credential was issued, a requirement for the issuance of
            certain credentials such as EU PIDs.
        walletAppAttestation:
          $ref: "#/components/schemas/WalletAppAttestationResponseDTO"
          description: |
            The wallet app attestation that was provided by the holder's wallet during credential
            issuance. This field is only present if the wallet provided a valid attestation when
            the credential was issued. The attestation serves as proof that the wallet app instance
            is a legitimate installation and may be required for the issuance of certain credentials.
      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
          - INTERACTION_EXPIRED
          - PENDING
          - REJECTED
          - REQUESTED
          - RETRACTED
        verifier:
          $ref: "#/components/schemas/ListIdentifierResponseDTO"
        verifierCertificate:
          $ref: "#/components/schemas/DetailCertificateResponseDTO"
        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
    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/DetailCredentialResponseDTODetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
        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
    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/DetailCredentialResponseDTODetailClaimResponseDTOCredentialClaimSchemaResponseDTO"
          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
        showGetStartedNotification:
          type: boolean
          description: "When `true`, the `one-frontend` service offers a link to getting\
            \ started docs."
        showSupportNotification:
          type: boolean
          description: "When `true`, the `one-frontend` service offers users guidance\
            \ for help topics."
    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:
            - CACHE_DELETE
            - CREDENTIAL_DELETE
            - CREDENTIAL_DETAIL
            - CREDENTIAL_EDIT
            - 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_CREATE
            - HISTORY_DETAIL
            - HISTORY_LIST
            - HOLDER_CREDENTIAL_LIST
            - HOLDER_WALLET_UNIT_DETAIL
            - HOLDER_WALLET_UNIT_REGISTER
            - 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
            - REGISTRATION_CERTIFICATE_CREATE
            - REGISTRATION_CERTIFICATE_LIST
            - REGISTRATION_CERTIFICATE_REVOCATION_CHECK
            - REGISTRATION_CERTIFICATE_REVOKE
            - 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
            - SYSTEM_HISTORY_DETAIL
            - SYSTEM_HISTORY_EXPORT
            - SYSTEM_HISTORY_LIST
            - TASK_CREATE
            - 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
            - USER_LIST
            - WALLET_ATTESTATION_CREATE
            - WALLET_ATTESTATION_DETAIL
            - WALLET_ATTESTATION_EDIT
            - WALLET_UNIT_DELETE
            - WALLET_UNIT_DETAIL
            - WALLET_UNIT_LIST
            - WALLET_UNIT_REVOKE
            - WRP_CREATE
            - WRP_DELETE
            - WRP_DETAIL
            - WRP_EDIT
            - WRP_LIST
            - WRP_REACTIVATE
            - WRP_REVOKE
            - WRP_SUSPEND
          uniqueItems: true
        logo:
          type: string
        slug:
          type: string
      required:
      - id
    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
        organisationId:
          type: string
        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
      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
        organisationId:
          type: string
        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
        logo:
          type: string
        discoveryUrl:
          type: string
      required:
      - acceptedIssuerId
      - clientId
      - grantTypes
      - id
      - name
      - organisationId
      - proofSchemaId
      - redirectUris
      - scopes
      - verifier
    keyTypes:
      type: array
      items:
        type: string
        description: Return only keys of the specified algorithms.
        enum:
        - BBS_PLUS
        - DILITHIUM
        - ECDSA
        - EDDSA
    keyStorages:
      type: array
      items:
        type: string
        description: |
          Return only keys stored in the specified storage types.
          Possible values come from your configuration.
    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
      description: Return keys used as one or more verification methods of a DID.
      items:
        type: string
        description: Return keys used as one or more verification methods of a DID.
        enum:
        - ASSERTION_METHOD
        - AUTHENTICATION
        - CAPABILITY_DELEGATION
        - CAPABILITY_INVOCATION
        - KEY_AGREEMENT
        - UPDATE_KEY
        - VERIFICATION_METHOD
    didMethods:
      type: array
      description: Filter by one or more DID methods.
      items:
        type: string
        description: Filter by one or more DID methods.
    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
          description: Identifier status
          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
    CoreListKeyResponseDTO:
      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
        storageType:
          type: string
        isRemote:
          type: boolean
      required:
      - createdDate
      - id
      - keyType
      - lastModified
      - name
      - publicKey
      - storageType
    DetailHolderWalletUnitResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        providerWalletUnitId:
          type: string
        walletProviderUrl:
          type: string
        walletProviderType:
          type: string
        walletProviderName:
          type: string
        status:
          type: string
          enum:
          - ACTIVE
          - ERROR
          - PENDING
          - REVOKED
        authenticationKey:
          $ref: "#/components/schemas/CoreListKeyResponseDTO"
      required:
      - authenticationKey
      - createdDate
      - id
      - lastModified
      - providerWalletUnitId
      - status
      - walletProviderName
      - walletProviderType
      - walletProviderUrl
    entityTypes:
      type: array
      description: Return only events associated with the specified entity type(s).
        `PROVIDER` and `INTERACTION` apply only if `source = BRIDGE`.
      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
        - KEY
        - ORGANISATION
        - PROOF
        - PROOF_SCHEMA
        - PROVIDER
        - STS_IAM_ROLE
        - STS_ORGANISATION
        - STS_ROLE
        - STS_TOKEN
        - TRUST_ANCHOR
        - TRUST_ENTITY
        - USER
        - WALLET_RELYING_PARTY
        - WALLET_UNIT
    entityIds:
      type: array
      description: Return only history events associated with the provided entity
        UUIDs.
      items:
        type: string
        description: Return only history events associated with the provided entity
          UUIDs.
    actions:
      type: array
      description: Filter by event action.
      enum:
      - ACCEPTED
      - ACTIVATED
      - CLAIMS_REMOVED
      - CREATED
      - CSR_GENERATED
      - DEACTIVATED
      - DELETED
      - ERRORED
      - EXPIRED
      - IMPORTED
      - INTERACTION_CREATED
      - ISSUED
      - OFFERED
      - PENDING
      - REACTIVATED
      - REJECTED
      - REMOVED
      - REQUESTED
      - RESTORED
      - RETRACTED
      - REVOKED
      - SHARED
      - SUSPENDED
      - UPDATED
      - WITHDRAWN
      items:
        type: string
        description: Filter by event action.
        enum:
        - ACCEPTED
        - ACTIVATED
        - CLAIMS_REMOVED
        - CREATED
        - CSR_GENERATED
        - DEACTIVATED
        - DELETED
        - ERRORED
        - EXPIRED
        - IMPORTED
        - INTERACTION_CREATED
        - ISSUED
        - OFFERED
        - PENDING
        - REACTIVATED
        - REJECTED
        - REMOVED
        - REQUESTED
        - RESTORED
        - RETRACTED
        - REVOKED
        - SHARED
        - SUSPENDED
        - UPDATED
        - WITHDRAWN
    sources:
      type: array
      description: Filter history events by source.
      items:
        type: string
        description: Filter history events by source.
        enum:
        - BFF
        - BRIDGE
        - CORE
        - STS
        - WRPR
    EmbeddedOrganisationResponseDTO:
      type: object
      properties:
        name:
          type: string
        logo:
          type: string
        id:
          type: string
    HistoryUserResponseDTO:
      type: object
      properties:
        email:
          type: string
        username:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        sub:
          type: string
      required:
      - sub
    ListHistoryResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: "Event ID. Used by [event details](/desk/gethistorybyid) endpoint."
        createdDate:
          type: string
          format: date-time
        source:
          type: string
        action:
          type: string
        name:
          type: string
        entityType:
          type: string
        entityId:
          type: string
        organisation:
          $ref: "#/components/schemas/EmbeddedOrganisationResponseDTO"
        target:
          type: string
        user:
          $ref: "#/components/schemas/HistoryUserResponseDTO"
      required:
      - action
      - createdDate
      - entityType
      - id
      - name
      - source
    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
        source:
          type: string
        action:
          type: string
        name:
          type: string
        entityType:
          type: string
        entityId:
          type: string
        organisation:
          $ref: "#/components/schemas/EmbeddedOrganisationResponseDTO"
        target:
          type: string
        user:
          $ref: "#/components/schemas/HistoryUserResponseDTO"
        metadata: {}
      required:
      - action
      - createdDate
      - entityType
      - id
      - name
      - source
    StreamingResponseBody: {}
    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
    issuers:
      type: array
      items:
        type: string
    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
          - INTERACTION_EXPIRED
          - 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
    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:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
    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
        supportedInputMode:
          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
    ConfigIssuanceProtocolParamsResponseDTO:
      type: object
      properties:
        redirectUri:
          $ref: "#/components/schemas/RedirectUriParamsResponseDTO"
    ConfigItemResponseDTOConfigAuthorizationCodeFlowParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        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:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        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:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        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:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigFormatParamsResponseDTO"
    ConfigItemResponseDTOConfigIssuanceProtocolParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigIssuanceProtocolParamsResponseDTO"
    ConfigItemResponseDTOConfigKeyAlgorithmParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigKeyAlgorithmParamsResponseDTO"
    ConfigItemResponseDTOConfigKeySecurityLevelParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigKeySecurityLevelParamsResponseDTO"
    ConfigItemResponseDTOConfigVerificationProtocolParamsResponseDTO:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        order:
          type: integer
          format: int32
        enabled:
          type: boolean
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        params:
          $ref: "#/components/schemas/ConfigVerificationProtocolParamsResponseDTO"
    ConfigItemResponseDTOVoid:
      type: object
      properties:
        type:
          type: string
        display:
          oneOf:
          - type: string
          - $ref: "#/components/schemas/I18nResponseDTO"
        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
        holderPriority:
          type: integer
          format: int32
    ConfigKeySecurityLevelHolderParamsResponseDTO:
      type: object
      properties:
        priority:
          type: integer
          format: int32
        keyStorages:
          type: array
          items:
            type: string
    ConfigKeySecurityLevelParamsResponseDTO:
      type: object
      properties:
        holder:
          $ref: "#/components/schemas/ConfigKeySecurityLevelHolderParamsResponseDTO"
    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/ConfigItemResponseDTOVoid"
          description: Revocation methods for credential status.
        issuanceProtocol:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigIssuanceProtocolParamsResponseDTO"
          description: Issuance protocols for the direct exchange of credentials.
        verificationProtocol:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigVerificationProtocolParamsResponseDTO"
          description: Verification protocols for the direct exchange of credentials.
        transport:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOVoid"
          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/ConfigItemResponseDTOVoid"
          description: How keys are stored.
        keySecurityLevel:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigKeySecurityLevelParamsResponseDTO"
          description: How holder keys are stored.
        trustManagement:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOVoid"
          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/ConfigItemResponseDTOVoid"
          description: "Identifier types to associate entities to schemas, credentials,\
            \ trust lists and proofs."
        permissions:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              enum:
              - CACHE_DELETE
              - CREDENTIAL_DELETE
              - CREDENTIAL_DETAIL
              - CREDENTIAL_EDIT
              - 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_CREATE
              - HISTORY_DETAIL
              - HISTORY_LIST
              - HOLDER_CREDENTIAL_LIST
              - HOLDER_WALLET_UNIT_DETAIL
              - HOLDER_WALLET_UNIT_REGISTER
              - 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
              - REGISTRATION_CERTIFICATE_CREATE
              - REGISTRATION_CERTIFICATE_LIST
              - REGISTRATION_CERTIFICATE_REVOCATION_CHECK
              - REGISTRATION_CERTIFICATE_REVOKE
              - 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
              - SYSTEM_HISTORY_DETAIL
              - SYSTEM_HISTORY_EXPORT
              - SYSTEM_HISTORY_LIST
              - TASK_CREATE
              - 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
              - USER_LIST
              - WALLET_ATTESTATION_CREATE
              - WALLET_ATTESTATION_DETAIL
              - WALLET_ATTESTATION_EDIT
              - WALLET_UNIT_DELETE
              - WALLET_UNIT_DETAIL
              - WALLET_UNIT_LIST
              - WALLET_UNIT_REVOKE
              - WRP_CREATE
              - WRP_DELETE
              - WRP_DETAIL
              - WRP_EDIT
              - WRP_LIST
              - WRP_REACTIVATE
              - WRP_REVOKE
              - WRP_SUSPEND
          description: Frontend permissions
        authorizationCodeFlow:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOConfigAuthorizationCodeFlowParamsResponseDTO"
        walletProvider:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConfigItemResponseDTOVoid"
        walletRelyingPartyRegistry:
          $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigEntryResponseDTO"
      required:
      - cacheEntities
      - datatype
      - did
      - format
      - frontend
      - history
      - identifier
      - issuanceProtocol
      - keyAlgorithm
      - keySecurityLevel
      - keyStorage
      - openidProvider
      - permissions
      - revocation
      - transport
      - trustManagement
      - verificationProtocol
    ConfigVerificationProtocolParamsResponseDTO:
      type: object
      properties:
        redirectUri:
          $ref: "#/components/schemas/RedirectUriParamsResponseDTO"
    FrontendConfigurationResponseDTO:
      type: object
      properties:
        reissueEnabled:
          type: boolean
        walletEnabled:
          type: boolean
        logoutUrl:
          type: string
        profilesEnabled:
          type: boolean
        announcementsEnabled:
          type: boolean
        walletProviderEnabled:
          type: boolean
        supportFeatureEnabled:
          type: boolean
        wrpEnabled:
          type: boolean
    I18nResponseDTO:
      type: object
      properties:
        en:
          type: string
        de:
          type: string
    MinMaxParamsResponseDTO:
      type: object
      properties:
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
    RedirectUriParamsResponseDTO:
      type: object
      properties:
        allowedSchemes:
          type: array
          items:
            type: string
    WalletRelyingPartyRegistryConfigEntryResponseDTO:
      type: object
      properties:
        languages:
          type: array
          items:
            $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigurationEntryResponseDTO"
        privacyPolicyTypes:
          type: array
          items:
            $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigurationEntryResponseDTO"
        establishedByLawTypes:
          type: array
          items:
            $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigurationEntryResponseDTO"
        contactCountries:
          type: array
          items:
            $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigurationEntryResponseDTO"
        identifierTypes:
          type: array
          items:
            $ref: "#/components/schemas/WalletRelyingPartyRegistryConfigurationEntryResponseDTO"
    WalletRelyingPartyRegistryConfigurationEntryResponseDTO:
      type: object
      properties:
        display:
          $ref: "#/components/schemas/I18nResponseDTO"
        value:
          type: string
      required:
      - display
      - value
    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
    ConfigAnnouncementResponseDTO:
      type: object
      properties:
        bannerTitle:
          type: string
        title:
          type: string
        image:
          type: string
        text:
          type: string
        link:
          type: string
        forceOpen:
          type: boolean
        publishedAt:
          type: string
          format: date-time
    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
    Link:
      type: object
      properties:
        href:
          type: string
        templated:
          type: boolean
    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:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
