From ecc769992c25d770b345d91d8c2eba1ab405155a Mon Sep 17 00:00:00 2001 From: Yurii Shynbuiev Date: Wed, 25 Sep 2024 18:10:22 +0700 Subject: [PATCH] fix: OAS for the enum types (wip) Signed-off-by: Yurii Shynbuiev --- .../client/kotlin/.openapi-generator-ignore | 11 +- cloud-agent/client/kotlin/build.gradle | 1 + .../identus/client/models/Service.kt | 4 +- .../api/http/cloud-agent-openapi-spec.yaml | 7449 ----------------- .../http/StatusListCredential.scala | 10 +- .../http/CredentialSchemaResponse.scala | 4 +- .../pollux/sql/repository/Implicits.scala | 5 +- .../vc/jwt/VerifiableCredentialPayload.scala | 6 +- .../vc/jwt/revocation/VCStatusList2021.scala | 2 +- 9 files changed, 24 insertions(+), 7468 deletions(-) delete mode 100644 cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml diff --git a/cloud-agent/client/kotlin/.openapi-generator-ignore b/cloud-agent/client/kotlin/.openapi-generator-ignore index 2f78a69926..d967cc4837 100644 --- a/cloud-agent/client/kotlin/.openapi-generator-ignore +++ b/cloud-agent/client/kotlin/.openapi-generator-ignore @@ -2,7 +2,7 @@ settings.gradle build.gradle docs -# igore broken files +# ignore broken files src/main/kotlin/org/hyperledger/identus/client/models/UpdateManagedDIDServiceAction.kt src/main/kotlin/org/hyperledger/identus/client/models/UpdateManagedDIDServiceActionType.kt @@ -15,3 +15,12 @@ src/main/kotlin/org/hyperledger/identus/client/models/CredentialSubject.kt src/main/kotlin/org/hyperledger/identus/client/models/DateTimeParameter.kt src/main/kotlin/org/hyperledger/identus/client/models/DidParameter.kt src/main/kotlin/org/hyperledger/identus/client/models/VcVerificationParameter.kt + +src/test/kotlin/org/hyperledger/identus/client/models/UpdateManagedDIDServiceActionTest.kt +src/test/kotlin/org/hyperledger/identus/client/models/UpdateManagedDIDServiceActionTypeTest.kt + +src/test/kotlin/org/hyperledger/identus/client/models/ServiceTest.kt +src/test/kotlin/org/hyperledger/identus/client/models/ServiceTypeTest.kt + +src/test/kotlin/org/hyperledger/identus/client/models/StatusPurposeTest.kt +src/test/kotlin/org/hyperledger/identus/client/models/CredentialSubjectTest.kt \ No newline at end of file diff --git a/cloud-agent/client/kotlin/build.gradle b/cloud-agent/client/kotlin/build.gradle index dd4c54f9ea..7964bb0a2b 100644 --- a/cloud-agent/client/kotlin/build.gradle +++ b/cloud-agent/client/kotlin/build.gradle @@ -32,6 +32,7 @@ test { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") implementation "com.google.code.gson:gson:2.9.0" implementation "com.squareup.okhttp3:okhttp:4.10.0" testImplementation "io.kotlintest:kotlintest-runner-junit5:3.4.2" diff --git a/cloud-agent/client/kotlin/src/main/kotlin/org/hyperledger/identus/client/models/Service.kt b/cloud-agent/client/kotlin/src/main/kotlin/org/hyperledger/identus/client/models/Service.kt index 5da042a13e..710ebdf036 100644 --- a/cloud-agent/client/kotlin/src/main/kotlin/org/hyperledger/identus/client/models/Service.kt +++ b/cloud-agent/client/kotlin/src/main/kotlin/org/hyperledger/identus/client/models/Service.kt @@ -15,9 +15,9 @@ package org.hyperledger.identus.client.models +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.JsonElement import com.google.gson.annotations.SerializedName -import com.google.gson.JsonElement -import com.google.gson.JsonPrimitive /** diff --git a/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml b/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml deleted file mode 100644 index 89f119c860..0000000000 --- a/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml +++ /dev/null @@ -1,7449 +0,0 @@ -openapi: 3.0.3 -info: - title: Identus Cloud Agent API Reference - version: 1.39.0 - description: |2 - - The Identus Cloud Agent API facilitates the integration and management of self-sovereign identity capabilities within applications. - It supports DID (Decentralized Identifiers) management, verifiable credential exchange, and secure messaging based on DIDComm standards. - The API is designed to be interoperable with various blockchain and DLT (Distributed Ledger Technology) platforms, ensuring wide compatibility and flexibility. - Key features include connection management, credential issuance and verification, and secure, privacy-preserving communication between entities. - Additional information and the full list of capabilities can be found in the [Open Enterprise Agent documentation](https://docs.atalaprism.io/docs/category/prism-cloud-agent) - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 -tags: -- name: Connections Management - description: |2 - - The __Connections Management__ endpoints facilitate the initiation of connection flows between the current Agent and peer Agents, regardless of whether they reside in Cloud Agent or edge environments. - This implementation adheres to the DIDComm Messaging v2.0 - [Out of Band Messages](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) specification [section 9.5.4](https://identity.foundation/didcomm-messaging/spec/v2.0/#invitation) - to generate invitations. - The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the [did:peer:2](https://identity.foundation/peer-did-method-spec/#generating-a-didpeer2) specification. - This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the invitee's subsequent execution of the connection flow. - Upon accepting an invitation, the invitee sends a connection request to the inviter's DIDComm messaging service endpoint. - The connection request's 'type' attribute must be specified as "https://atalaprism.io/mercury/connections/1.0/request". - The inviter agent responds with a connection response message, indicated by a 'type' attribute of "https://atalaprism.io/mercury/connections/1.0/response". - Both request and response types are proprietary to the Open Enterprise Agent ecosystem. -- name: Issue Credentials Protocol - description: |2 - - The __Issue Credentials Protocol__ endpoints facilitate the initiation of credential issuance flows between the current Agent and peer Agents, regardless of whether they reside in Cloud Agent or edge environments. - This implementation adheres to the [Issue Credential Protocol 3.0](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential) specification to execute credential issuance flows. - The flow is initiated by the issuer who creates a [credential offer](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#offer-credential) and sends it to the holder's DIDComm messaging service endpoint. - Upon accepting the received offer, the holder sends a [credential request](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#request-credential) to the issuer. - The issuer agent will then issue the credential (JWT or AnonCreds) and send an [issue credential](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#issue-credential) message containing the verifiable credential to the holder. - The current implementation only supports one of the three alternative beginnings proposed in the spec, which is "the Issuer begin with an offer". -- name: Verification - description: |2- - - The __Verification__ endpoints enable the management and lookup of verification policies,which are applied to W3C Verifiable Credentials in JWT format. - - Users can retrieve and paginate existing policies or create new ones. - These policies determine the verification criteria, allowing users to specify constraints such as `schemaId` and `trustedIssuers` in the current implementation. - - The constraints are defined using the `schemaId` and a sequence of `trustedIssuers`. - This functionality ensures the system's integrity and adherence to specific verification requirements. - - Endpoints are secured by __apiKeyAuth__ or __jwtAuth__ authentication. -- name: Schema Registry - description: |2 - - The __Schema Registry__ is a REST API that allows to publish and lookup credential schemas in [W3C](https://w3c.github.io/vc-json-schema/) and [AnonCreds](https://hyperledger.github.io/anoncreds-spec/#term:schema) formats. - - The Credential Schema is a JSON document that describes the structure of the credential and consists of the following parts: metadata, schema and signature. - The metadata contains the following fields: - * `id` - locally unique identifier of the schema - * `version` - version of the schema - * `author` - the DID of the issuer of the schema - * `guid` - globally unique identifier of the schema (generated by the Schema Registry based on `author`, `id` and `version`) - * `name` - name of the schema - * `tags` - list of tags that describe the schema - * `createdAt` - timestamp of the schema creation - * `description` - description of the schema - - The schema contains the JSON Schema that describes the structure of the credential in the `schema` field - The signature contains the signature of the schema by the issuer in the `proof` field. The signature is generated by the issuer's DID key using Ed25519Signature2020 method. - - The __Credential Schema__ object is immutable, so update operation creates a new version of the schema. - The __Credential Schema__ is referenced via `schemaId` field in the issuance and verification flows. - - Endpoints are secured by __apiKeyAuth__ or __jwtAuth__ authentication. - externalDocs: - url: https://docs.atalaprism.io/tutorials/schemas/credential-schema - description: Credential Schema documentation -- name: Credential Definition Registry - description: |2 - - The __Credential Definition Registry__ is a REST API that allows to publish and lookup [Anoncreds Credential Definition](https://hyperledger.github.io/anoncreds-spec/#term:credential-definition) entities. - - A credential definition is generated by the issuer before credential any issuances and published for anyone (primarily holders and verifiers) to use. - In generating the published credential definition, related private data is also generated and held as a secret by the issuer. - The secret data includes the private keys necessary to generate signed verifiable credentials that can be presented and verified using the published credential definition. - - Endpoints are secured by __apiKeyAuth__ or __jwtAuth__ authentication. - externalDocs: - url: https://docs.atalaprism.io/tutorials/category/credential-definition - description: Credential Definition documentation -- name: DID - description: |2 - - The __DID__ endpoints expose publicly available DID operations. - - The key distinction from the __DID Registrar__ endpoints is that it directly exposes the DID resources interfacing with the [VDR](https://www.w3.org/TR/did-core/#dfn-verifiable-data-registry). - It is independent of the key management and the exposed operations are not part of the tenancy within the Agent. - It serves as a proxy for interacting with the VDR, facilitating actions like resolving DIDs. -- name: DID Registrar - description: |2 - - The __DID Registrar__ endpoints facilitate the management of [PRISM DIDs](https://github.com/input-output-hk/prism-did-method-spec) hosted in the cloud agent. - - Implentation of [DID management](https://docs.atalaprism.io/docs/atala-prism/prism-cloud-agent/did-management/) in the cloud agent. - The agent securely manages and stores DIDs along with their keys in its secret storage. - These endpoints allow users to create, read, update, deactivate, and publish without direct exposure to the key material. - These DIDs can be utilized for various operations during issuance and verification processes. - - More examples and tutorials can be found in this [documentation](https://docs.atalaprism.io/tutorials/category/dids/). -- name: Wallet Management - description: |2 - - The __Wallet Management__ endpoints enable both users and administrators to manage [wallets](https://docs.atalaprism.io/docs/concepts/multi-tenancy#wallet). - - In a multitenant agent, wallet is a container for various resources (e.g. Connections, DIDs) and it isolates the access based on the authorization settings. - [Admnistrator](https://docs.atalaprism.io/docs/concepts/glossary#administrator) can utilize the endpoints to manage and onboard [tenants](https://docs.atalaprism.io/docs/concepts/glossary#tenant). - See [this example](https://docs.atalaprism.io/tutorials/multitenancy/tenant-onboarding-ext-iam) for instructions how to utilize the endpoints for administrator. - Tenants can also manage and onboard their own wallets using these endpoints depending on the configuration. - See [this document](https://docs.atalaprism.io/tutorials/multitenancy/tenant-onboarding-ext-iam) for a detailed example for self-service tenants onboarding. - - Wallet permissions are controlled by [UMA](https://docs.atalaprism.io/docs/concepts/glossary#uma) configuration which the agent - exposes endpoints to easily configure wallet access using `uma-permissions` resource. - The permissions can also be configured out-of-band directly on the external IAM provider that supports the UMA standard. -- name: System - description: |2 - - The __System__ is a REST API that allows to check the system health and scrap the runtime metrics. - - The __health__ endpoint returns the current version of the running service. - This information can be used to check the health status of the running service in the docker or kubernetes environment. - - The __metrics__ endpoint returns the runtime metrics of the running service scraped from the internal prometheus registry. - This information is collected by the prometheus server and can be used to monitor the running service. -- name: Events - description: | - The __Events__ endpoints enable users to manage event-related resources, such as webhook notifications. - These notifications are specifically designed to inform about events occurring within the wallet, including but not limited to: - - - DID publication notifications - - DIDComm connection notifications - - Issuance protocol notifications - - Presentation protocol notifications - - For more detailed information regarding event notifications, please refer to this [documentation](https://docs.atalaprism.io/tutorials/webhooks/webhook). -- name: Identity and Access Management - description: |2 - - The __Identity and Access Management__ endpoints allow [agent administrators](https://docs.atalaprism.io/docs/concepts/glossary#administrator) - to manage identity and access management for the agent's tenants. - It provides basic built-in IAM capabilities as an alternative to more feature rich external IAM solutions. - - Entities are resources that represent individual tenants and - wallets act as containers for Self-Sovereign Identity (SSI) resources within the agent. - The administrator can grant tenant access to specific wallets by associating the wallet ID with the Entity. - Additionally, the administrator can create API keys for entities and provide them to the tenants out-of-band. - These API keys can then be used for authorization to access specific wallets. - - For more detailed information related to the agent IAM and its usage, please refer to this [documentation](https://docs.atalaprism.io/docs/atala-prism/prism-cloud-agent/authentication). -servers: -- url: http://localhost:8085 - description: The local instance of the Cloud Agent -- url: http://localhost/cloud-agent - description: The local instance of the Cloud Agent behind the APISIX proxy -- url: https://k8s-dev.atalaprism.io/cloud-agent - description: The Cloud Agent in the Staging Environment -paths: - /credential-definition-registry/definitions: - get: - tags: - - Credential Definition Registry - summary: Lookup credential definitions by indexed fields - description: 'Lookup credential definitions by `author`, `name`, `tag` parameters - and control the pagination by `offset` and `limit` parameters ' - operationId: lookupCredentialDefinitionsByQuery - parameters: - - name: author - in: query - required: false - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - - name: name - in: query - required: false - schema: - type: string - example: DrivingLicense - - name: version - in: query - required: false - schema: - type: string - example: 1.0.0 - - name: tag - in: query - required: false - schema: - type: string - example: licence - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - - name: order - in: query - required: false - schema: - type: string - responses: - '200': - description: Collection of CredentialDefinitions records. - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialDefinitionResponsePage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Credential Definition Registry - summary: Publish new definition to the definition registry - description: Create the new credential definition record with metadata and internal - JSON Schema on behalf of Cloud Agent. The credential definition will be signed - by the keys of Cloud Agent and issued by the DID that corresponds to it. - operationId: createCredentialDefinition - requestBody: - description: JSON object required for the credential definition creation - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialDefinitionInput' - required: true - responses: - '201': - description: The new credential definition record is successfully created - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialDefinitionResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /credential-definition-registry/definitions/{guid}: - get: - tags: - - Credential Definition Registry - summary: Fetch the credential definition from the registry by `guid` - description: Fetch the credential definition by the unique identifier - operationId: getCredentialDefinitionById - parameters: - - name: guid - in: path - description: Globally unique identifier of the credential definition record - required: true - schema: - type: string - format: uuid - responses: - '200': - description: CredentialDefinition found by `guid` - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialDefinitionResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /credential-definition-registry/definitions/{guid}/definition: - get: - tags: - - Credential Definition Registry - summary: Fetch the inner definition field of the credential definition from - the registry by `guid` - description: Fetch the inner definition fields of the credential definition - by the unique identifier - operationId: getCredentialDefinitionInnerDefinitionById - parameters: - - name: guid - in: path - required: true - schema: - type: string - format: uuid - responses: - '200': - description: CredentialDefinition found by `guid` - content: - application/json: - schema: {} - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /schema-registry/schemas: - get: - tags: - - Schema Registry - summary: Lookup schemas by indexed fields - description: 'Lookup schemas by `author`, `name`, `tags` parameters and control - the pagination by `offset` and `limit` parameters ' - operationId: lookupSchemasByQuery - parameters: - - name: author - in: query - required: false - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - - name: name - in: query - required: false - schema: - type: string - example: DrivingLicense - - name: version - in: query - required: false - schema: - type: string - example: 1.0.0 - - name: tags - in: query - required: false - schema: - type: string - example: driving - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - - name: order - in: query - required: false - schema: - type: string - responses: - '200': - description: Collection of CredentialSchema records. - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaResponsePage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Schema Registry - summary: Publish new schema to the schema registry - description: Create the new credential schema record with metadata and internal - JSON Schema on behalf of Cloud Agent. The credential schema will be signed - by the keys of Cloud Agent and issued by the DID that corresponds to it. - operationId: createSchema - requestBody: - description: JSON object required for the credential schema creation - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaInput' - required: true - responses: - '201': - description: The new credential schema record is successfully created - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /schema-registry/{author}/{id}: - put: - tags: - - Schema Registry - summary: Publish the new version of the credential schema to the schema registry - description: Publish the new version of the credential schema record with metadata - and internal JSON Schema on behalf of Cloud Agent. The credential schema will - be signed by the keys of Cloud Agent and issued by the DID that corresponds - to it. - operationId: updateSchema - parameters: - - name: author - in: path - description: DID of the identity which authored the credential schema. A piece - of Metadata. - required: true - schema: - type: string - - name: id - in: path - description: A locally unique identifier to address the schema. UUID is generated - by the backend. - required: true - schema: - type: string - format: uuid - requestBody: - description: JSON object required for the credential schema update - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaInput' - required: true - responses: - '200': - description: The credential schema record is successfully updated - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /schema-registry/schemas/{guid}: - get: - tags: - - Schema Registry - summary: Fetch the schema from the registry by `guid` - description: Fetch the credential schema by the unique identifier - operationId: getSchemaById - parameters: - - name: guid - in: path - description: Globally unique identifier of the credential schema record - required: true - schema: - type: string - format: uuid - responses: - '200': - description: CredentialSchema found by `guid` - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialSchemaResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /schema-registry/schemas/{guid}/schema: - get: - tags: - - Schema Registry - summary: Fetch the schema from the registry by `guid` - description: Fetch the credential schema by the unique identifier - operationId: getRawSchemaById - parameters: - - name: guid - in: path - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Raw JSON response of the CredentialSchema - content: - application/json: - schema: {} - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /verification/policies: - get: - tags: - - Verification - summary: Lookup verification policies by query - description: Lookup verification policies by `name`, and control the pagination - by `offset` and `limit` parameters - operationId: lookupVerificationPoliciesByQuery - parameters: - - name: name - in: query - description: A human-readable name for the verification policy. The `name` - cannot be empty. - required: false - schema: - type: string - - name: offset - in: query - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - - name: order - in: query - required: false - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyResponsePage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Verification - summary: Create the new verification policy - description: Create the new verification policy - operationId: createVerificationPolicy - requestBody: - description: Create verification policy object - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyInput' - required: true - responses: - '201': - description: Created verification policy entity - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /verification/policies/{id}: - get: - tags: - - Verification - summary: Fetch the verification policy by id - description: Get the verification policy by id - operationId: getVerificationPolicyById - parameters: - - name: id - in: path - description: Get the verification policy by id - required: true - schema: - type: string - format: uuid - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - put: - tags: - - Verification - summary: Update the verification policy object by id - description: Update the verification policy entry - operationId: updateVerificationPolicy - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - - name: nonce - in: query - description: Nonce of the previous VerificationPolicy - required: true - schema: - type: integer - format: int32 - requestBody: - description: Update verification policy object - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyInput' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/VerificationPolicyResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - delete: - tags: - - Verification - summary: Deleted the verification policy by id - description: Delete the verification policy by id - operationId: deleteVerificationPolicyById - parameters: - - name: id - in: path - description: Delete the verification policy by id - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Verification policy deleted successfully - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /connections: - get: - tags: - - Connections Management - summary: Retrieves the list of connection flow records available from the Agent's - database. - description: |2 - - Retrieve of a list containing connections available from the Agent's database. - The API returns a comprehensive collection of connection flow records within the system, regardless of their state. - Each connection item includes essential metadata such as connection ID, thread ID, state, role, participant information, and other relevant details. - Pagination support is available, allowing for efficient handling of large datasets. - operationId: getConnections - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - - name: thid - in: query - description: The `thid`, shared between the inviter and the invitee, that - uniquely identifies a connection flow. - required: false - schema: - type: string - responses: - '200': - description: The list of connection flow records available from the Agent's - database - content: - application/json: - schema: - $ref: '#/components/schemas/ConnectionsPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Connections Management - summary: Create a new connection invitation that can be delivered out-of-band - to a peer Agent. - description: |2 - - Create a new connection invitation that can be delivered out-of-band to a peer Agent, regardless of whether it resides in Cloud Agent or edge environment. - The generated invitation adheres to the DIDComm Messaging v2.0 - [Out of Band Messages](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) specification [section 9.5.4](https://identity.foundation/didcomm-messaging/spec/v2.0/#invitation). - The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the [did:peer:2](https://identity.foundation/peer-did-method-spec/#generating-a-didpeer2) specification. - This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the invitee's subsequent execution of the connection flow. - In the Agent database, the created connection record has an initial state set to `InvitationGenerated`. - The request body may contain a `label` that can be used as a human readable alias for the connection, for example `{'label': "Connection with Bob"}` - operationId: createConnection - requestBody: - description: JSON object required for the connection creation. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateConnectionRequest' - required: true - responses: - '201': - description: The connection record was created successfully, and is returned - in the response body. - content: - application/json: - schema: - $ref: '#/components/schemas/Connection' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /connections/{connectionId}: - get: - tags: - - Connections Management - summary: Retrieves a specific connection flow record from the Agent's database - based on its unique `connectionId`. - description: |2 - - Retrieve a specific connection flow record from the Agent's database based in its unique `connectionId`. - The returned item includes essential metadata such as connection ID, thread ID, state, role, participant information, and other relevant details. - operationId: getConnection - parameters: - - name: connectionId - in: path - description: The `connectionId` uniquely identifying the connection flow record. - required: true - schema: - type: string - format: uuid - responses: - '200': - description: The specific connection flow record. - content: - application/json: - schema: - $ref: '#/components/schemas/Connection' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /connection-invitations: - post: - tags: - - Connections Management - summary: Accept a new connection invitation received out-of-band from another - peer Agent. - description: |2 - - Accept an new connection invitation received out-of-band from another peer Agent. - The invitation must be compliant with the DIDComm Messaging v2.0 - [Out of Band Messages](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) specification [section 9.5.4](https://identity.foundation/didcomm-messaging/spec/v2.0/#invitation). - A new connection record with state `ConnectionRequestPending` will be created in the agent database and later processed by a background job to send a connection request to the peer Agent. - The created record will contain a newly generated pairwise Peer DID used for that connection. - A connection request will then be sent to the peer Agent to actually establish the connection, moving the record state to `ConnectionRequestSent`, and waiting the connection response from the peer Agent. - operationId: acceptConnectionInvitation - requestBody: - description: The request used by an invitee to accept a connection invitation - received from an inviter, using out-of-band mechanism. - content: - application/json: - schema: - $ref: '#/components/schemas/AcceptConnectionInvitationRequest' - required: true - responses: - '200': - description: The invitation was successfully accepted. - content: - application/json: - schema: - $ref: '#/components/schemas/Connection' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /dids/{didRef}: - get: - tags: - - DID - summary: Resolve Prism DID to a W3C representation - description: | - Resolve Prism DID to a W3C DID document representation. - The response can be the [DID resolution result](https://w3c-ccg.github.io/did-resolution/#did-resolution-result) - or [DID document representation](https://www.w3.org/TR/did-core/#representations) depending on the `Accept` request header. - The response is implemented according to [resolver HTTP binding](https://w3c-ccg.github.io/did-resolution/#bindings-https) in the DID resolution spec. - operationId: getDID - parameters: - - name: didRef - in: path - description: Prism DID according to [the Prism DID method syntax](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#prism-did-method-syntax) - required: true - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - responses: - '200': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - $ref: '#/components/schemas/DIDDocument' - '400': - description: Invalid value - content: - text/plain: - schema: - type: string - '404': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - type: string - description: Empty representation - example: '' - '406': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - type: string - description: Empty representation - example: '' - '410': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - type: string - description: Empty representation - example: '' - '500': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - type: string - description: Empty representation - example: '' - '501': - description: '' - content: - application/ld+json; profile=https://w3id.org/did-resolution: - schema: - $ref: '#/components/schemas/DIDResolutionResult' - application/did+ld+json: - schema: - type: string - description: Empty representation - example: '' - /did-registrar/dids: - get: - tags: - - DID Registrar - summary: List all DIDs stored in the agent's wallet - description: |- - List all DIDs stored in the agent's wallet. - Return a paginated items ordered by created timestamp. - operationId: getDid-registrarDids - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - responses: - '200': - description: List the agent managed DIDs in the wallet - content: - application/json: - schema: - $ref: '#/components/schemas/ManagedDIDPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - DID Registrar - summary: Create an unpublished PRISM DID and store it in the agent's wallet - description: |- - Create an unpublished PRISM DID and store it in the agent's wallet. - The public/private keys of the DID will be derived according to the `didDocumentTemplate` and managed by the agent. - The DID can later be published to the VDR using the `publications` endpoint. - After the DID is created, it has the `CREATED` status. - operationId: postDid-registrarDids - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateManagedDidRequest' - required: true - responses: - '201': - description: Created an unpublished PRISM DID - content: - application/json: - schema: - $ref: '#/components/schemas/CreateManagedDIDResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /did-registrar/dids/{didRef}: - get: - tags: - - DID Registrar - summary: Get a specific DID stored in the agent's wallet - description: Get a specific DID stored in the agent's wallet - operationId: getDid-registrarDidsDidref - parameters: - - name: didRef - in: path - description: Prism DID according to [the Prism DID method syntax](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#prism-did-method-syntax) - required: true - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - responses: - '200': - description: Get a DID in the agent's wallet - content: - application/json: - schema: - $ref: '#/components/schemas/ManagedDID' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /did-registrar/dids/{didRef}/publications: - post: - tags: - - DID Registrar - summary: Publish the DID stored in the agent's wallet to the VDR - description: | - Initiate the publication of the DID stored in the agent's wallet to the VDR. - The publishing process is asynchronous. - Attempting to publish the same DID while the previous publication is ongoing will not initiate another publication. - After the submission of the DID publication, its status is changed to `PUBLICATION_PENDING`. - Upon confirmation after a predefined number of blocks, the status is changed to `PUBLISHED`. - In case of a failed DID publication, the status is reverted to `CREATED`. - operationId: postDid-registrarDidsDidrefPublications - parameters: - - name: didRef - in: path - description: Prism DID according to [the Prism DID method syntax](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#prism-did-method-syntax) - required: true - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - responses: - '202': - description: Publishing DID to the VDR initiated - content: - application/json: - schema: - $ref: '#/components/schemas/DIDOperationResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /did-registrar/dids/{didRef}/updates: - post: - tags: - - DID Registrar - summary: Update DID in the agent's wallet and post update operation to the VDR - description: |- - Update DID in the agent's wallet and post the update operation to the VDR. - Only the DID with status `PUBLISHED` can be updated. - This endpoint updates the DID document from the last confirmed operation. - The update operation is asynchornous operation and the agent will reject - a new update request if the previous operation is not yet comfirmed. - operationId: postDid-registrarDidsDidrefUpdates - parameters: - - name: didRef - in: path - description: Prism DID according to [the Prism DID method syntax](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#prism-did-method-syntax) - required: true - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateManagedDIDRequest' - required: true - responses: - '202': - description: DID update operation accepted - content: - application/json: - schema: - $ref: '#/components/schemas/DIDOperationResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '409': - description: Cannot process due to conflict with current state of the resource - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /did-registrar/dids/{didRef}/deactivations: - post: - tags: - - DID Registrar - summary: Deactivate DID in the agent's wallet and post deactivate operation - to the VDR - description: |- - Deactivate DID in the agent's wallet and post deactivate operation to the VDR. - Only the DID with status `PUBLISHED` can be deactivated. - The deactivate operation is asynchornous operation and the agent will reject - a new deactivate request if the previous operation is not yet comfirmed. - operationId: postDid-registrarDidsDidrefDeactivations - parameters: - - name: didRef - in: path - description: Prism DID according to [the Prism DID method syntax](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#prism-did-method-syntax) - required: true - schema: - type: string - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - responses: - '202': - description: DID deactivation operation accepted - content: - application/json: - schema: - $ref: '#/components/schemas/DIDOperationResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/credential-offers: - post: - tags: - - Issue Credentials Protocol - summary: As a credential issuer, create a new credential offer that will be - sent to a holder Agent. - description: |2 - - Creates a new credential offer that will be delivered, through a previously established DIDComm connection, to a holder Agent. - The subsequent credential offer message adheres to the [Issue Credential Protocol 3.0 - Offer Credential](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#offer-credential) specification. - The created offer can be of two types: 'JWT' or 'AnonCreds'. - operationId: createCredentialOffer - requestBody: - description: The credential offer object. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIssueCredentialRecordRequest' - required: true - responses: - '201': - description: The issue credential record. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/credential-offers/invitation: - post: - tags: - - Issue Credentials Protocol - summary: As a credential issuer, create a new credential offer Invitation that - will be delivered as out-of-band to a peer Agent. - description: "\nCreates a new credential offer invitation to be delivered as\ - \ an out-of-band message. \nThe invitation message adheres to the OOB specification\ - \ as outlined [here](https://identity.foundation/didcomm-messaging/spec/#invitation),\n\ - with the credential offer message attached according to the [Issue Credential\ - \ Protocol 3.0 - Offer Credential specification](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#offer-credential).\n\ - The created offer attachment can be of three types: 'JWT', 'AnonCreds', or\ - \ 'SDJWT'.\n" - operationId: createCredentialOfferInvitation - requestBody: - description: The credential offer object. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIssueCredentialRecordRequest' - required: true - responses: - '201': - description: The issue credential record. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/credential-offers/accept-invitation: - post: - tags: - - Issue Credentials Protocol - summary: As a holder, accept a new credential offer invitation received from - another issuer Agent. - description: |2 - - As a holder, accept a new credential offer invitation received from an issuer Agent. - The credential offer request message from issuer is decoded and processed. New record with RequestReceived state is created. - operationId: acceptCredentialOfferInvitation - requestBody: - description: The accept credential offer Invitation OOB message. - content: - application/json: - schema: - $ref: '#/components/schemas/AcceptCredentialOfferInvitation' - required: true - responses: - '200': - description: The issue credential offer Invitation was successfully accepted, - and new record with RequestReceived state is returned in the response - body. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/records: - get: - tags: - - Issue Credentials Protocol - summary: Retrieves the list of issue credential records from the Agent's database. - description: |2 - - Retrieves the list of issue credential records from the Agent's database. - The API returns a comprehensive collection of issue credential flow records within the system, regardless of their state. - The returned items include essential metadata such as record ID, thread ID, state, role, issued credential, and other relevant details. - operationId: getCredentialRecords - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - - name: thid - in: query - description: The thread ID associated with a specific credential issue flow - execution. - required: false - schema: - type: string - responses: - '200': - description: The list of issue credential records available found in the - Agent's database. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecordPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/records/{recordId}: - get: - tags: - - Issue Credentials Protocol - summary: Retrieves a specific issue credential flow record from the Agent's - database based on its unique `recordId`. - description: |2 - - Retrieves a specific issue credential flow record from the Agent's database based on its unique `recordId`. - The API returns a comprehensive collection of issue credential flow records within the system, regardless of their state. - The returned items include essential metadata such as record ID, thread ID, state, role, issued credential, and other relevant details. - operationId: getCredentialRecord - parameters: - - name: recordId - in: path - description: The `recordId` uniquely identifying the issue credential flow - record. - required: true - schema: - type: string - responses: - '200': - description: The specific issue credential flow record. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/records/{recordId}/accept-offer: - post: - tags: - - Issue Credentials Protocol - summary: As a holder, accept a new credential offer received from another issuer - Agent. - description: |2 - - As a holder, accept a new credential offer received from an issuer Agent. - The subsequent credential request message sent to the issuer adheres to the [Issue Credential Protocol 3.0 - Request Credential](https://github.com/decentralized-identity/waci-didcomm/tree/main/issue_credential#request-credential) specification. - operationId: acceptCredentialOffer - parameters: - - name: recordId - in: path - description: The `recordId` uniquely identifying the issue credential flow - record. - required: true - schema: - type: string - requestBody: - description: The accept credential offer request object. - content: - application/json: - schema: - $ref: '#/components/schemas/AcceptCredentialOfferRequest' - required: true - responses: - '200': - description: The issue credential offer was successfully accepted, and the - updated record is returned in the response body. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /issue-credentials/records/{recordId}/issue-credential: - post: - tags: - - Issue Credentials Protocol - summary: As an issuer, issues the verifiable credential related the identified - issuance flow record. - description: |2 - - As an issuer, issues the verifiable credential related the identified issuance flow record. - The JWT or AnonCreds credential will be generated and sent to the holder Agent asynchronously and through DIDComm. - Note that this endpoint should only be called when automatic issuance is disabled for this record (i.e. `automaticIssuance` attribute set to `false` at offer creation time). - operationId: issueCredential - parameters: - - name: recordId - in: path - description: The `recordId` uniquely identifying the issue credential flow - record. - required: true - schema: - type: string - responses: - '200': - description: |2 - - The issue credential request was successfully processed, and the updated record is returned in the response body. - The credential will be generated and sent to the holder Agent asynchronously. - content: - application/json: - schema: - $ref: '#/components/schemas/IssueCredentialRecord' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /credential-status/{id}: - get: - tags: - - Credential status list - summary: Fetch credential status list by its ID - description: Fetch credential status list by its ID - operationId: getCredentialStatusListEndpoint - parameters: - - name: id - in: path - description: Globally unique identifier of the credential status list - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Status List credential with embedded proof found by ID - content: - application/json: - schema: - $ref: '#/components/schemas/StatusListCredential' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /credential-status/revoke-credential/{id}: - patch: - tags: - - Credential status list - summary: Revoke a credential by its ID - description: Marks credential to be ready for revocation, it will be revoked - automatically - operationId: patchCredential-statusRevoke-credentialId - parameters: - - name: id - in: path - description: Revoke a credential by its ID - required: true - schema: - type: string - responses: - '200': - description: '' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /present-proof/presentations: - get: - tags: - - Present Proof - summary: Gets the list of proof presentation records. - description: Get the list of proof presentation records and its status that - the Agent have at moment - operationId: getAllPresentation - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - - name: thid - in: query - description: Filter by the DID Comm message's 'thid' of presentProof - required: false - schema: - type: string - responses: - '200': - description: The list of proof presentation records. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatusPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Present Proof - summary: As a Verifier, create a new proof presentation request and send it - to the Prover. - description: Holder presents proof derived from the verifiable credential to - verifier. - operationId: requestPresentation - requestBody: - description: The present proof creation request. - content: - application/json: - schema: - $ref: '#/components/schemas/RequestPresentationInput' - required: true - responses: - '201': - description: The proof presentation request was created successfully and - will be sent asynchronously to the Prover. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatus' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /present-proof/presentations/{presentationId}: - get: - tags: - - Present Proof - summary: Gets an existing proof presentation record by its unique identifier. - More information on the error can be found in the response body. - description: Returns an existing presentation record by id. - operationId: getPresentation - parameters: - - name: presentationId - in: path - description: The unique identifier of the presentation record. - required: true - schema: - type: string - format: uuid - responses: - '200': - description: The proof presentation record. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatus' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - patch: - tags: - - Present Proof - summary: Updates the proof presentation record matching the unique identifier, - with the specific action to perform. - description: Accept or reject presentation of proof request. - operationId: updatePresentation - parameters: - - name: presentationId - in: path - description: The unique identifier of the presentation record. - required: true - schema: - type: string - format: uuid - requestBody: - description: The action to perform on the proof presentation record. - content: - application/json: - schema: - $ref: '#/components/schemas/RequestPresentationAction' - required: true - responses: - '200': - description: The proof presentation record was successfully updated. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatus' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /present-proof/presentations/invitation: - post: - tags: - - Present Proof - summary: As a Verifier, create a new OOB Invitation as proof presentation request - that can be delivered out-of-band to a invitee/prover. - description: |2 - - Create a new presentation request invitation that can be delivered out-of-band to a peer Agent, regardless of whether it resides in Cloud Agent or edge environment. - The generated invitation adheres to the DIDComm Messaging v2.0 - [Out of Band Messages](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) specification [section 9.5.4](https://identity.foundation/didcomm-messaging/spec/v2.0/#invitation). - The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the [did:peer:2](https://identity.foundation/peer-did-method-spec/#generating-a-didpeer2) specification. - This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the prover's subsequent execution of the connection flow. - In the Agent database, the created presentation record has an initial state set to `InvitationGenerated`. - The invitation is in the form of a presentation request (as described https://github.com/decentralized-identity/waci-didcomm/blob/main/present_proof/present-proof-v3.md), which is included as an attachment in the OOB DIDComm message sent to the invitee/prover. - operationId: createOOBRequestPresentationInvitation - requestBody: - description: The present proof creation request. - content: - application/json: - schema: - $ref: '#/components/schemas/RequestPresentationInput' - required: true - responses: - '201': - description: The proof presentation request invitation was created successfully - and that can be delivered as out-of-band to a peer Agent.. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatus' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /present-proof/presentations/accept-invitation: - post: - tags: - - Present Proof - summary: Decode the invitation extract Request Presentation and Create the proof - presentation record with RequestReceived state. - description: Accept Invitation for request presentation - operationId: acceptRequestPresentationInvitation - requestBody: - description: The action to perform on the proof presentation request invitation. - content: - application/json: - schema: - $ref: '#/components/schemas/AcceptRequestPresentationInvitation' - required: true - responses: - '200': - description: The proof presentation record was successfully updated. - content: - application/json: - schema: - $ref: '#/components/schemas/PresentationStatus' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /verification/credential: - post: - tags: - - Verifiable Credentials Verification - summary: Verify a set of credentials as a Verifier - description: Endpoint to verify a set of verifiable credentials as a Verifier. - operationId: verify - requestBody: - description: List of verifiable credentials to verify - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VcVerificationRequest' - required: false - responses: - '200': - description: List of verifiable credentials verification outcomes - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VcVerificationResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /_system/health: - get: - tags: - - System - summary: Check the health status of the running service - description: Returns the health info object of the running service - operationId: systemHealth - responses: - '200': - description: The health info object. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /_system/metrics: - get: - tags: - - System - summary: Collect the runtime metrics of the running service - description: Returns the metrics of the running service from the internal Prometheus - registry - operationId: systemMetrics - responses: - '200': - description: The metrics as plain strings. - content: - text/plain: - schema: - type: string - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /iam/entities: - get: - tags: - - Identity and Access Management - summary: Get all entities - description: 'Get all entities with the pagination by `offset` and `limit` parameters ' - operationId: getAllEntities - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - responses: - '200': - description: Collection of Entity records - content: - application/json: - schema: - $ref: '#/components/schemas/EntityResponsePage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Identity and Access Management - summary: Create a new entity record - description: Create the new entity record. The entity record is a representation - of the account in the system. - operationId: createEntity - requestBody: - description: JSON object required for the entity creation - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEntityRequest' - required: true - responses: - '201': - description: The new entity is successfully created - content: - application/json: - schema: - $ref: '#/components/schemas/EntityResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - /iam/entities/{id}/name: - put: - tags: - - Identity and Access Management - summary: Update the entity record name by `id` - description: Update the entity record name by `id` - operationId: updateEntityName - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - requestBody: - description: JSON object required for the entity name update - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateEntityNameRequest' - required: true - responses: - '200': - description: The entity record is successfully updated - content: - application/json: - schema: - $ref: '#/components/schemas/EntityResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - /iam/entities/{id}/walletId: - put: - tags: - - Identity and Access Management - summary: Update the entity record `walletId` by `id` - description: Update the entity record `walletId` field by `id` - operationId: updateEntityWalletId - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - requestBody: - description: JSON object required for the entity walletId update - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateEntityWalletIdRequest' - required: true - responses: - '200': - description: The entity record is successfully updated - content: - application/json: - schema: - $ref: '#/components/schemas/EntityResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - /iam/entities/{id}: - get: - tags: - - Identity and Access Management - summary: Get the entity by the `id` - description: Get the entity by the unique identifier - operationId: getEntityById - parameters: - - name: id - in: path - description: Identifier of the entity - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Entity found by `id` - content: - application/json: - schema: - $ref: '#/components/schemas/EntityResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - delete: - tags: - - Identity and Access Management - summary: Delete the entity by `id` - description: Delete the entity by the unique identifier - operationId: deleteEntityById - parameters: - - name: id - in: path - description: Identifier of the entity - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Entity deleted successfully - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - /iam/apikey-authentication: - post: - tags: - - Identity and Access Management - summary: Register the `apikey` for the entity - description: Register the `apikey` for the entity. - operationId: addEntityApiKeyAuthentication - requestBody: - description: JSON object required for the registering the entity and `apikey` - content: - application/json: - schema: - $ref: '#/components/schemas/ApiKeyAuthenticationRequest' - required: true - responses: - '201': - description: The new `apikey` is successfully registered for the entity - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - delete: - tags: - - Identity and Access Management - summary: Unregister the `apikey` for the entity - description: Unregister the `apikey` for the entity. - operationId: deleteEntityApiKeyAuthentication - requestBody: - description: JSON object required for the unregistering the entity and `apikey` - content: - application/json: - schema: - $ref: '#/components/schemas/ApiKeyAuthenticationRequest' - required: true - responses: - '200': - description: The new `apikey` is successfully unregistered for the entity - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - jwtAuth: [] - /wallets: - get: - tags: - - Wallet Management - summary: List all permitted wallets - description: List all permitted wallets. If the role is admin, returns all the - wallets. If the role is tenant, only return permitted wallets. - operationId: getWallets - parameters: - - name: offset - in: query - description: The number of items to skip before returning results. Default - is 0 if not specified. - required: false - schema: - type: integer - format: int32 - - name: limit - in: query - description: The maximum number of items to return. Defaults to 100 if not - specified. - required: false - schema: - type: integer - format: int32 - responses: - '200': - description: Successfully list all permitted wallets - content: - application/json: - schema: - $ref: '#/components/schemas/WalletDetailPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Wallet Management - summary: Create a new wallet - description: "Create a new wallet with the option to provide the seed.\nThe\ - \ seed will be used for all PRISM DID keypair derivation within the wallet.\n\ - \nIf the role is admin, a wallet can be created at any time.\nIf the role\ - \ is tenant, a wallet can only be created if there is no existing wallet permission\ - \ for that tenant.\nThe permission for the tenant will be automatically granted\ - \ after the wallet is created with tenant role.\n " - operationId: createWallet - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateWalletRequest' - required: true - responses: - '201': - description: Successfully create a new wallet - content: - application/json: - schema: - $ref: '#/components/schemas/WalletDetail' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - apiKeyAuth: [] - - jwtAuth: [] - /wallets/{walletId}: - get: - tags: - - Wallet Management - summary: Get the wallet by ID - description: Get the wallet by ID. If the role is tenant, only search the ID - of permitted wallets. - operationId: getWalletsWalletid - parameters: - - name: walletId - in: path - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Successfully get the wallet - content: - application/json: - schema: - $ref: '#/components/schemas/WalletDetail' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - apiKeyAuth: [] - - jwtAuth: [] - /wallets/{walletId}/uma-permissions: - post: - tags: - - Wallet Management - summary: Create a UMA resource permission on an authorization server for the - wallet. - description: "Create a UMA resource permission on an authorization server for\ - \ the wallet.\nThis grants the wallet permission to the specified `subject`,\ - \ where the `subject` denotes the identity of the tenant on an authorization\ - \ server.\n " - operationId: createWalletUmaPermission - parameters: - - name: walletId - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateWalletUmaPermissionRequest' - required: true - responses: - '200': - description: UMA resource permission is created on an authorization server - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - apiKeyAuth: [] - - jwtAuth: [] - delete: - tags: - - Wallet Management - summary: Delete a UMA resource permission on an authorization server for the - wallet. - description: "Remove a UMA resource permission on an authorization server for\ - \ the wallet.\nThis remove the wallet permission to the specified `subject`,\ - \ where the `subject` denotes the identity of the tenant on an authorization\ - \ server.\n " - operationId: deleteWalletUmaPermission - parameters: - - name: walletId - in: path - required: true - schema: - type: string - format: uuid - - name: subject - in: query - required: true - schema: - type: string - format: uuid - responses: - '200': - description: UMA resource permission is removed from an authorization server. - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - adminApiKeyAuth: [] - - apiKeyAuth: [] - - jwtAuth: [] - /events/webhooks: - get: - tags: - - Events - summary: List wallet webhook notifications - description: "List all registered webhook notifications.\nEach webhook notification\ - \ contains a unique identifier, the URL to which the events are sent,\nand\ - \ the custom headers to be included in the dispatched webhook request.\n \ - \ " - operationId: getEventsWebhooks - responses: - '200': - description: List wallet webhook notifications - content: - application/json: - schema: - $ref: '#/components/schemas/WebhookNotificationPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - Events - summary: Create wallet webhook notifications - description: "Create a new wallet webhook notification and subscribe to events.\n\ - A dispatched webhook request may contain static custom headers for authentication\ - \ or custom metadata.\n " - operationId: postEventsWebhooks - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateWebhookNotification' - required: true - responses: - '200': - description: Webhook notification has been created successfully - content: - application/json: - schema: - $ref: '#/components/schemas/WebhookNotification' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '409': - description: Cannot process due to conflict with current state of the resource - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /events/webhooks/{id}: - delete: - tags: - - Events - summary: Delete the wallet webhook notification by `id` - operationId: deleteEventsWebhooksId - parameters: - - name: id - in: path - description: ID of the webhook notification to delete. - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Webhook notification has been deleted. - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/issuers/{issuerId}/credentials: - post: - tags: - - OpenID for Verifiable Credential Issuance - summary: Credential Endpoint - description: OID for VCI [Credential Endpoint](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-credential-endpoint) - operationId: oid4vciIssueCredential - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialRequest' - required: true - responses: - '200': - description: Credential issued successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialResponse' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedErrorResponse' - '401': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedErrorResponse' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedErrorResponse' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExtendedErrorResponse' - security: - - {} - - jwtAuth: [] - /oid4vci/issuers/{issuerId}/credential-offers: - post: - tags: - - OpenID for Verifiable Credential Issuance - summary: Create a new credential offer - description: |- - Create a new credential offer and return a compliant `CredentialOffer` for the holder's - [Credential Offer Endpoint](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-credential-offer-endpoint). - operationId: oid4vciCreateCredentialOffer - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialOfferRequest' - required: true - responses: - '201': - description: CredentialOffer created successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialOfferResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/nonces: - post: - tags: - - OpenID for Verifiable Credential Issuance - summary: Nonce Endpoint - description: The endpoint that returns a `nonce` value for the [Token Endpoint](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-nonce-endpoint) - operationId: getNonce - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NonceRequest' - required: true - responses: - '200': - description: Nonce issued successfully - content: - application/json: - schema: - $ref: '#/components/schemas/NonceResponse' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - {} - - jwtAuth: [] - /oid4vci/issuers: - get: - tags: - - OpenID for Verifiable Credential Issuance - summary: List all credential issuers - operationId: getCredentialIssuers - responses: - '200': - description: List the credential issuers - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialIssuerPage' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - post: - tags: - - OpenID for Verifiable Credential Issuance - summary: Create a new credential issuer - operationId: createCredentialIssuer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCredentialIssuerRequest' - required: true - responses: - '201': - description: Credential issuer created successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialIssuer1' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/issuers/{issuerId}: - delete: - tags: - - OpenID for Verifiable Credential Issuance - summary: Delete the credential issuer - operationId: deleteCredentialIssuer - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - responses: - '200': - description: Credential issuer deleted successfully - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - patch: - tags: - - OpenID for Verifiable Credential Issuance - summary: Update the credential issuer - operationId: updateCredentialIssuer - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchCredentialIssuerRequest' - required: true - responses: - '200': - description: Credential issuer updated successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialIssuer1' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/issuers/{issuerId}/credential-configurations: - post: - tags: - - OpenID for Verifiable Credential Issuance - summary: Create a new credential configuration - description: |- - Create a new credential configuration for the issuer. - It represents the configuration of the credential that can be issued by the issuer. - This credential configuration object will be displayed in the credential issuer metadata. - operationId: createCredentialConfiguration - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCredentialConfigurationRequest' - required: true - responses: - '201': - description: Credential configuration created successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialConfiguration' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/issuers/{issuerId}/credential-configurations/{credentialConfigId}: - get: - tags: - - OpenID for Verifiable Credential Issuance - summary: Get the credential configuration - operationId: getCredentialConfiguration - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - - name: credentialConfigId - in: path - description: An identifier for the credential configuration - required: true - schema: - type: string - example: UniversityDegree - responses: - '200': - description: Get credential configuration successfully - content: - application/json: - schema: - $ref: '#/components/schemas/CredentialConfiguration' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - delete: - tags: - - OpenID for Verifiable Credential Issuance - summary: Delete the credential configuration - operationId: deleteCredentialConfiguration - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - - name: credentialConfigId - in: path - description: An identifier for the credential configuration - required: true - schema: - type: string - example: UniversityDegree - responses: - '200': - description: Credential configuration deleted successfully - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - security: - - apiKeyAuth: [] - - jwtAuth: [] - /oid4vci/issuers/{issuerId}/.well-known/openid-credential-issuer: - get: - tags: - - OpenID for Verifiable Credential Issuance - summary: Get the credential issuer metadata - operationId: getIssuerMetadata - parameters: - - name: issuerId - in: path - description: An issuer identifier in the oid4vci protocol - required: true - schema: - type: string - format: uuid - example: f47ac10b-58cc-4372-a567-0e02b2c3d479 - responses: - '200': - description: Issuer Metadata successfully retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/IssuerMetadata' - '400': - description: Invalid request parameters - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: Resource could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '422': - description: Unable to process the request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '500': - description: Internal server error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' -components: - schemas: - AcceptConnectionInvitationRequest: - required: - - invitation - type: object - properties: - invitation: - type: string - description: The base64-encoded raw out-of-band invitation. - example: eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0= - AcceptCredentialOfferInvitation: - required: - - invitation - type: object - properties: - invitation: - type: string - description: The base64-encoded raw invitation. - example: eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0= - AcceptCredentialOfferRequest: - type: object - properties: - subjectId: - type: string - description: |2 - - The short-form subject Prism DID to which the JWT verifiable credential will be issued. - This parameter only applies if the offer is of type 'JWT'. - example: did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f - keyId: - type: string - description: |2 - - The short-form subject Prism DID to which the JWT verifiable credential will be issued. - This parameter only applies if the offer is of type 'JWT'. - example: did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f - AcceptRequestPresentationInvitation: - required: - - invitation - type: object - properties: - invitation: - type: string - description: The base64-encoded raw invitation. - example: eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0= - ActionType: - type: string - enum: - - ADD_KEY - - ADD_SERVICE - - PATCH_CONTEXT - - REMOVE_KEY - - REMOVE_SERVICE - - UPDATE_SERVICE - AnoncredCredentialProofV1: - required: - - credential - type: object - properties: - credential: - type: string - requestedAttribute: - type: array - items: - type: string - requestedPredicate: - type: array - items: - type: string - AnoncredCredentialProofsV1: - type: object - properties: - credentialProofs: - type: array - items: - $ref: '#/components/schemas/AnoncredCredentialProofV1' - description: A list of proofs from the Anoncred library, each corresponding - to a credential. - AnoncredNonRevokedIntervalV1: - type: object - properties: - from: - type: integer - format: int32 - to: - type: integer - format: int32 - AnoncredPresentationRequestV1: - required: - - requested_attributes - - requested_predicates - - name - - nonce - - version - type: object - properties: - requested_attributes: - $ref: '#/components/schemas/Map_AnoncredRequestedAttributeV1' - requested_predicates: - $ref: '#/components/schemas/Map_AnoncredRequestedPredicateV1' - name: - type: string - nonce: - type: string - version: - type: string - non_revoked: - $ref: '#/components/schemas/AnoncredNonRevokedIntervalV1' - description: Anoncred Presentation Request - example: AnoncredPresentationRequestV1(Map(attribute1 -> AnoncredRequestedAttributeV1(Attribute - 1,List(Map(cred_def_id -> credential_definition_id_of_attribute1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),Some(1735734400))))),Map(predicate1 - -> AnoncredRequestedPredicateV1(Predicate 1,>=,18,List(Map(schema_id -> schema_id_of_predicate1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),None)))),Example - Presentation Request,1234567890,1.0,None) - AnoncredRequestedAttributeV1: - required: - - name - type: object - properties: - name: - type: string - restrictions: - type: array - items: - $ref: '#/components/schemas/Map_String' - non_revoked: - $ref: '#/components/schemas/AnoncredNonRevokedIntervalV1' - AnoncredRequestedPredicateV1: - required: - - name - - p_type - - p_value - type: object - properties: - name: - type: string - p_type: - type: string - p_value: - type: integer - format: int32 - restrictions: - type: array - items: - $ref: '#/components/schemas/Map_String' - non_revoked: - $ref: '#/components/schemas/AnoncredNonRevokedIntervalV1' - AnoncredsCredentialRequest: - required: - - format - - anoncreds - type: object - properties: - format: - $ref: '#/components/schemas/CredentialFormat' - proof: - $ref: '#/components/schemas/Proof2' - credential_identifier: - type: string - credential_response_encryption: - $ref: '#/components/schemas/CredentialResponseEncryption' - credential_definition: - $ref: '#/components/schemas/CredentialDefinition' - anoncreds: - type: string - ApiKeyAuthenticationRequest: - required: - - entityId - - apiKey - type: object - properties: - entityId: - type: string - description: The `entityId` of the entity to be updated - format: uuid - example: 01234567-0000-0000-0000-000000000000 - apiKey: - type: string - description: The `apikey` of the entity to be updated - example: dkflks3DflkFmkllnDfde - minLength: 16 - maxLength: 128 - Arr: - type: object - properties: - elements: - type: array - items: {} - AuthorizationServer: - required: - - url - - clientId - - clientSecret - type: object - properties: - url: - type: string - clientId: - type: string - clientSecret: - type: string - Bool: - required: - - value - type: object - properties: - value: - type: boolean - ClaimDescriptor: - type: object - properties: - mandatory: - type: boolean - value_type: - type: string - display: - type: array - items: - $ref: '#/components/schemas/Localization' - Connection: - required: - - connectionId - - thid - - role - - state - - invitation - - createdAt - - metaRetries - - self - - kind - type: object - properties: - connectionId: - type: string - description: The unique identifier of the connection. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - thid: - type: string - description: The unique identifier of the thread this connection record - belongs to. The value will identical on both sides of the connection (inviter - and invitee) - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - label: - type: string - description: A human readable alias for the connection. - example: Peter - goalCode: - type: string - description: A self-attested code the receiver may want to display to the - user or use in automatically deciding what to do with the out-of-band - message. - example: issue-vc - goal: - type: string - description: A self-attested string that the receiver may want to display - to the user about the context-specific goal of the out-of-band message. - example: To issue a Faber College Graduate credential - myDid: - type: string - description: The DID representing me as the inviter or invitee in this specific - connection. - example: did:peer:12345 - theirDid: - type: string - description: The DID representing the other peer as the an inviter or invitee - in this specific connection. - example: did:peer:67890 - role: - type: string - description: The role played by the Prism agent in the connection flow. - example: Inviter - enum: - - Inviter - - Invitee - state: - type: string - description: The current state of the connection protocol execution. - example: InvitationGenerated - enum: - - InvitationGenerated - - InvitationReceived - - ConnectionRequestPending - - ConnectionRequestSent - - ConnectionRequestReceived - - ConnectionResponsePending - - ConnectionResponseSent - - ConnectionResponseReceived - - ProblemReportPending - - ProblemReportSent - - ProblemReportReceived - invitation: - $ref: '#/components/schemas/ConnectionInvitation' - createdAt: - type: string - description: The date and time the connection record was created. - format: date-time - example: 2022-03-10T12:00Z - updatedAt: - type: string - description: The date and time the connection record was last updated. - format: date-time - example: 2022-03-10T12:00Z - metaRetries: - type: integer - description: The maximum background processing attempts remaining for this - record - format: int32 - example: 5 - metaLastFailure: - $ref: '#/components/schemas/ErrorResponse' - self: - type: string - description: The reference to the connection resource. - example: https://atala-prism-products.io/connections/ABCD-1234 - kind: - type: string - description: The type of object returned. In this case a `Connection`. - example: Connection - ConnectionInvitation: - required: - - id - - type - - from - - invitationUrl - type: object - properties: - id: - type: string - description: The unique identifier of the invitation. It should be used - as parent thread ID (pthid) for the Connection Request message that follows. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - type: - type: string - description: The DIDComm Message Type URI (MTURI) the invitation message - complies with. - example: https://didcomm.org/out-of-band/2.0/invitation - from: - type: string - description: The DID representing the sender to be used by recipients for - future interactions. - example: did:peer:1234457 - invitationUrl: - type: string - description: The invitation message encoded as a URL. This URL follows the - Out of [Band 2.0 protocol](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) - and can be used to generate a QR code for example. - example: https://my.domain.com/path?_oob=eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0= - description: The invitation for this connection - ConnectionsPage: - required: - - kind - - self - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/Connection' - description: "\nArray of resources (Connection)\nA sequence of Connection\ - \ resources representing the list of connections that the paginated response\ - \ contains.\n " - example: [] - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: ConnectionsPage - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/connections?offset=10&limit=10 - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains. - example: '' - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/connections?offset=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/connections?offset=0&limit=10 - CreateConnectionRequest: - type: object - properties: - label: - type: string - description: A human readable alias for the connection. - example: Peter - goalCode: - type: string - description: A self-attested code the receiver may want to display to the - user or use in automatically deciding what to do with the out-of-band - message. - example: issue-vc - goal: - type: string - description: A self-attested string that the receiver may want to display - to the user about the context-specific goal of the out-of-band message. - example: To issue a Faber College Graduate credential - CreateCredentialConfigurationRequest: - required: - - configurationId - - format - - schemaId - type: object - properties: - configurationId: - type: string - format: - $ref: '#/components/schemas/CredentialFormat' - schemaId: - type: string - CreateCredentialIssuerRequest: - required: - - authorizationServer - type: object - properties: - id: - type: string - format: uuid - authorizationServer: - $ref: '#/components/schemas/AuthorizationServer' - CreateEntityRequest: - required: - - name - type: object - properties: - id: - type: string - description: The new `id` of the entity to be created. If this field is - not provided, the server will generate a new UUID for the entity - format: uuid - example: 00000000-0000-0000-0000-000000000000 - name: - type: string - description: The new `name` of the entity to be created. If this field is - not provided, the server will generate a random name for the entity - example: John Doe - minLength: 1 - maxLength: 128 - walletId: - type: string - description: The new `walletId` of the entity to be created. If this field - is not provided, the server will set the default `walletId` - format: uuid - example: 00000000-0000-0000-0000-000000000000 - CreateIssueCredentialRecordRequest: - required: - - claims - type: object - properties: - validityPeriod: - type: number - description: The validity period in seconds of the verifiable credential - that will be issued. - format: double - example: 3600.0 - schemaId: - type: string - description: |2 - - The URL pointing to the JSON schema that will be used for this offer (should be 'http' or 'https'). - When dereferenced, the returned content should be a JSON schema compliant with the '[Draft 2020-12](https://json-schema.org/draft/2020-12/release-notes)' version of the specification. - Note that this parameter only applies when the offer is of type 'JWT'. - example: https://agent-host.com/cloud-agent/schema-registry/schemas/d9569cec-c81e-4779-aa86-0d5994d82676/schema - credentialDefinitionId: - type: string - description: |2 - - The unique identifier (UUID) of the credential definition that will be used for this offer. - It should be the identifier of a credential definition that exists in the issuer agent's database. - Note that this parameter only applies when the offer is of type 'AnonCreds'. - format: uuid - example: d9569cec-c81e-4779-aa86-0d5994d82676 - credentialFormat: - type: string - description: The credential format for this offer (defaults to 'JWT') - example: JWT - claims: - description: |2 - - The set of claims that will be included in the issued credential. - The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). - example: - firstname: Alice - lastname: Wonderland - automaticIssuance: - type: boolean - description: |2 - - Specifies whether or not the credential should be automatically generated and issued when receiving the `CredentialRequest` from the holder. - If set to `false`, a manual approval by the issuer via another API call will be required for the VC to be issued. - example: true - issuingDID: - type: string - description: |2 - - The short-form issuer Prism DID by which the JWT verifiable credential will be issued. - Note that this parameter only applies when the offer is type 'JWT'. - example: did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f - connectionId: - type: string - description: |2 - - The unique identifier of a DIDComm connection that already exists between the this issuer agent and the holder cloud or edeg agent. - It should be the identifier of a connection that exists in the issuer agent's database. - This connection will be used to execute the issue credential protocol. - Note: connectionId is only required when the offer is from existing connection. - connectionId is not required when the offer is from invitation for connectionless issuance. - format: uuid - example: d9569cec-c81e-4779-aa86-0d5994d82676 - goalCode: - type: string - description: |2 - - A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. - goalcode is optional and can be provided when the offer is from invitation for connectionless issuance. - example: issue-vc - goal: - type: string - description: |2 - - A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. - goal is optional and can be provided when the offer is from invitation for connectionless issuance. - example: To issue a Faber College Graduate credential - CreateManagedDIDResponse: - required: - - longFormDid - type: object - properties: - longFormDid: - type: string - description: A long-form DID for the created DID - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff:Cr4BCrsBElsKBmF1dGgtMRAEQk8KCXNlY3AyNTZrMRIg0opTuxu-zt6aRbT1tPniG4eu4CYsQPM3rrLzvzNiNgwaIIFTnyT2N4U7qCQ78qtWC3-p0el6Hvv8qxG5uuEw-WgMElwKB21hc3RlcjAQAUJPCglzZWNwMjU2azESIKhBU0eCOO6Vinz_8vhtFSAhYYqrkEXC8PHGxkuIUev8GiAydFHLXb7c22A1Uj_PR21NZp6BCDQqNq2xd244txRgsQ - CreateManagedDidRequest: - required: - - documentTemplate - type: object - properties: - documentTemplate: - $ref: '#/components/schemas/CreateManagedDidRequestDocumentTemplate' - CreateManagedDidRequestDocumentTemplate: - type: object - properties: - publicKeys: - type: array - items: - $ref: '#/components/schemas/ManagedDIDKeyTemplate' - services: - type: array - items: - $ref: '#/components/schemas/Service' - contexts: - type: array - items: - type: string - description: The JSON-LD context describing the JSON document - example: https://didcomm.org/messaging/contexts/v2 - CreateWalletRequest: - required: - - name - type: object - properties: - seed: - type: string - description: A BIP32 seed encoded in hexadecimal string. It is expected - to represent 64-bytes binary seed (128 hex characters). - example: c9994785ce6d548134020f610b76102ca1075d3bb672a75ec8c9a27a7b8607e3b9b384e43b77bb08f8d5159651ae38b98573f7ecc79f2d7e1f1cc371ce60cf8a - name: - type: string - description: A name of the wallet - example: my-wallet-1 - minLength: 1 - maxLength: 128 - id: - type: string - description: The unique `id` of the wallet. Randomly generated if not specified. - format: uuid - example: 00000000-0000-0000-0000-000000000000 - CreateWalletUmaPermissionRequest: - required: - - subject - type: object - properties: - subject: - type: string - description: The subject ID that should be granted the permission to the - wallet. This can be found in the `sub` claim of a JWT token. - format: uuid - example: 00000000-0000-0000-0000-000000000000 - CreateWebhookNotification: - required: - - url - type: object - properties: - url: - type: string - description: A URL of webhook for event notification - example: http://example.com - customHeaders: - $ref: '#/components/schemas/Map_String' - CredentialConfiguration: - required: - - configurationId - - format - - scope - - schemaId - - createdAt - type: object - properties: - configurationId: - type: string - format: - $ref: '#/components/schemas/CredentialFormat' - scope: - type: string - schemaId: - type: string - createdAt: - type: string - format: date-time - CredentialDefinition: - type: object - properties: - '@context': - type: array - items: - type: string - type: - type: array - items: - type: string - credentialSubject: - $ref: '#/components/schemas/Map_ClaimDescriptor' - CredentialDefinitionInput: - required: - - name - - version - - tag - - author - - schemaId - - signatureType - - supportRevocation - type: object - properties: - name: - type: string - description: A human-readable name for the credential definition. A piece - of Metadata. - example: DrivingLicense - minLength: 1 - description: - type: string - description: A human-readable description of the credential definition - example: Simple credential definition for the driving licence verifiable - credential. - minLength: 1 - version: - type: string - description: Denotes the revision of a given Credential Definition. It should - follow semantic version convention to describe the impact of the credential - definition evolution. - example: 1.0.0 - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - tag: - type: string - description: Token that allow to lookup and filter the credential definition - records. - example: licence - author: - type: string - description: DID of the identity which authored the credential definition. - A piece of Metadata. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - pattern: ^did:(?[a-z0-9]+(:[a-z0-9]+)*)\:(?[^#?]*)$ - schemaId: - type: string - description: The unique identifier of the schema used for this credential - definition. - example: https://agent-host.com/cloud-agent/schema-registry/schemas/d9569cec-c81e-4779-aa86-0d5994d82676 - signatureType: - type: string - description: Signature type used in the CredentialDefinition. - example: CL - supportRevocation: - type: boolean - description: Boolean flag indicating whether revocation is supported for - this CredentialDefinition. - example: false - CredentialDefinitionResponse: - required: - - guid - - id - - name - - version - - tag - - description - - author - - authored - - schemaId - - definition - - keyCorrectnessProof - - signatureType - - supportRevocation - - kind - - self - type: object - properties: - guid: - type: string - description: 'Globally unique id of the credential definition.It''s composed - from the bytes of the string that contain the `author`, `name`, and `version` - values.The string format looks like the resource identifier: `author`/`id`?version=`version`' - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - id: - type: string - description: A locally unique identifier to address the credential definition. - UUID is generated by the backend. - example: 0527aea1-d131-3948-a34d-03af39aba8b5 - longId: - type: string - description: Resource id of the credential definition. Contains the `author`'s - DID, `id` and `version` fields. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0 - name: - type: string - description: A human-readable name for the credential definition. A piece - of Metadata. - example: DrivingLicense - version: - type: string - description: Denotes the revision of a given Credential Definition. It should - follow semantic version convention to describe the impact of the credential - definition evolution. - example: 1.0.0 - tag: - type: string - description: Token that allow to lookup and filter the credential definition - records. - example: licence - description: - type: string - description: A human-readable description of the credential definition - example: Simple credential definition for the driving licence verifiable - credential. - author: - type: string - description: DID of the identity which authored the credential definition. - A piece of Metadata. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - authored: - type: string - description: '[RFC3339](https://www.rfc-editor.org/rfc/rfc3339) date on - which the credential definition was created. A piece of Metadata.' - format: date-time - example: 2022-03-10T12:00Z - schemaId: - type: string - description: The unique identifier of the schema used for this credential - definition. - example: https://agent-host.com/cloud-agent/schema-registry/schemas/d9569cec-c81e-4779-aa86-0d5994d82676 - definition: - description: Definition object that represents the actual definition of - the credential. - example: - credentialSubject: - emailAddress: alice@wonderland.com - givenName: Alice - familyName: Wonderland - dateOfIssuance: '2000-01-01T10:00:00Z' - drivingLicenseID: '12345' - drivingClass: 5 - keyCorrectnessProof: - description: A proof that validates the correctness of the key within the - context of the credential definition. - signatureType: - type: string - description: Signature type used in the CredentialDefinition. - example: CL - supportRevocation: - type: boolean - description: Boolean flag indicating whether revocation is supported for - this CredentialDefinition. - example: false - proof: - $ref: '#/components/schemas/Proof' - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: CredentialDefinition - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/credential-definition-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4 - CredentialDefinitionResponsePage: - required: - - kind - - self - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/CredentialDefinitionResponse' - description: A sequence of CredentialSchemaResponse objects representing - the list of credential schemas that the API response contains - example: [] - kind: - type: string - description: A string field indicating the type of the API response. In - this case, it will always be set to `CredentialSchemaPage` - example: CredentialSchemaPage - self: - type: string - description: A string field containing the URL of the current API endpoint - example: /cloud-agent/schema-registry/schemas?skip=10&limit=10 - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains - example: /cloud-agent/schema-registry/schemas - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=0&limit=10 - CredentialErrorCode: - type: string - enum: - - insufficient_scope - - invalid_credential_request - - invalid_encryption_parameters - - invalid_proof - - invalid_request - - invalid_token - - unsupported_credential_format - - unsupported_credential_type - CredentialErrorResponse: - required: - - error - type: object - properties: - error: - $ref: '#/components/schemas/CredentialErrorCode' - error_description: - type: string - c_nonce: - type: string - c_nonce_expires_in: - type: integer - format: int64 - CredentialFormat: - type: string - enum: - - anoncreds - - jwt_vc_json - - vc+sd-jwt - CredentialIssuer: - required: - - id - type: object - properties: - id: - type: string - CredentialIssuer1: - required: - - id - - authorizationServerUrl - type: object - properties: - id: - type: string - format: uuid - authorizationServerUrl: - type: string - CredentialIssuerPage: - required: - - self - - kind - - pageOf - type: object - properties: - self: - type: string - kind: - type: string - pageOf: - type: string - next: - type: string - previous: - type: string - contents: - type: array - items: - $ref: '#/components/schemas/CredentialIssuer1' - CredentialOfferRequest: - required: - - credentialConfigurationId - - issuingDID - - claims - type: object - properties: - credentialConfigurationId: - type: string - issuingDID: - type: string - claims: {} - CredentialOfferResponse: - required: - - credentialOffer - type: object - properties: - credentialOffer: - type: string - CredentialRequest: - oneOf: - - $ref: '#/components/schemas/AnoncredsCredentialRequest' - - $ref: '#/components/schemas/JwtCredentialRequest' - discriminator: - propertyName: format - mapping: - anoncreds: '#/components/schemas/AnoncredsCredentialRequest' - jwt_vc_json: '#/components/schemas/JwtCredentialRequest' - CredentialResponse: - oneOf: - - $ref: '#/components/schemas/DeferredCredentialResponse' - - $ref: '#/components/schemas/ImmediateCredentialResponse' - CredentialResponseEncryption: - required: - - jwk - - alg - - enc - type: object - properties: - jwk: - type: string - alg: - type: string - enc: - type: string - CredentialSchemaInput: - required: - - name - - version - - type - - schema - - author - type: object - properties: - name: - type: string - description: A human-readable name for the credential schema. A piece of - Metadata. - example: DrivingLicense - minLength: 1 - version: - type: string - description: Denotes the revision of a given Credential Schema. It should - follow semantic version convention to describe the impact of the schema - evolution. - example: 1.0.0 - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - description: - type: string - description: A human-readable description of the credential schema - example: Simple credential schema for the driving licence verifiable credential. - minLength: 1 - type: - type: string - description: This field resolves to a JSON schema with details about the - schema metadata that applies to the schema. A piece of Metadata. - example: https://w3c-ccg.github.io/vc-json-schemas/schema/2.0/schema.json - schema: - description: Valid JSON Schema where the Credential Schema data fields are - defined. A piece of Metadata - example: - $id: https://example.com/driving-license-1.0 - $schema: https://json-schema.org/draft/2020-12/schema - description: Driving License - type: object - properties: - emailAddress: - type: string - format: email - givenName: - type: string - familyName: - type: string - dateOfIssuance: - type: string - format: date-time - drivingLicenseID: - type: string - drivingClass: - type: integer - required: - - emailAddress - - familyName - - dateOfIssuance - - drivingLicenseID - - drivingClass - additionalProperties: false - tags: - type: array - items: - type: string - description: Tokens that allow to lookup and filter the credential schema - records. - example: - - driving - - licence - - id - author: - type: string - description: DID of the identity which authored the credential schema. A - piece of Metadata. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - pattern: ^did:(?[a-z0-9]+(:[a-z0-9]+)*)\:(?[^#?]*)$ - CredentialSchemaResponse: - required: - - guid - - id - - name - - version - - description - - type - - schema - - author - - authored - - kind - - self - type: object - properties: - guid: - type: string - description: 'Globally unique id of the credential schema.It''s composed - from the bytes of the string that contain the `author`, `name`, and `version` - values.The string format looks like the resource identifier: `author`/`id`?version=`version`' - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - id: - type: string - description: A locally unique identifier to address the schema. UUID is - generated by the backend. - example: 0527aea1-d131-3948-a34d-03af39aba8b5 - longId: - type: string - description: Resource id of the credential schema. Contains the `author`'s - DID, `id` and `version` fields. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0 - name: - type: string - description: A human-readable name for the credential schema. A piece of - Metadata. - example: DrivingLicense - version: - type: string - description: Denotes the revision of a given Credential Schema. It should - follow semantic version convention to describe the impact of the schema - evolution. - example: 1.0.0 - tags: - type: array - items: - type: string - description: Tokens that allow to lookup and filter the credential schema - records. - example: - - driving - - licence - - id - description: - type: string - description: A human-readable description of the credential schema - example: Simple credential schema for the driving licence verifiable credential. - type: - type: string - description: This field resolves to a JSON schema with details about the - schema metadata that applies to the schema. A piece of Metadata. - example: https://w3c-ccg.github.io/vc-json-schemas/schema/2.0/schema.json - schema: - description: Valid JSON Schema where the Credential Schema data fields are - defined. A piece of Metadata - example: - $id: https://example.com/driving-license-1.0 - $schema: https://json-schema.org/draft/2020-12/schema - description: Driving License - type: object - properties: - emailAddress: - type: string - format: email - givenName: - type: string - familyName: - type: string - dateOfIssuance: - type: string - format: date-time - drivingLicenseID: - type: string - drivingClass: - type: integer - required: - - emailAddress - - familyName - - dateOfIssuance - - drivingLicenseID - - drivingClass - additionalProperties: false - author: - type: string - description: DID of the identity which authored the credential schema. A - piece of Metadata. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - authored: - type: string - description: '[RFC3339](https://www.rfc-editor.org/rfc/rfc3339) date on - which the credential schema was created. A piece of Metadata.' - format: date-time - example: 2022-03-10T12:00Z - proof: - $ref: '#/components/schemas/Proof1' - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: CredentialSchema - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/schema-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4 - CredentialSchemaResponsePage: - required: - - kind - - self - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/CredentialSchemaResponse' - description: A sequence of CredentialSchemaResponse objects representing - the list of credential schemas that the API response contains - example: [] - kind: - type: string - description: A string field indicating the type of the API response. In - this case, it will always be set to `CredentialSchemaPage` - example: CredentialSchemaPage - self: - type: string - description: A string field containing the URL of the current API endpoint - example: /cloud-agent/schema-registry/schemas?skip=10&limit=10 - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains - example: /cloud-agent/schema-registry/schemas - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=0&limit=10 - CredentialSubject: - required: - - type - - statusPurpose - - encodedList - type: object - properties: - type: - type: string - description: Always equals to constnat value - StatusList2021 - example: StatusList2021 - statusPurpose: - $ref: '#/components/schemas/StatusPurpose' - encodedList: - type: string - description: base64 url encoded bitstring of credential statuses - example: H4sIAAAAAAAA_-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA - description: Object containing claims specific to status list credential - Curve: - type: string - description: The curve name of the verification material in the DID Document. - Defaults to `secp256k1` if not specified. - example: Ed25519 - enum: - - Ed25519 - - X25519 - - secp256k1 - CwtProof: - required: - - proof_type - - cwt - type: object - properties: - proof_type: - $ref: '#/components/schemas/ProofType' - cwt: - type: string - DIDDocument: - required: - - id - type: object - properties: - '@context': - type: array - items: - type: string - description: The JSON-LD context describing the JSON document - example: https://didcomm.org/messaging/contexts/v2 - id: - type: string - description: |- - [DID subject](https://www.w3.org/TR/did-core/#did-subject). - The value must match the DID that was given to the resolver. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - controller: - type: string - description: '[DID controller](https://www.w3.org/TR/did-core/#did-controller)' - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - verificationMethod: - type: array - items: - $ref: '#/components/schemas/VerificationMethod' - 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 - service: - type: array - items: - $ref: '#/components/schemas/Service' - description: A W3C compliant Prism DID document representation. - DIDDocumentMetadata: - type: object - properties: - deactivated: - type: boolean - description: If a DID has been deactivated, DID document metadata MUST include - this property with the boolean value true. If a DID has not been deactivated, - this property is OPTIONAL, but if included, MUST have the boolean value - false. - example: false - canonicalId: - type: string - description: |2 - - A DID in canonical form. - If a DID is in long form and has been published, DID document metadata MUST contain a `canonicalId`` property with the short form DID as its value. - If a DID in short form or has not been published, DID document metadata MUST NOT contain a `canonicalId` property. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - versionId: - type: string - description: |2 - - DID document metadata MUST contain a versionId property with the hash of the AtalaOperation contained in the latest valid SignedAtalaOperation that created the DID or changed the DID's internal state. - example: 4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - created: - type: string - description: The timestamp of the Cardano block that contained the first - valid SignedAtalaOperation with a CreateDIDOperation that created the - DID. - example: '2023-02-04T13:52:10Z' - updated: - type: string - description: The timestamp of the Cardano block that contained the latest - valid SignedAtalaOperation that changed the DID's internal state. - example: '2023-02-04T13:52:10Z' - description: '[DID document metadata](https://www.w3.org/TR/did-core/#did-document-metadata)' - DIDOperationResponse: - required: - - scheduledOperation - type: object - properties: - scheduledOperation: - $ref: '#/components/schemas/DidOperationSubmission' - DIDResolutionMetadata: - type: object - properties: - error: - type: string - description: Resolution error constant according to [DID spec registries](https://www.w3.org/TR/did-spec-registries/#error) - example: invalidDid - errorMessage: - type: string - description: Resolution error message - example: The initialState does not match the suffix - contentType: - type: string - description: The media type of the returned DID document - example: application/did+ld+json - description: '[DID resolution metadata](https://www.w3.org/TR/did-core/#did-resolution-metadata)' - DIDResolutionResult: - required: - - '@context' - - didDocumentMetadata - - didResolutionMetadata - type: object - properties: - '@context': - type: string - description: The JSON-LD context describing the JSON document - example: https://didcomm.org/messaging/contexts/v2 - didDocument: - $ref: '#/components/schemas/DIDDocument' - didDocumentMetadata: - $ref: '#/components/schemas/DIDDocumentMetadata' - didResolutionMetadata: - $ref: '#/components/schemas/DIDResolutionMetadata' - DateTimeParameter: - required: - - dateTime - - parameterType - type: object - properties: - dateTime: - type: string - description: The date and time to use for verification. - format: date-time - example: '2022-03-10T12:00:00Z' - parameterType: - type: string - DeferredCredentialResponse: - required: - - transaction_id - type: object - properties: - transaction_id: - type: string - c_nonce: - type: string - c_nonce_expires_in: - type: integer - format: int32 - DidOperationSubmission: - required: - - id - - didRef - type: object - properties: - id: - type: string - description: A scheduled operation ID - example: 98e6a4db10e58fcc011dd8def5ce99fd8b52af39e61e5fb436dc28259139818b - didRef: - type: string - description: A DID affected by the scheduled operation - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - DidParameter: - required: - - did - - parameterType - type: object - properties: - did: - type: string - description: The DID (Decentralized Identifier) to use for verification. - example: did:prism:issuer - parameterType: - type: string - EntityResponse: - required: - - kind - - self - - id - - name - - walletId - - createdAt - - updatedAt - type: object - properties: - kind: - type: string - description: The `kind` of the entity. - example: Entity - self: - type: string - description: The `self` link of the entity. - example: http://localhost:8080/cloud-agent/iam/entities/00000000-0000-0000-0000-000000000000 - id: - type: string - description: The unique `id` of the entity - format: uuid - example: 00000000-0000-0000-0000-000000000000 - name: - type: string - description: The `name` of the entity. - example: John Doe - walletId: - type: string - description: The `walletId` owned by the entity. - format: uuid - example: 00000000-0000-0000-0000-000000000000 - createdAt: - type: string - description: The `createdAt` timestamp of the entity. - format: date-time - example: '2023-01-01T00:00:00Z' - updatedAt: - type: string - description: The `updatedAt` timestamp of the entity. - format: date-time - example: '2023-01-01T00:00:00Z' - EntityResponsePage: - required: - - kind - - self - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/EntityResponse' - description: A sequence of CredentialSchemaResponse objects representing - the list of credential schemas that the API response contains - example: - - kind: Entity - self: /cloud-agent/iam/entities/00000000-0000-0000-0000-000000000000 - id: 00000000-0000-0000-0000-000000000000 - name: John Doe - walletId: 00000000-0000-0000-0000-000000000000 - createdAt: '2023-01-01T00:00:00Z' - updatedAt: '2023-01-01T00:00:00Z' - kind: - type: string - description: A string field indicating the type of the API response. In - this case, it will always be set to `CredentialSchemaPage` - example: CredentialSchemaPage - self: - type: string - description: A string field containing the URL of the current API endpoint - example: /cloud-agent/schema-registry/schemas?skip=10&limit=10 - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains - example: /cloud-agent/schema-registry/schemas - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/schema-registry/schemas?skip=0&limit=10 - ErrorResponse: - required: - - status - - type - - title - - instance - type: object - properties: - status: - type: integer - description: The HTTP status code for this occurrence of the problem. - format: int32 - example: 200 - type: - type: string - description: A URI reference that identifies the problem type. - example: https://example.org/doc/#model-MalformedEmail/ - title: - type: string - description: A short, human-readable summary of the problem type. It does - not change from occurrence to occurrence of the problem. - example: Malformed email - detail: - type: string - description: A human-readable explanation specific to this occurrence of - the problem. - example: The received '{}à!è@!.b}' email does not conform to the email format - instance: - type: string - description: A URI reference that identifies the specific occurrence of - the problem. It may or may not yield further information if dereferenced. - example: The received '{}à!è@!.b}' email does not conform to the email format - ExtendedErrorResponse: - oneOf: - - $ref: '#/components/schemas/CredentialErrorResponse' - - $ref: '#/components/schemas/ErrorResponse' - HealthInfo: - required: - - version - type: object - properties: - version: - type: string - description: The semantic version number of the running service - example: 1.1.0 - ImmediateCredentialResponse: - required: - - credential - type: object - properties: - credential: - type: string - c_nonce: - type: string - c_nonce_expires_in: - type: integer - format: int32 - IssueCredentialOfferInvitation: - required: - - id - - type - - from - - invitationUrl - type: object - properties: - id: - type: string - description: The unique identifier of the invitation. It should be used - as parent thread ID (pthid) for the Connection Request message that follows. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - type: - type: string - description: The DIDComm Message Type URI (MTURI) the invitation message - complies with. - example: https://didcomm.org/out-of-band/2.0/invitation - from: - type: string - description: The DID representing the sender to be used by recipients for - future interactions. - example: did:peer:1234457 - invitationUrl: - type: string - description: The invitation message encoded as a URL. This URL follows the - Out of [Band 2.0 protocol](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) - and can be used to generate a QR code for example. - example: https://my.domain.com/path?_oob=eyJpZCI6ImY5NmUzNjk5LTU5MWMtNGFlNy1iNWU2LTZlZmU2ZDI2MjU1YiIsInR5cGUiOiJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzIuMC9pbnZpdGF0aW9uIiwiZnJvbSI6ImRpZDpwZWVyOjIuRXo2TFNmc0tNZTh2U1NXa1lkWkNwbjRZVmlQRVJmZEdBaGRMQUdIZ3gyTEdKd2ZtQS5WejZNa3B3MWtTYWJCTXprQTN2NTl0UUZuaDNGdGtLeTZ4TGhMeGQ5UzZCQW9hQmcyLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQTZMeTh4T1RJdU1UWTRMakV1TXpjNk9EQTRNQzlrYVdSamIyMXRJaXdpY2lJNlcxMHNJbUVpT2xzaVpHbGtZMjl0YlM5Mk1pSmRmWDAiLCJib2R5Ijp7ImdvYWxfY29kZSI6Imlzc3VlLXZjIiwiZ29hbCI6IlRvIGlzc3VlIGEgRmFiZXIgQ29sbGVnZSBHcmFkdWF0ZSBjcmVkZW50aWFsIiwiYWNjZXB0IjpbImRpZGNvbW0vdjIiXX0sImF0dGFjaG1lbnRzIjpbeyJpZCI6IjcwY2RjOTBjLTlhOTktNGNkYS04N2ZlLTRmNGIyNTk1MTEyYSIsIm1lZGlhX3R5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiZGF0YSI6eyJqc29uIjp7ImlkIjoiNjU1ZTlhMmMtNDhlZC00NTliLWIzZGEtNmIzNjg2NjU1NTY0IiwidHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvaXNzdWUtY3JlZGVudGlhbC8zLjAvb2ZmZXItY3JlZGVudGlhbCIsImJvZHkiOnsiZ29hbF9jb2RlIjoiT2ZmZXIgQ3JlZGVudGlhbCIsImNyZWRlbnRpYWxfcHJldmlldyI6eyJ0eXBlIjoiaHR0cHM6Ly9kaWRjb21tLm9yZy9pc3N1ZS1jcmVkZW50aWFsLzMuMC9jcmVkZW50aWFsLWNyZWRlbnRpYWwiLCJib2R5Ijp7ImF0dHJpYnV0ZXMiOlt7Im5hbWUiOiJmYW1pbHlOYW1lIiwidmFsdWUiOiJXb25kZXJsYW5kIn0seyJuYW1lIjoiZ2l2ZW5OYW1lIiwidmFsdWUiOiJBbGljZSJ9LHsibmFtZSI6ImRyaXZpbmdDbGFzcyIsInZhbHVlIjoiTXc9PSIsIm1lZGlhX3R5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0seyJuYW1lIjoiZGF0ZU9mSXNzdWFuY2UiLCJ2YWx1ZSI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAifSx7Im5hbWUiOiJlbWFpbEFkZHJlc3MiLCJ2YWx1ZSI6ImFsaWNlQHdvbmRlcmxhbmQuY29tIn0seyJuYW1lIjoiZHJpdmluZ0xpY2Vuc2VJRCIsInZhbHVlIjoiMTIzNDUifV19fX0sImF0dGFjaG1lbnRzIjpbeyJpZCI6Ijg0MDQ2NzhiLTlhMzYtNDk4OS1hZjFkLTBmNDQ1MzQ3ZTBlMyIsIm1lZGlhX3R5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiZGF0YSI6eyJqc29uIjp7Im9wdGlvbnMiOnsiY2hhbGxlbmdlIjoiYWQwZjQzYWQtODUzOC00MWQ0LTljYjgtMjA5NjdiYzY4NWJjIiwiZG9tYWluIjoiZG9tYWluIn0sInByZXNlbnRhdGlvbl9kZWZpbml0aW9uIjp7ImlkIjoiNzQ4ZWZhNTgtMmJjZS00NDBkLTkyMWYtMjUyMGE4NDQ2NjYzIiwiaW5wdXRfZGVzY3JpcHRvcnMiOltdLCJmb3JtYXQiOnsiand0Ijp7ImFsZyI6WyJFUzI1NksiXSwicHJvb2ZfdHlwZSI6W119fX19fSwiZm9ybWF0IjoicHJpc20vand0In1dLCJ0aGlkIjoiZjk2ZTM2OTktNTkxYy00YWU3LWI1ZTYtNmVmZTZkMjYyNTViIiwiZnJvbSI6ImRpZDpwZWVyOjIuRXo2TFNmc0tNZTh2U1NXa1lkWkNwbjRZVmlQRVJmZEdBaGRMQUdIZ3gyTEdKd2ZtQS5WejZNa3B3MWtTYWJCTXprQTN2NTl0UUZuaDNGdGtLeTZ4TGhMeGQ5UzZCQW9hQmcyLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQTZMeTh4T1RJdU1UWTRMakV1TXpjNk9EQTRNQzlrYVdSamIyMXRJaXdpY2lJNlcxMHNJbUVpT2xzaVpHbGtZMjl0YlM5Mk1pSmRmWDAifX19XSwiY3JlYXRlZF90aW1lIjoxNzI0ODUxMTM5LCJleHBpcmVzX3RpbWUiOjE3MjQ4NTE0Mzl9= - description: The invitation for this Offer Credential - IssueCredentialRecord: - required: - - recordId - - thid - - credentialFormat - - claims - - createdAt - - role - - protocolState - - metaRetries - type: object - properties: - recordId: - type: string - description: |2 - - The unique identifier of the issue credential record. - This identifier is internal to the agent and not shared between issuer and holder. - example: 80d612dc-0ded-4ac9-90b4-1b8eabb04545 - thid: - type: string - description: |2 - - The unique identifier of the 'thread' identifying the specific issuance flow execution as a whole. - This same unique 'thid' value is included in every message exchanged during the flow execution. - It is shared between the issuer and the holder agents and its value identical on both sides. - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - credentialFormat: - type: string - description: The credential format for this offer. - example: JWT - enum: - - JWT - - AnonCreds - subjectId: - type: string - description: |2 - - The short-form subject Prism DID to which the JWT verifiable credential will be or has been issued. - This parameter only applies if the offer is of type 'JWT' and will only exist in the cloud agent of the holder (it will be empty on the issuer side). - example: did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f - validityPeriod: - type: number - description: |2 - - The validity period in seconds of the verifiable credential that will be issued. - This parameter will only exist in the cloud agent of the issuer (it will be empty on the holder side). - format: double - example: 3600.0 - claims: - description: |2 - - The set of claims included in the issued credential. - example: - firstname: Alice - lastname: Wonderland - automaticIssuance: - type: boolean - description: |2 - - Specifies whether or not the credential is automatically generated and issued when receiving the `CredentialRequest` from the holder. - If set to `false`, a manual approval by the issuer via another API call will be required for the VC to be issued. - This parameter will only exist in the cloud agent of the issuer (it will be empty on the holder side). - example: true - createdAt: - type: string - description: The date and time when the issue credential record was created. - format: date-time - example: '2024-09-11T13:22:27.796180424Z' - updatedAt: - type: string - description: The date and time when the issue credential record was last - updated. - format: date-time - role: - type: string - description: The role played by the agent in the credential issuance flow. - example: Issuer - enum: - - Issuer - - Holder - protocolState: - type: string - description: The current state of the issue credential protocol execution. - example: CredentialSent - enum: - - OfferPending - - OfferSent - - OfferReceived - - RequestPending - - RequestGenerated - - RequestSent - - RequestReceived - - CredentialPending - - CredentialGenerated - - CredentialSent - - CredentialReceived - - ProblemReportPending - - ProblemReportSent - - ProblemReportReceived - - InvitationExpired - - InvitationGenerated - credential: - type: string - description: The base64-encoded credential that was issued by the issuer - agent, in 'JWT' or 'AnonCreds' format depending on the offer type. - example: eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0= - issuingDID: - type: string - description: |2 - - The short-form issuer Prism DID by which the JWT verifiable credential will be or has been issued. - Note that this parameter only applies when the offer is type 'JWT'. - example: did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f - goalCode: - type: string - description: A self-attested code the receiver may want to display to the - user or use in automatically deciding what to do with the out-of-band - message. - example: issue-vc - goal: - type: string - description: A self-attested string that the receiver may want to display - to the user about the context-specific goal of the out-of-band message. - example: To issue a Faber College Graduate credential - myDid: - type: string - description: The DID representing me as the inviter or invitee in this specific - connection. - example: did:peer:12345 - invitation: - $ref: '#/components/schemas/IssueCredentialOfferInvitation' - metaRetries: - type: integer - description: The maximum background processing attempts remaining for this - record. - format: int32 - example: 5 - metaLastFailure: - $ref: '#/components/schemas/ErrorResponse' - IssueCredentialRecordPage: - required: - - kind - - self - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/IssueCredentialRecord' - description: |2 - - An sequence of IssueCredentialRecord resources representing the list of credential records that the paginated response contains. - example: [] - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: Collection - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/issue-credentials/records?offset=10&limit=10 - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains. - example: /cloud-agent/issue-credentials/records - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/issue-credentials/records?offset=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/issue-credentials/records?offset=0&limit=10 - IssuerMetadata: - required: - - credential_issuer - - credential_endpoint - - credential_configurations_supported - type: object - properties: - credential_issuer: - type: string - authorization_servers: - type: array - items: - type: string - credential_endpoint: - type: string - credential_configurations_supported: - $ref: '#/components/schemas/Map_SupportedCredentialConfiguration' - Json: - description: The service endpoint. Can contain multiple possible values as described - in the [Create DID operation](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#create-did) - example: https://example.com - oneOf: - - $ref: '#/components/schemas/Arr' - - $ref: '#/components/schemas/Bool' - - $ref: '#/components/schemas/Null' - - $ref: '#/components/schemas/Num' - - $ref: '#/components/schemas/Obj' - - $ref: '#/components/schemas/Str' - JwtCredentialRequest: - required: - - format - type: object - properties: - format: - $ref: '#/components/schemas/CredentialFormat' - proof: - $ref: '#/components/schemas/Proof2' - credential_identifier: - type: string - credential_response_encryption: - $ref: '#/components/schemas/CredentialResponseEncryption' - credential_definition: - $ref: '#/components/schemas/CredentialDefinition' - JwtProof: - required: - - proof_type - - jwt - type: object - properties: - proof_type: - $ref: '#/components/schemas/ProofType' - jwt: - type: string - LdpProof: - required: - - proof_type - - vp - type: object - properties: - proof_type: - $ref: '#/components/schemas/ProofType' - vp: - type: string - Localization: - required: - - name - - locale - type: object - properties: - name: - type: string - locale: - type: string - ManagedDID: - required: - - did - - status - type: object - properties: - did: - type: string - description: A managed DID - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - longFormDid: - type: string - description: A long-form DID. Mandatory when status is not `PUBLISHED` and - optional when status is `PUBLISHED` - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff:Cr4BCrsBElsKBmF1dGgtMRAEQk8KCXNlY3AyNTZrMRIg0opTuxu-zt6aRbT1tPniG4eu4CYsQPM3rrLzvzNiNgwaIIFTnyT2N4U7qCQ78qtWC3-p0el6Hvv8qxG5uuEw-WgMElwKB21hc3RlcjAQAUJPCglzZWNwMjU2azESIKhBU0eCOO6Vinz_8vhtFSAhYYqrkEXC8PHGxkuIUev8GiAydFHLXb7c22A1Uj_PR21NZp6BCDQqNq2xd244txRgsQ - status: - type: string - description: |- - A status indicating a publication state of a DID in the wallet (e.g. `PUBLICATION_PENDING`, `PUBLISHED`). - Does not represent DID a lifecyle (e.g. `deactivated`, `recovered`, `updated`). - example: CREATED - ManagedDIDKeyTemplate: - required: - - id - - purpose - type: object - properties: - id: - type: string - description: Identifier of a verification material in the DID Document - example: key-1 - purpose: - $ref: '#/components/schemas/Purpose' - curve: - $ref: '#/components/schemas/Curve' - description: A key-pair template to add to DID document. - ManagedDIDPage: - required: - - self - - kind - - pageOf - type: object - properties: - self: - type: string - kind: - type: string - pageOf: - type: string - next: - type: string - previous: - type: string - contents: - type: array - items: - $ref: '#/components/schemas/ManagedDID' - Map_AnoncredRequestedAttributeV1: - type: object - additionalProperties: - $ref: '#/components/schemas/AnoncredRequestedAttributeV1' - Map_AnoncredRequestedPredicateV1: - type: object - additionalProperties: - $ref: '#/components/schemas/AnoncredRequestedPredicateV1' - Map_ClaimDescriptor: - type: object - additionalProperties: - $ref: '#/components/schemas/ClaimDescriptor' - Map_String: - type: object - additionalProperties: - type: string - Map_SupportedCredentialConfiguration: - type: object - additionalProperties: - $ref: '#/components/schemas/SupportedCredentialConfiguration' - NonceRequest: - required: - - issuerState - type: object - properties: - issuerState: - type: string - NonceResponse: - required: - - nonce - - nonceExpiresIn - type: object - properties: - nonce: - type: string - nonceExpiresIn: - type: integer - format: int64 - 'Null': - type: object - Num: - required: - - value - type: object - properties: - value: - type: number - OOBPresentationInvitation: - required: - - id - - type - - from - - invitationUrl - type: object - properties: - id: - type: string - description: The unique identifier of the invitation. It should be used - as parent thread ID (pthid) for the Connection Request message that follows. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - type: - type: string - description: The DIDComm Message Type URI (MTURI) the invitation message - complies with. - example: https://didcomm.org/out-of-band/2.0/invitation - from: - type: string - description: The DID representing the sender to be used by recipients for - future interactions. - example: did:peer:1234457 - invitationUrl: - type: string - description: The invitation message encoded as a URL. This URL follows the - Out of [Band 2.0 protocol](https://identity.foundation/didcomm-messaging/spec/v2.0/#out-of-band-messages) - and can be used to generate a QR code for example. - example: https://my.domain.com/path?_oob=eyJpZCI6IjViMjUwMjIzLWExNDItNDRmYi1hOWJkLWU1MjBlNGI0ZjQzMiIsInR5cGUiOiJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzIuMC9pbnZpdGF0aW9uIiwiZnJvbSI6ImRpZDpwZWVyOjIuRXo2TFNkV0hWQ1BFOHc0NWZETjM4aUh0ZFJ6WGkyTFNqQmRSUjRGTmNOUm12VkNKcy5WejZNa2Z2aUI5S1F1OGlnNVZpeG1HZHM3dmdMNmoyUXNOUGFybkZaanBNQ0E5aHpQLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQTZMeTh4T1RJdU1UWTRMakV1TXpjNk9EQTNNQzlrYVdSamIyMXRJaXdpY2lJNlcxMHNJbUVpT2xzaVpHbGtZMjl0YlM5Mk1pSmRmWDAiLCJib2R5Ijp7ImdvYWxfY29kZSI6InByZXNlbnQtdnAiLCJnb2FsIjoiUmVxdWVzdCBwcm9vZiBvZiB2YWNjaW5hdGlvbiBpbmZvcm1hdGlvbiIsImFjY2VwdCI6W119LCJhdHRhY2htZW50cyI6W3siaWQiOiIyYTZmOGM4NS05ZGE3LTRkMjQtOGRhNS0wYzliZDY5ZTBiMDEiLCJtZWRpYV90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImRhdGEiOnsianNvbiI6eyJpZCI6IjI1NTI5MTBiLWI0NmMtNDM3Yy1hNDdhLTlmODQ5OWI5ZTg0ZiIsInR5cGUiOiJodHRwczovL2RpZGNvbW0uYXRhbGFwcmlzbS5pby9wcmVzZW50LXByb29mLzMuMC9yZXF1ZXN0LXByZXNlbnRhdGlvbiIsImJvZHkiOnsiZ29hbF9jb2RlIjoiUmVxdWVzdCBQcm9vZiBQcmVzZW50YXRpb24iLCJ3aWxsX2NvbmZpcm0iOmZhbHNlLCJwcm9vZl90eXBlcyI6W119LCJhdHRhY2htZW50cyI6W3siaWQiOiJiYWJiNTJmMS05NDUyLTQzOGYtYjk3MC0yZDJjOTFmZTAyNGYiLCJtZWRpYV90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImRhdGEiOnsianNvbiI6eyJvcHRpb25zIjp7ImNoYWxsZW5nZSI6IjExYzkxNDkzLTAxYjMtNGM0ZC1hYzM2LWIzMzZiYWI1YmRkZiIsImRvbWFpbiI6Imh0dHBzOi8vcHJpc20tdmVyaWZpZXIuY29tIn0sInByZXNlbnRhdGlvbl9kZWZpbml0aW9uIjp7ImlkIjoiMGNmMzQ2ZDItYWY1Ny00Y2E1LTg2Y2EtYTA1NTE1NjZlYzZmIiwiaW5wdXRfZGVzY3JpcHRvcnMiOltdfX19LCJmb3JtYXQiOiJwcmlzbS9qd3QifV0sInRoaWQiOiI1YjI1MDIyMy1hMTQyLTQ0ZmItYTliZC1lNTIwZTRiNGY0MzIiLCJmcm9tIjoiZGlkOnBlZXI6Mi5FejZMU2RXSFZDUEU4dzQ1ZkROMzhpSHRkUnpYaTJMU2pCZFJSNEZOY05SbXZWQ0pzLlZ6Nk1rZnZpQjlLUXU4aWc1Vml4bUdkczd2Z0w2ajJRc05QYXJuRlpqcE1DQTloelAuU2V5SjBJam9pWkcwaUxDSnpJanA3SW5WeWFTSTZJbWgwZEhBNkx5OHhPVEl1TVRZNExqRXVNemM2T0RBM01DOWthV1JqYjIxdElpd2ljaUk2VzEwc0ltRWlPbHNpWkdsa1kyOXRiUzkyTWlKZGZYMCJ9fX1dLCJjcmVhdGVkX3RpbWUiOjE3MjQzMzkxNDQsImV4cGlyZXNfdGltZSI6MTcyNDMzOTQ0NH0= - description: The invitation for this Request Presentation - Obj: - type: object - Options: - required: - - challenge - - domain - type: object - properties: - challenge: - type: string - description: The challenge should be a randomly generated string. - example: 11c91493-01b3-4c4d-ac36-b336bab5bddf - domain: - type: string - description: The domain value can be any string or URI. - example: https://example-verifier.com - description: The options to use when creating the proof presentation request - (e.g., domain, challenge). - ParameterizableVcVerification: - required: - - verification - type: object - properties: - verification: - $ref: '#/components/schemas/VcVerification' - parameter: - $ref: '#/components/schemas/VcVerificationParameter' - PatchAuthorizationServer: - type: object - properties: - url: - type: string - clientId: - type: string - clientSecret: - type: string - PatchContextAction: - type: object - properties: - contexts: - type: array - items: - type: string - description: The JSON-LD context describing the JSON document - example: https://didcomm.org/messaging/contexts/v2 - PatchCredentialIssuerRequest: - type: object - properties: - authorizationServer: - $ref: '#/components/schemas/PatchAuthorizationServer' - PresentationStatus: - required: - - presentationId - - thid - - role - - status - - metaRetries - type: object - properties: - presentationId: - type: string - description: The unique identifier of the presentation record. - example: 3c6d9fa5-d277-431e-a6cb-d3956e47e610 - thid: - type: string - description: The unique identifier of the thread this presentation record - belongs to. The value will identical on both sides of the presentation - flow (verifier and prover) - example: 0527aea1-d131-3948-a34d-03af39aba8b4 - role: - type: string - description: The role played by the Prism agent in the proof presentation - flow. - example: Verifier - enum: - - Verifier - - Prover - status: - type: string - description: The current state of the proof presentation record. - example: RequestPending - enum: - - RequestPending - - RequestSent - - RequestReceived - - RequestRejected - - PresentationPending - - PresentationGenerated - - PresentationSent - - PresentationReceived - - PresentationVerified - - PresentationVerificationFailed - - PresentationAccepted - - PresentationRejected - - ProblemReportPending - - ProblemReportSent - - ProblemReportReceived - - InvitationGenerated - - InvitationReceived - proofs: - type: array - items: - $ref: '#/components/schemas/ProofRequestAux' - description: The type of proofs requested in the context of this proof presentation - request (e.g., VC schema, trusted issuers, etc.) - example: [] - data: - type: array - items: - type: string - description: The list of proofs presented by the prover to the verifier. - example: [] - requestData: - type: array - items: - type: string - description: The list of request presented by the verifier to the prover. - example: [] - connectionId: - type: string - description: The unique identifier of an established connection between - the verifier and the prover. - example: bc528dc8-69f1-4c5a-a508-5f8019047900 - goalCode: - type: string - description: A self-attested code the receiver may want to display to the - user or use in automatically deciding what to do with the out-of-band - message. - example: present-vp - goal: - type: string - description: A self-attested string that the receiver may want to display - to the user about the context-specific goal of the out-of-band message. - example: To verify a Peter College Graduate credential - myDid: - type: string - description: The DID representing me as the inviter or invitee in this specific - connection. - example: did:peer:12345 - invitation: - $ref: '#/components/schemas/OOBPresentationInvitation' - metaRetries: - type: integer - description: The maximum background processing attempts remaining for this - record - format: int32 - example: 5 - metaLastFailure: - $ref: '#/components/schemas/ErrorResponse' - PresentationStatusPage: - required: - - self - - kind - - pageOf - type: object - properties: - contents: - type: array - items: - $ref: '#/components/schemas/PresentationStatus' - description: A sequence of Presentation objects. - example: - - presentationId: 938bfc23-f78d-4734-9bf3-6dccf300856f - thid: 04112f4d-e894-4bff-a706-85b3e7190a2c - role: Verifier - status: RequestSent - proofs: [] - data: [] - requestData: [] - connectionId: e0d81be9-47ca-4e0b-b8a7-325e8c3abc2f - metaRetries: 5 - - presentationId: d22158b0-c650-48ea-be85-2920a845ef26 - thid: 04112f4d-e894-4bff-a706-85b3e7190a2c - role: Prover - status: RequestReceived - proofs: [] - data: [] - requestData: [] - metaRetries: 5 - - presentationId: fd3f5e54-fae9-4f72-9413-ec66aab83a57 - thid: 6b42fd91-4c98-40ae-a371-a1fd1a39e05e - role: Prover - status: PresentationPending - proofs: [] - data: [] - requestData: [] - metaRetries: 5 - - presentationId: e56dd3e0-79d0-45f4-ba6c-ff857211b07b - thid: 6b42fd91-4c98-40ae-a371-a1fd1a39e05e - role: Verifier - status: PresentationVerified - proofs: [] - data: - - '{"claimsToDisclose":{"emailAddress":{},"givenName":{}},"presentation":"{\"protected\":\"eyJhbGciOiJFZERTQSJ9\",\"payload\":\"eyJfc2QiOlsiMGl4d0tIV0dzbzFvZThFR0hQd2tGYW9EZE1TRFQ3SmgyNkZGSm1ZbGRnRSIsIjQ4VlFXZS1tcjBibHMyOWpicHFKeDNxX2dYY0k5N3dHcEpsZnRoNXQwMGciLCI0Wk9xanFNZVNUVHRKQTNJRExsc3ZXN0dTNzRIemNxY3N2NVFoZk1valE4IiwiUjhGRE0ydXB1V09mNmVJMVA5ckNPdG12c3puVWFFYXpncVNuN0JfeTE0MCIsIlU5MmpfUHlpcHN2TERNQTlDaVRWbnl3bUFzYTM4S2lDWm5TeVhyUE5mNG8iLCJldFB1Mmc5ajdRd01rZ3g5VnpEX1RnNTNUV3UydVpadk1KeHRnNEJ1WGJBIiwidGV3RG1LWklNcS10bUNrMkpqZU0wajNYbU1aUUFLN01heENVNlF4dm9OMCJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6ImRpZDpwcmlzbToxMmEzOWI1YWEwZTcxODI3ZmMxYzYwMjg1ZDVlZWJjMTk0Yjg2NzFhYTJmY2QxZDM2NDBkMGYwMTBlMzliZmVlIiwiaWF0IjoxNzE3NDEwMzgzLCJleHAiOjE3MjAwMDIzODN9\",\"signature\":\"953FfSRU_0Y2q0ERrFPzbXJ_hkF0YQe5efwESaZwtXDCn8aanD3MUstp3lzqGZkhvcWRdtCCpIxzhy0zgKwLBg\",\"disclosures\":[\"WyI0SHF6MDZCeG5fRlJMb2hWX2lWNXp3IiwgImdpdmVuTmFtZSIsICJBbGljZSJd\",\"WyJLUnNYYU01c3NXZTl4UEhqQnNjT213IiwgImVtYWlsQWRkcmVzcyIsICJhbGljZUB3b25kZXJsYW5kLmNvbSJd\"],\"kb_jwt\":null}"}' - requestData: [] - connectionId: e0d81be9-47ca-4e0b-b8a7-325e8c3abc2f - metaRetries: 5 - - presentationId: 938bfc23-f78d-4734-9bf3-6dccf300856f - thid: 04112f4d-e894-4bff-a706-85b3e7190a2c - role: Verifier - status: InvitationGenerated - proofs: [] - data: [] - requestData: [] - myDid: did:peer:veriferPeerDID1234567890 - invitation: - id: 04112f4d-e894-4bff-a706-85b3e7190a2c - type: didcomm/aip2;rfc0048/invitation - from: did:peer:veriferPeerDID1234567890 - invitationUrl: http://localhost:8000/present-proof/invitation?_oob=eyJpZCI6ImU2M2JkNzQ1LWZjYzYtNGQ0My05NjgzLTY4MjUyOTNlYTgxNiIsInR5cGUiOiJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzIuMC9pbnZpdGF0aW9uIiwiZnJvbSI6ImRpZDpwZWVyOjIuRXo2TFNoOWFSQmRFQlV6WkFRSzN5VnFBRnRYS0pVMVZ1cUZlMVd1U1ZRcnRvRGROZi5WejZNa3NCWmZkc3U4UmFxWjNmdjlBdkJ0elVGd1VyaW5td0xRODFNVjVoc29td2JZLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQTZMeTh4T1RJdU1UWTRMakV1TVRrNU9qZ3dOekF2Wkdsa1kyOXRiU0lzSW5JaU9sdGRMQ0poSWpwYkltUnBaR052YlcwdmRqSWlYWDE5IiwiYm9keSI6eyJnb2FsX2NvZGUiOiJwcmVzZW50LXZwIiwiZ29hbCI6IlJlcXVlc3QgcHJvb2Ygb2YgdmFjY2luYXRpb24gaW5mb3JtYXRpb24iLCJhY2NlcHQiOltdfSwiYXR0YWNobWVudHMiOlt7ImlkIjoiZTE5ZjNkNmMtY2U2Ni00Y2EwLWI1ZWUtZDBiY2ZhOGI1MTc3IiwibWVkaWFfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJkYXRhIjp7Impzb24iOnsiaWQiOiIxYjMwYzRjZi05MmVjLTQwOTMtYWFlOC1hZDk3NmIzODljY2MiLCJ0eXBlIjoiaHR0cHM6Ly9kaWRjb21tLmF0YWxhcHJpc20uaW8vcHJlc2VudC1wcm9vZi8zLjAvcmVxdWVzdC1wcmVzZW50YXRpb24iLCJib2R5Ijp7ImdvYWxfY29kZSI6IlJlcXVlc3QgUHJvb2YgUHJlc2VudGF0aW9uIiwid2lsbF9jb25maXJtIjpmYWxzZSwicHJvb2ZfdHlwZXMiOltdfSwiYXR0YWNobWVudHMiOlt7ImlkIjoiNDBiZjcyNzUtMDNkNS00MjI1LWFlYjAtMzhhZDYyODhhMThkIiwibWVkaWFfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJkYXRhIjp7Impzb24iOnsib3B0aW9ucyI6eyJjaGFsbGVuZ2UiOiIxMWM5MTQ5My0wMWIzLTRjNGQtYWMzNi1iMzM2YmFiNWJkZGYiLCJkb21haW4iOiJodHRwczovL3ByaXNtLXZlcmlmaWVyLmNvbSJ9LCJwcmVzZW50YXRpb25fZGVmaW5pdGlvbiI6eyJpZCI6IjkyODkyMjJmLWY3ZmItNDk4Yi1iMmE0LTNlODdiNzdiMzk5ZiIsImlucHV0X2Rlc2NyaXB0b3JzIjpbXX19fSwiZm9ybWF0IjoicHJpc20vand0In1dLCJ0aGlkIjoiZTYzYmQ3NDUtZmNjNi00ZDQzLTk2ODMtNjgyNTI5M2VhODE2IiwiZnJvbSI6ImRpZDpwZWVyOjIuRXo2TFNoOWFSQmRFQlV6WkFRSzN5VnFBRnRYS0pVMVZ1cUZlMVd1U1ZRcnRvRGROZi5WejZNa3NCWmZkc3U4UmFxWjNmdjlBdkJ0elVGd1VyaW5td0xRODFNVjVoc29td2JZLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQTZMeTh4T1RJdU1UWTRMakV1TVRrNU9qZ3dOekF2Wkdsa1kyOXRiU0lzSW5JaU9sdGRMQ0poSWpwYkltUnBaR052YlcwdmRqSWlYWDE5In19fV19 - metaRetries: 5 - self: - type: string - description: The reference to the presentation collection itself. - example: /present-proof/presentations - kind: - type: string - description: The type of object returned. In this case a `Collection`. - example: Collection - pageOf: - type: string - description: Page number within the context of paginated response. - example: 1 - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /present-proof/presentations?offset=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /present-proof/presentations?offset=0&limit=10 - Proof: - required: - - type - - created - - verificationMethod - - proofPurpose - - proofValue - - jws - type: object - properties: - type: - type: string - description: The type of cryptographic signature algorithm used to generate - the proof. - example: Ed25519Signature2018 - created: - type: string - description: The date and time at which the proof was created, in UTC format. - This field is used to ensure that the proof was generated before or at - the same time as the credential definition itself. - format: date-time - example: 2022-03-10T12:00Z - verificationMethod: - type: string - description: The verification method used to generate the proof. This is - usually a DID and key ID combination that can be used to look up the public - key needed to verify the proof. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1 - proofPurpose: - type: string - description: 'The purpose of the proof (for example: `assertionMethod`). - This indicates that the proof is being used to assert that the issuer - really issued this credential definition instance.' - example: assertionMethod - proofValue: - type: string - description: The cryptographic signature value that was generated using - the private key associated with the verification method, and which can - be used to verify the proof. - example: FiPfjknHikKmZ... - jws: - type: string - description: The JSON Web Signature (JWS) that contains the proof information. - example: eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik... - domain: - type: string - description: It specifies the domain context within which the credential - definition and proof are being used - example: prims.atala.com - description: A digital signature over the Credential Definition for the sake - of asserting authorship. A piece of Metadata. - example: - type: Ed25519Signature2018 - created: '2022-03-10T12:00:00Z' - verificationMethod: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1 - proofPurpose: assertionMethod - proofValue: FiPfjknHikKmZ... - jws: eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik... - domain: prims.atala.com - Proof1: - required: - - type - - created - - verificationMethod - - proofPurpose - - proofValue - - jws - type: object - properties: - type: - type: string - description: The type of cryptographic signature algorithm used to generate - the proof. - example: Ed25519Signature2018 - created: - type: string - description: The date and time at which the proof was created, in UTC format. - This field is used to ensure that the proof was generated before or at - the same time as the credential schema itself. - format: date-time - example: 2022-03-10T12:00Z - verificationMethod: - type: string - description: The verification method used to generate the proof. This is - usually a DID and key ID combination that can be used to look up the public - key needed to verify the proof. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1 - proofPurpose: - type: string - description: 'The purpose of the proof (for example: `assertionMethod`). - This indicates that the proof is being used to assert that the issuer - really issued this credential schema instance.' - example: assertionMethod - proofValue: - type: string - description: The cryptographic signature value that was generated using - the private key associated with the verification method, and which can - be used to verify the proof. - example: FiPfjknHikKmZ... - jws: - type: string - description: The JSON Web Signature (JWS) that contains the proof information. - example: eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik... - domain: - type: string - description: It specifies the domain context within which the credential - schema and proof are being used - example: prims.atala.com - description: A digital signature over the Credential Schema for the sake of - asserting authorship. A piece of Metadata. - example: - type: Ed25519Signature2018 - created: '2022-03-10T12:00:00Z' - verificationMethod: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1 - proofPurpose: assertionMethod - proofValue: FiPfjknHikKmZ... - jws: eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik... - domain: prims.atala.com - Proof2: - oneOf: - - $ref: '#/components/schemas/CwtProof' - - $ref: '#/components/schemas/JwtProof' - - $ref: '#/components/schemas/LdpProof' - discriminator: - propertyName: proof_type - mapping: - cwt: '#/components/schemas/CwtProof' - jwt: '#/components/schemas/JwtProof' - ldp_vp: '#/components/schemas/LdpProof' - ProofRequestAux: - required: - - schemaId - type: object - properties: - schemaId: - type: string - description: The unique identifier of a schema the VC should comply with. - example: https://schema.org/Person - trustIssuers: - type: array - items: - type: string - description: One or more issuers that are trusted by the verifier emitting - the proof presentation request. - example: - - did:web:atalaprism.io/users/testUser - - did.prism:123 - - did:prism:... - ProofType: - type: string - enum: - - cwt - - jwt - - ldp_vp - ProofTypeConfiguration: - type: object - properties: - proof_signing_alg_values_supported: - type: array - items: - type: string - PublicKeyJwk: - required: - - kty - type: object - properties: - crv: - type: string - x: - type: string - y: - type: string - kty: - type: string - Purpose: - type: string - description: Purpose of the verification material in the DID Document - example: authentication - enum: - - assertionMethod - - authentication - - capabilityDelegation - - capabilityInvocation - - keyAgreement - RemoveEntryById: - required: - - id - type: object - properties: - id: - type: string - RequestPresentationAction: - required: - - action - type: object - properties: - action: - type: string - description: The action to perform on the proof presentation record. - example: request-accept - enum: - - request-accept - - request-reject - - presentation-accept - - presentation-reject - proofId: - type: array - items: - type: string - description: The unique identifier of the issue credential record - and - hence VC - to use as the prover accepts the presentation request. Only - applicable on the prover side when the action is `request-accept`. - anoncredPresentationRequest: - $ref: '#/components/schemas/AnoncredCredentialProofsV1' - claims: - $ref: '#/components/schemas/Obj' - credentialFormat: - type: string - description: The credential format (default to 'JWT') - example: JWT - RequestPresentationInput: - type: object - properties: - goalCode: - type: string - description: |2 - - A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. - goalcode is optional and can be provided when the presentation request is from invitation for connectionless verification. - example: present-vp - goal: - type: string - description: |2 - - A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. - goal is optional and can be provided when the presentation request is from invitation for connectionless verification. - example: Request proof of vaccine - connectionId: - type: string - description: |2 - - The unique identifier of a DIDComm connection that already exists between the this verifier agent and the prover cloud or edeg agent. - It should be the identifier of a connection that exists in the verifier agent's database. - This connection will be used to execute the present proof protocol. - Note: connectionId is only required when the presentation request is from existing connection. - connectionId is not required when the presentation request is from invitation for connectionless issuance. - format: uuid - example: d9569cec-c81e-4779-aa86-0d5994d82676 - options: - $ref: '#/components/schemas/Options' - proofs: - type: array - items: - $ref: '#/components/schemas/ProofRequestAux' - description: The type of proofs requested in the context of this proof presentation - request (e.g., VC schema, trusted issuers, etc.) - example: [] - anoncredPresentationRequest: - $ref: '#/components/schemas/AnoncredPresentationRequestV1' - claims: - $ref: '#/components/schemas/Obj' - credentialFormat: - type: string - description: The credential format (default to 'JWT') - example: JWT - Revocation: - type: object - Service: - required: - - id - - type - - serviceEndpoint - type: object - properties: - id: - type: string - description: |- - The id of the service. - Requires a URI fragment when use in create / update DID. - Returns the full ID (with DID prefix) when resolving DID - example: service-1 - type: - description: Service type. Can contain multiple possible values as described - in the [Create DID operation](https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md#create-did) - under the construction section. - example: LinkedDomains - oneOf: - - type: array - items: - type: string - - type: string - serviceEndpoint: - $ref: '#/components/schemas/Json' - description: A service that should appear in the DID document. https://www.w3.org/TR/did-core/#services - StatusListCredential: - required: - - issuer - - id - - issuanceDate - - credentialSubject - - proof - type: object - properties: - '@context': - type: array - items: - type: string - description: List of JSON-LD contexts - example: - - https://www.w3.org/2018/credentials/v1 - - https://w3id.org/vc/status-list/2021/v1 - type: - type: array - items: - type: string - description: List of credential types - example: - - VerifiableCredential - - StatusList2021Credential - issuer: - description: DID of the issuer of status list credential - example: did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a - oneOf: - - $ref: '#/components/schemas/CredentialIssuer' - - type: string - id: - type: string - description: Unique identifier of status list credential - example: http://issuer-agent.com/credential-status/060a2bec-6d6f-4c1f-9414-d3c9dbd3ccc9 - issuanceDate: - type: string - description: Issuance timestamp of status list credential - format: date-time - example: '2024-09-11T13:22:27.866328096Z' - credentialSubject: - $ref: '#/components/schemas/CredentialSubject' - proof: - description: Embedded proof to verify data integrity of status list credential, - includes "type" property which defines an algorithm to be used for proof - verification - example: - type: DataIntegrityProof - proofPurpose: assertionMethod - verificationMethod: data:application/json;base64,eyJAY29udGV4dCI6WyJodHRwczovL3czaWQub3JnL3NlY3VyaXR5L211bHRpa2V5L3YxIl0sInR5cGUiOiJNdWx0aWtleSIsInB1YmxpY0tleU11bHRpYmFzZSI6InVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVRUENjM1M0X0xHVXRIM25DRjZ2dUw3ekdEMS13UmVrMHRHbnB0UnZUakhIMUdvTnk1UFBIZ0FmNTZlSzNOd3B0LWNGcmhrT2pRQk1rcFRKOHNaS1pCZz09In0= - created: '2024-01-22T22:40:34.560891Z' - proofValue: zAN1rKq8npnByRqPRxhjHEkivhN8AhA8V6MqDJga1zcCUEvPDUoqJB5Rj6ZJHTCnBZ98VXTEVd1rprX2wvP1MAaTEi7Pm241qm - cryptoSuite: eddsa-jcs-2022 - StatusPurpose: - description: type of status list credential, either revocation or suspension - example: Revocation - oneOf: - - $ref: '#/components/schemas/Revocation' - - $ref: '#/components/schemas/Suspension' - Str: - required: - - value - type: object - properties: - value: - type: string - SupportProofType: - required: - - jwt - type: object - properties: - jwt: - $ref: '#/components/schemas/ProofTypeConfiguration' - SupportedCredentialConfiguration: - required: - - format - - scope - - credential_definition - - proof_types_supported - type: object - properties: - format: - $ref: '#/components/schemas/CredentialFormat' - scope: - type: string - credential_definition: - $ref: '#/components/schemas/CredentialDefinition' - cryptographic_binding_methods_supported: - type: array - items: - type: string - credential_signing_alg_values_supported: - type: array - items: - type: string - proof_types_supported: - $ref: '#/components/schemas/SupportProofType' - Suspension: - type: object - UpdateEntityNameRequest: - required: - - name - type: object - properties: - name: - type: string - description: New name of the entity - example: John Doe - minLength: 1 - maxLength: 128 - UpdateEntityWalletIdRequest: - required: - - walletId - type: object - properties: - walletId: - type: string - description: The walletId owned by the entity - format: uuid - example: 00000000-0000-0000-0000-000000000000 - UpdateManagedDIDRequest: - type: object - properties: - actions: - type: array - items: - $ref: '#/components/schemas/UpdateManagedDIDRequestAction' - UpdateManagedDIDRequestAction: - required: - - actionType - type: object - properties: - actionType: - $ref: '#/components/schemas/ActionType' - addKey: - $ref: '#/components/schemas/ManagedDIDKeyTemplate' - removeKey: - $ref: '#/components/schemas/RemoveEntryById' - addService: - $ref: '#/components/schemas/Service' - removeService: - $ref: '#/components/schemas/RemoveEntryById' - updateService: - $ref: '#/components/schemas/UpdateManagedDIDServiceAction' - patchContext: - $ref: '#/components/schemas/PatchContextAction' - description: |- - A list of actions to perform on DID document. - The field `addKey`, `removeKey`, `addService`, `removeService`, `updateService`, `patchContext` must corresponds to - the `actionType` specified. For example, `addKey` must be present when `actionType` is `ADD_KEY`. - UpdateManagedDIDServiceAction: - required: - - id - type: object - properties: - id: - type: string - description: The id of the service to update - example: service-1 - type: - description: The type of the service - example: LinkedDomains - oneOf: - - type: array - items: - type: string - - type: string - serviceEndpoint: - $ref: '#/components/schemas/Json' - description: A patch to existing Service. 'type' and 'serviceEndpoint' cannot - both be empty. - VcVerification: - type: string - description: The type of verification to perform. - enum: - - AlgorithmVerification - - AudienceCheck - - ComplianceWithStandards - - ExpirationCheck - - IntegrityOfClaims - - IssuerIdentification - - NotBeforeCheck - - RevocationCheck - - SchemaCheck - - SemanticCheckOfClaims - - SignatureVerification - - SubjectVerification - VcVerificationParameter: - description: Optional parameter for the verification. - oneOf: - - $ref: '#/components/schemas/DateTimeParameter' - - $ref: '#/components/schemas/DidParameter' - discriminator: - propertyName: parameterType - mapping: - DateTimeParameter: '#/components/schemas/DateTimeParameter' - DidParameter: '#/components/schemas/DidParameter' - VcVerificationRequest: - required: - - credential - type: object - properties: - credential: - type: string - description: Encoded Verifiable Credential to verify - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c - verifications: - type: array - items: - $ref: '#/components/schemas/ParameterizableVcVerification' - description: The list of verifications to perform on the credential. If - the list is empty, all available verifications will be performed. - example: - - verification: SignatureVerification - - verification: IssuerIdentification - parameter: - did: did:prism:issuer - - verification: ExpirationCheck - parameter: - dateTime: '2022-03-10T12:00:00Z' - - verification: NotBeforeCheck - parameter: - dateTime: '2022-03-10T12:00:00Z' - - verification: AudienceCheck - parameter: - did: did:prism:holder - - verification: SubjectVerification - - verification: IntegrityOfClaims - - verification: ComplianceWithStandards - - verification: RevocationCheck - - verification: AlgorithmVerification - - verification: SchemaCheck - - verification: SemanticCheckOfClaims - VcVerificationResponse: - required: - - credential - type: object - properties: - credential: - type: string - description: Encoded Verifiable Credential that was verified. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c - result: - type: array - items: - $ref: '#/components/schemas/VcVerificationResult' - description: The list of verification results for each verification performed - on the credential. - example: - - verification: SignatureVerification - success: true - - verification: IssuerIdentification - success: true - - verification: ExpirationCheck - success: true - - verification: NotBeforeCheck - success: true - - verification: AudienceCheck - success: true - - verification: SubjectVerification - success: true - - verification: IntegrityOfClaims - success: true - - verification: ComplianceWithStandards - success: true - - verification: RevocationCheck - success: true - - verification: AlgorithmVerification - success: true - - verification: SchemaCheck - success: true - - verification: SemanticCheckOfClaims - success: true - VcVerificationResult: - required: - - verification - - success - type: object - properties: - verification: - $ref: '#/components/schemas/VcVerification' - success: - type: boolean - description: Indicates whether the verification was successful. - VerificationMethod: - required: - - id - - type - - controller - - publicKeyJwk - type: object - properties: - id: - type: string - description: The identifier for the verification method. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1 - type: - type: string - description: The type of the verification method. - example: JsonWebKey2020 - controller: - type: string - description: The DID that controls the verification method. - example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff - publicKeyJwk: - $ref: '#/components/schemas/PublicKeyJwk' - description: A cryptographic public key expressed in the DID document. https://www.w3.org/TR/did-core/#verification-methods - VerificationPolicyConstraint: - required: - - schemaId - type: object - properties: - schemaId: - type: string - description: The schema ID of the credential that is being verified. - example: https://example.com/driving-license-1.0 - minLength: 1 - trustedIssuers: - type: array - items: - type: string - description: A list of DIDs of the trusted issuers. - example: - - did:example:123456789abcdefghi - VerificationPolicyInput: - required: - - name - - description - type: object - properties: - id: - type: string - description: A unique identifier to address the verification policy instance. - UUID is generated by the backend. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b5 - name: - type: string - description: A human-readable name for the verification policy. The `name` - cannot be empty. - example: Trusted Issuers Verification Policy - minLength: 1 - description: - type: string - description: A human-readable description of the verification policy. - example: Verification policy that checks if the credential was issued by - a trusted issuer. - constraints: - type: array - items: - $ref: '#/components/schemas/VerificationPolicyConstraint' - description: The object that describes the constraints of the verification - policy. Each constraint is a tuple of the `schemaId` and a set of DIDs - of the trusted issuers. - example: - - schemaId: https://example.com/driving-license-1.0 - trustedIssuers: - - did:example:123456789abcdefghi - VerificationPolicyResponse: - required: - - self - - kind - - id - - nonce - - name - - description - - createdAt - - updatedAt - type: object - properties: - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/verification/policies/0527aea1-d131-3948-a34d-03af39aba8b4 - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: VerificationPolicy - id: - type: string - description: A unique identifier to address the verification policy instance. - UUID is generated by the backend. - format: uuid - example: 0527aea1-d131-3948-a34d-03af39aba8b5 - nonce: - type: integer - description: A number that is changed every time the verification policy - is updated. - format: int32 - example: 1234 - name: - type: string - description: A human-readable name for the verification policy. The `name` - cannot be empty. - example: Trusted Issuers Verification Policy - minLength: 1 - description: - type: string - description: A human-readable description of the verification policy. - example: Verification policy that checks if the credential was issued by - a trusted issuer. - createdAt: - type: string - description: '[RFC3339](https://www.rfc-editor.org/rfc/rfc3339) date on - which the verification policy was created.' - format: date-time - example: 2022-03-10T12:00Z - updatedAt: - type: string - description: '[RFC3339](https://www.rfc-editor.org/rfc/rfc3339) date on - which the verification policy was updated.' - format: date-time - example: 2022-03-10T12:00Z - constraints: - type: array - items: - $ref: '#/components/schemas/VerificationPolicyConstraint' - description: The object that describes the constraints of the verification - policy. Each constraint is a tuple of the `schemaId` and a set of DIDs - of the trusted issuers. - example: - - schemaId: https://example.com/driving-license-1.0 - trustedIssuers: - - did:example:123456789abcdefghi - VerificationPolicyResponsePage: - required: - - self - - kind - - pageOf - type: object - properties: - self: - type: string - description: The URL that uniquely identifies the resource being returned - in the response. - example: /cloud-agent/verification/policies?name=Trusted&offset=0&limit=10 - kind: - type: string - description: A string that identifies the type of resource being returned - in the response. - example: VerificationPolicyPage - pageOf: - type: string - description: A string field indicating the type of resource that the contents - field contains - example: /cloud-agent/verification/policies - next: - type: string - description: An optional string field containing the URL of the next page - of results. If the API response does not contain any more pages, this - field should be set to None. - example: /cloud-agent/verification/policies?skip=20&limit=10 - previous: - type: string - description: An optional string field containing the URL of the previous - page of results. If the API response is the first page of results, this - field should be set to None. - example: /cloud-agent/verification/policies?skip=0&limit=10 - contents: - type: array - items: - $ref: '#/components/schemas/VerificationPolicyResponse' - description: A sequence of VerificationPolicyResponse objects representing - the list of verification policies that the paginated response contains - example: - - self: /cloud-agent/verification/policies - kind: VerificationPolicy - id: 0527aea1-d131-3948-a34d-03af39aba8b4 - nonce: 0 - name: Trusted Issuers Verification Policy - description: Verification policy that checks if the credential was issued - by a trusted issuer. - createdAt: '2022-03-10T12:00:00Z' - updatedAt: '2022-03-10T12:00:00Z' - constraints: - - schemaId: https://example.com/driving-license-1.0 - trustedIssuers: - - did:example:123456789abcdefghi - WalletDetail: - required: - - id - - name - - createdAt - - updatedAt - type: object - properties: - id: - type: string - description: A wallet ID - format: uuid - example: 00000000-0000-0000-0000-000000000000 - name: - type: string - description: The name of the wallet - example: my-wallet-1 - createdAt: - type: string - description: The `createdAt` timestamp of the wallet. - format: date-time - example: '2023-01-01T00:00:00Z' - updatedAt: - type: string - description: The `updateddAt` timestamp of the wallet. - format: date-time - example: '2023-01-01T00:00:00Z' - WalletDetailPage: - required: - - self - - kind - - pageOf - type: object - properties: - self: - type: string - kind: - type: string - pageOf: - type: string - next: - type: string - previous: - type: string - contents: - type: array - items: - $ref: '#/components/schemas/WalletDetail' - WebhookNotification: - required: - - id - - url - - customHeaders - - createdAt - type: object - properties: - id: - type: string - description: ID of webhook notification resource - format: uuid - example: 00000000-0000-0000-0000-000000000000 - url: - type: string - description: A URL of webhook for event notification - example: http://example.com - customHeaders: - $ref: '#/components/schemas/Map_String' - createdAt: - type: string - description: A time which the webhook notification resource was created. - format: date-time - example: '1970-01-01T00:00:00Z' - WebhookNotificationPage: - required: - - self - - kind - - pageOf - type: object - properties: - self: - type: string - kind: - type: string - pageOf: - type: string - next: - type: string - previous: - type: string - contents: - type: array - items: - $ref: '#/components/schemas/WebhookNotification' - securitySchemes: - apiKeyAuth: - type: apiKey - description: API Key Authentication. The header `apikey` must be set with the - API key. - name: apikey - in: header - adminApiKeyAuth: - type: apiKey - description: Admin API Key Authentication. The header `x-admin-api-key` must - be set with the Admin API key. - name: x-admin-api-key - in: header - jwtAuth: - type: http - description: JWT Authentication. The header `Authorization` must be set with - the JWT token using `Bearer` scheme - name: Authorization - in: header - scheme: Bearer -security: -- apiKeyAuth: [] - adminApiKeyAuth: [] - jwtAuth: [] diff --git a/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/credentialstatus/controller/http/StatusListCredential.scala b/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/credentialstatus/controller/http/StatusListCredential.scala index 8d59f50530..542e1a43ae 100644 --- a/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/credentialstatus/controller/http/StatusListCredential.scala +++ b/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/credentialstatus/controller/http/StatusListCredential.scala @@ -136,11 +136,9 @@ object StatusListCredential { |""".stripMargin given StatusPurposeCodec: JsonCodec[StatusPurpose] = JsonCodec[StatusPurpose]( - JsonEncoder[String].contramap[StatusPurpose](_.str), - JsonDecoder[String].mapOrFail { - case StatusPurpose.Revocation.str => Right(StatusPurpose.Revocation) - case StatusPurpose.Suspension.str => Right(StatusPurpose.Suspension) - case str => Left(s"no enum value matched for \"$str\"") + JsonEncoder[String].contramap[StatusPurpose](_.toString), + JsonDecoder[String].mapOrFail { input => + StatusPurpose.values.find(_.toString.compareToIgnoreCase(input) == 0).toRight("Unknown StatusPurpose") }, ) @@ -176,7 +174,7 @@ object StatusListCredential { given credentialSubjectSchema: Schema[CredentialSubject] = Schema.derived - given statusPurposeSchema: Schema[StatusPurpose] = Schema.derived + given statusPurposeSchema: Schema[StatusPurpose] = Schema.derivedEnumeration.defaultStringBased given credentialIssuerSchema: Schema[CredentialIssuer] = Schema.derived diff --git a/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/pollux/credentialschema/http/CredentialSchemaResponse.scala b/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/pollux/credentialschema/http/CredentialSchemaResponse.scala index cc7d555de3..7cd0b01ed3 100644 --- a/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/pollux/credentialschema/http/CredentialSchemaResponse.scala +++ b/cloud-agent/service/server/src/main/scala/org/hyperledger/identus/pollux/credentialschema/http/CredentialSchemaResponse.scala @@ -2,14 +2,14 @@ package org.hyperledger.identus.pollux.credentialschema.http import org.hyperledger.identus.api.http.* import org.hyperledger.identus.pollux.core.model +import org.hyperledger.identus.pollux.core.model.schema.CredentialSchema import org.hyperledger.identus.pollux.core.model.ResourceResolutionMethod import org.hyperledger.identus.pollux.core.model.ResourceResolutionMethod.* -import org.hyperledger.identus.pollux.core.model.schema.CredentialSchema import org.hyperledger.identus.pollux.credentialschema.http.CredentialSchemaResponse.annotations import sttp.model.Uri +import sttp.tapir.json.zio.schemaForZioJsonValue import sttp.tapir.Schema import sttp.tapir.Schema.annotations.{default, description, encodedExample, encodedName} -import sttp.tapir.json.zio.schemaForZioJsonValue import zio.json.* import zio.json.ast.Json diff --git a/pollux/sql-doobie/src/main/scala/org/hyperledger/identus/pollux/sql/repository/Implicits.scala b/pollux/sql-doobie/src/main/scala/org/hyperledger/identus/pollux/sql/repository/Implicits.scala index db884407a3..b61a711bf2 100644 --- a/pollux/sql-doobie/src/main/scala/org/hyperledger/identus/pollux/sql/repository/Implicits.scala +++ b/pollux/sql-doobie/src/main/scala/org/hyperledger/identus/pollux/sql/repository/Implicits.scala @@ -20,10 +20,7 @@ given statusPurposeGet: Get[StatusPurpose] = Get[String].map { case purpose => throw RuntimeException(s"Invalid status purpose - $purpose") } -given statusPurposePut: Put[StatusPurpose] = Put[String].contramap { - case StatusPurpose.Revocation => StatusPurpose.Revocation.str - case StatusPurpose.Suspension => StatusPurpose.Suspension.str -} +given statusPurposePut: Put[StatusPurpose] = Put[String].contramap(_.toString) given urlGet: Get[URL] = Get[String].map(s => URI.create(s).toURL()) given urlPut: Put[URL] = Put[String].contramap(_.toString()) diff --git a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiableCredentialPayload.scala b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiableCredentialPayload.scala index cb7d84dd0b..8b1f6049be 100644 --- a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiableCredentialPayload.scala +++ b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiableCredentialPayload.scala @@ -30,9 +30,9 @@ case class W3cVerifiableCredentialPayload(payload: W3cCredentialPayload, proof: case class JwtVerifiableCredentialPayload(jwt: JWT) extends VerifiableCredentialPayload -enum StatusPurpose(val str: String) { - case Revocation extends StatusPurpose("Revocation") - case Suspension extends StatusPurpose("Suspension") +enum StatusPurpose { + case Revocation + case Suspension } case class CredentialStatus( diff --git a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/revocation/VCStatusList2021.scala b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/revocation/VCStatusList2021.scala index 8629b9cc1d..f6232f2ec7 100644 --- a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/revocation/VCStatusList2021.scala +++ b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/revocation/VCStatusList2021.scala @@ -52,7 +52,7 @@ object VCStatusList2021 { } yield { val claims = JsonObject() .add("type", "StatusList2021".asJson) - .add("statusPurpose", purpose.str.asJson) + .add("statusPurpose", purpose.toString.asJson) .add("encodedList", encodedBitString.asJson) val w3Credential = W3cCredentialPayload( `@context` = Set(