From 3535ef4c89b64bd51a2e1da50bedd9147ab2b498 Mon Sep 17 00:00:00 2001 From: Vu Van Duc Date: Thu, 4 Sep 2025 16:10:32 +0700 Subject: [PATCH] chore: gen class --- build.gradle | 39 + spec.yaml | 4392 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4431 insertions(+) create mode 100644 spec.yaml diff --git a/build.gradle b/build.gradle index 45db296..55c69f2 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ plugins { id 'io.qameta.allure' version '2.11.2' id 'org.ajoberstar.grgit' version '5.2.0' id 'org.jreleaser' version '1.19.0' + id("org.openapi.generator") version "7.14.0" } repositories { @@ -56,6 +57,10 @@ dependencies { implementation "org.bouncycastle:bcprov-jdk18on:${bouncycastleVersion}" implementation "org.json:json:${jsonVersion}" implementation "org.greenbytes.http:structured-fields:${structuredFieldsVersion}" + // OpenAI generate model dependencies + implementation "com.squareup.okhttp3:okhttp:4.12.0" + implementation "com.google.code.gson:gson:2.11.0" + implementation "jakarta.annotation:jakarta.annotation-api:2.1.1" testImplementation platform("org.junit:junit-bom:${junitVersion}") testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}" @@ -187,3 +192,37 @@ tasks.register('allureE2ETestReport') { tasks.named('allureReport') { enabled = false } + +tasks.openApiGenerate { + generatorName.set("java") + inputSpec.set("$rootDir/spec.yaml") + outputDir.set("$buildDir/generated".toString()) + modelPackage.set("org.cardanofoundation.signify.generated.keria.model") + invokerPackage.set("org.cardanofoundation.signify.generated.keria.model") +// globalProperties.set([ +// models: "" +// ]) + configOptions = [ + library : "resttemplate", + useGson : "true", + useJakartaEe : "true" + ] +} + +sourceSets { + main { + java { + srcDir "$buildDir/generated/src/main/java" + } + } +} + +//tasks.register('copyGeneratedModels', Copy) { +// dependsOn tasks.openApiGenerate +// from("$buildDir/generated/src/main/java/org/cardanofoundation/signify/generated/keria/model") +// into("src/main/java/org/cardanofoundation/signify/generated/keria/model") +//} +// +//tasks.named("openApiGenerate") { +// finalizedBy(copyGeneratedModels) +//} diff --git a/spec.yaml b/spec.yaml new file mode 100644 index 0000000..3286af6 --- /dev/null +++ b/spec.yaml @@ -0,0 +1,4392 @@ +paths: + /operations: + get: + summary: Get list of long running operations + parameters: + - in: query + name: type + schema: + type: string + required: false + description: filter list of long running operations by type + responses: + '200': + description: list of long running operations + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Operation' + /oobis: + post: + summary: Resolve OOBI and assign an alias for the remote identifier + description: Resolve OOBI URL or `rpy` message by process results of request + and assign 'alias' in contact data for resolved identifier + tags: + - OOBIs + requestBody: + required: true + content: + application/json: + schema: + description: OOBI + oneOf: + - type: object + properties: + oobialias: + type: string + description: alias to assign to the identifier resolved from this + OOBI + url: + type: string + description: URL OOBI + rpy: + type: object + description: unsigned KERI `rpy` event message with endpoints + responses: + '202': + description: OOBI resolution to key state successful + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + /states: + get: + summary: Display key event log (KEL) for given identifier prefix + description: If provided qb64 identifier prefix is in Kevers, return the current + state of the identifier along with the KEL and all associated signatures and + receipts + tags: + - Key Event Log + parameters: + - in: path + name: pre + description: qb64 identifier prefix of KEL to load + schema: + type: string + required: true + responses: + '200': + description: Key event log and key state of identifier + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/KeyStateRecord' + '400': + description: Bad request, missing required fields + '404': + description: Identifier not found in Key event database + /events: + get: + summary: Display key event log (KEL) for given identifier prefix + description: If provided qb64 identifier prefix is in Kevers, return the current + state of the identifier along with the KEL and all associated signatures and + receipts + tags: + - Key Event Log + parameters: + - in: path + name: pre + schema: + type: string + required: true + description: qb64 identifier prefix of KEL to load + responses: + '200': + description: Key event log and key state of identifier + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/KeyEventRecord' + '404': + description: Identifier not found in Key event database + /queries: + post: + summary: Display key event log (KEL) for given identifier prefix + description: If provided qb64 identifier prefix is in Kevers, return the current + state of the identifier along with the KEL and all associated signatures and + receipts + tags: + - Query + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - pre + properties: + pre: + type: string + description: qb64 identifier prefix of KEL to load + anchor: + type: string + description: Anchor + sn: + type: string + description: Serial number + responses: + '200': + description: Key event log and key state of identifier + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '404': + description: Identifier not found in Key event database + /config: + get: + summary: Retrieve agent configuration + description: Retrieve agent configuration (only necessary fields are exposed) + tags: + - Config + responses: + '200': + description: Subset of configuration dict as JSON + content: + application/json: + schema: + $ref: '#/components/schemas/AgentConfig' + /identifiers: + get: + summary: Retrieve a list of identifiers associated with the agent. + description: This endpoint retrieves a list of identifiers associated with the + agent. It supports pagination through the 'Range' header. + tags: + - Identifier + parameters: + - in: header + name: Range + schema: + type: string + required: false + description: The 'Range' header is used for pagination. The default range + is 0-9. + responses: + '200': + description: Successfully retrieved identifiers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Identifier' + '206': + description: Successfully retrieved identifiers within the specified range. + options: + responses: + '200': + description: Successfully retrieved identifiers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Identifier' + '206': + description: Successfully retrieved identifiers within the specified range. + post: + summary: Create an identifier. + description: This endpoint creates an identifier with the provided inception + event, name, and signatures. + tags: + - Identifier + requestBody: + content: + application/json: + schema: + type: object + properties: + icp: + type: object + description: The inception event for the identifier. + name: + type: string + description: The name of the identifier. + sigs: + type: array + items: + type: string + description: The signatures for the inception event. + group: + type: object + description: Multisig group information. + salty: + type: object + description: Salty parameters. + randy: + type: object + description: Randomly generated materials. + extern: + type: object + description: External parameters. + responses: + '202': + description: Identifier creation is in progress. The response is a long + running operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + /challenges: + get: + summary: Get random list of words for a 2 factor auth challenge + description: Get the list of identifiers associated with this agent + tags: + - Challenge/Response + parameters: + - in: query + name: strength + schema: + type: integer + description: cryptographic strength of word list + required: false + responses: + '200': + description: An array of random words + content: + application/json: + schema: + $ref: '#/components/schemas/Challenge' + /contacts: + get: + summary: Get list of contact information associated with remote identifiers + description: Get list of contact information associated with remote identifiers. All + information is metadata and kept in local storage only + tags: + - Contacts + parameters: + - in: query + name: group + schema: + type: string + required: false + description: field name to group results by + - in: query + name: filter_field + schema: + type: string + description: field name to search + required: false + - in: query + name: filter_value + schema: + type: string + description: value to search for + required: false + responses: + '200': + description: List of contact information for remote identifiers + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Contact' + /schema: + get: + summary: Get schema JSON of all schema + description: Get schema JSON of all schema + operationId: listSchemas + tags: + - Schema + responses: + '200': + description: Array of all schema JSON + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' + /notifications: + get: + summary: Get list of notifications for the controller of the agent + description: Get list of notifications for the controller of the agent. Notifications + will be sorted by creation date/time + parameters: + - in: header + name: Range + schema: + type: string + required: false + description: size of the result list. Defaults to 25 + tags: + - Notifications + responses: + '200': + description: List of contact information for remote identifiers + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Notification' + /operations/{name}: + delete: + summary: Remove a specific long running operation. + description: This endpoint removes a long running operation by its name. + tags: + - Operation + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The name of the long running operation to remove. + responses: + '204': + description: Successfully removed the long running operation. + '404': + description: The requested long running operation was not found. + '500': + description: Internal server error. This could be due to an issue with removing + the operation. + get: + summary: Retrieve a specific long running operation. + description: This endpoint retrieves the status of a long running operation + by its name. + tags: + - Operation + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The name of the long running operation to retrieve. + responses: + '200': + description: Successfully retrieved the status of the long running operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '404': + description: The requested long running operation was not found. + /oobis/{alias}: + get: + summary: Get OOBI for specific identifier + description: Generate OOBI for the identifier of the specified alias and role + tags: + - OOBIs + parameters: + - in: path + name: alias + schema: + type: string + required: true + description: human readable alias for the identifier generate OOBI for + - in: query + name: role + schema: + type: string + required: true + description: role for which to generate OOBI + responses: + '200': + description: An array of Identifier key state information + content: + application/json: + schema: + $ref: '#/components/schemas/OOBI' + /agent/{caid}: + get: + summary: Retrieve key state record of an agent by controller AID. + description: This endpoint retrieves the key state record for a given controller + of an agent. + tags: + - Agent + parameters: + - in: path + name: caid + schema: + type: string + required: true + description: The qb64 identifier prefix of Controller. + responses: + '200': + description: Successfully retrieved the key state record. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentResourceResult' + '400': + description: Bad request. This could be due to an invalid agent or controller + configuration. + '404': + description: The requested controller or agent was not found. + put: + summary: Update agent configuration by controller AID. + description: This endpoint updates the agent configuration based on the provided + request parameters and body. + tags: + - Agent + parameters: + - in: path + name: caid + schema: + type: string + required: true + description: The qb64 identifier prefix of Controller. + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - rot + - sigs + - sxlt + - kyes + properties: + rot: + type: object + description: The rotation event. + sigs: + type: array + items: + type: string + description: The signatures. + sxlt: + type: string + description: The salty parameters. + keys: + type: object + description: The keys. + responses: + '204': + description: Successfully updated the agent configuration. + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested agent was not found. + '500': + description: Internal server error. This could be due to an issue with updating + the agent configuration. + /identifiers/{name}: + get: + summary: Retrieve an identifier. + description: This endpoint retrieves an identifier by its prefix or human-readable + name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + responses: + '200': + description: Successfully retrieved the identifier details. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + post: + summary: Process identifier events. + description: This endpoint handles the 'rot' or 'ixn' events of an identifier, + or the request to resubmit the KEL, based on the provided request. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + rot: + type: object + description: The rotation event details. + ixn: + type: object + description: The interaction event details. + submit: + type: object + description: The request to resubmit event details to witnesses. + oneOf: + - required: + - rot + - required: + - ixn + - required: + - submit + responses: + '200': + description: Successfully processed the identifier's event. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + put: + summary: Rename an identifier. + description: This endpoint renames an identifier with the provided new name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The current human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The new human-readable name for the identifier. + required: + - name + responses: + '200': + description: Successfully renamed the identifier and returns the updated + information. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + /endroles/{aid}: + get: + summary: Retrieve end roles. + description: This endpoint retrieves the end roles associated with an identifier + prefix or human-readable name. It can also filter the end roles based on a + specific role. + tags: + - End Role + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + - in: path + name: aid + schema: + type: string + required: true + description: The identifier (AID). + - in: path + name: role + schema: + type: string + required: true + description: The specific role to filter the end roles. + responses: + '200': + description: Successfully retrieved the end roles. The response body contains + the end roles. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EndRole' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + post: + summary: Create an end role. + description: This endpoint creates an end role associated with a given identifier + prefix or human-readable name. + tags: + - End Role + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + - in: path + name: aid + schema: + type: string + required: true + description: Not supported for POST. If provided, a 404 is returned. + requestBody: + content: + application/json: + schema: + type: object + properties: + rpy: + type: object + description: The reply object. + sigs: + type: array + items: + type: string + description: The signatures. + responses: + '202': + description: Accepted. The end role creation is in progress. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: Not found. The requested identifier was not found. + /escrows/rpy: + get: + summary: Retrieve reply escrows. + description: This endpoint retrieves the reply escrows and can filter the collection + based on a specific route. + tags: + - Reply Escrow + parameters: + - in: query + name: route + schema: + type: string + required: false + description: The specific route to filter the reply escrow collection. + responses: + '200': + description: Successfully retrieved the reply escrows. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Rpy' + '400': + description: Bad request. This could be due to missing or invalid parameters. + /challenges/{name}: + post: + summary: Sign challenge message and forward to peer identifier + description: Sign a challenge word list received out of bands and send `exn` + peer to peer message to recipient + tags: + - Challenge/Response + parameters: + - in: path + name: name + schema: + type: string + required: true + description: Human readable alias or prefix for the identifier to create + requestBody: + required: true + content: + application/json: + schema: + description: Challenge response + properties: + recipient: + type: string + description: human readable alias recipient identifier to send signed + challenge to + words: + type: array + description: challenge in form of word list + items: + type: string + responses: + '202': + description: Success submission of signed challenge/response + /challenges_verify/{source}: + post: + summary: Sign challenge message and forward to peer identifier + description: Sign a challenge word list received out of bands and send `exn` + peer to peer message to recipient + tags: + - Challenge/Response + parameters: + - in: path + name: source + schema: + type: string + required: true + description: Human readable alias for the identifier to create + requestBody: + required: true + content: + application/json: + schema: + description: Challenge response + properties: + recipient: + type: string + description: human readable alias recipient identifier to send signed + challenge to + words: + type: array + description: challenge in form of word list + items: + type: string + responses: + '202': + description: Success submission of signed challenge/response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + put: + summary: Mark challenge response exn message as signed + description: Mark challenge response exn message as signed + tags: + - Challenge/Response + parameters: + - in: path + name: source + schema: + type: string + required: true + description: Human readable alias for the identifier to create + requestBody: + required: true + content: + application/json: + schema: + description: Challenge response + properties: + aid: + type: string + description: aid of signer of accepted challenge response + said: + type: array + description: SAID of challenge message signed + items: + type: string + responses: + '202': + description: Success submission of signed challenge/response + /contacts/{prefix}: + delete: + summary: Delete contact information associated with remote identifier + description: Delete contact information associated with remote identifier + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + required: true + description: qb64 identifier prefix of contact to delete + responses: + '202': + description: Contact information successfully deleted for prefix + '404': + description: No contact information found for prefix + get: + summary: Get contact information associated with single remote identifier + description: Get contact information associated with single remote identifier. All + information is meta-data and kept in local storage only + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + required: true + description: qb64 identifier prefix of contact to get + responses: + '200': + description: Contact information successfully retrieved for prefix + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + '404': + description: No contact information found for prefix + post: + summary: Create new contact information for an identifier + description: Creates new information for an identifier, overwriting all existing + information for that identifier + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + required: true + description: qb64 identifier prefix to add contact metadata to + requestBody: + required: true + content: + application/json: + schema: + description: Contact information + type: object + responses: + '200': + description: Updated contact information for remote identifier + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + '400': + description: Invalid identifier used to update contact information + '404': + description: Prefix not found in identifier contact information + put: + summary: Update provided fields in contact information associated with remote + identifier prefix + description: Update provided fields in contact information associated with remote + identifier prefix. All information is metadata and kept in local storage + only + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + required: true + description: qb64 identifier prefix to add contact metadata to + requestBody: + required: true + content: + application/json: + schema: + description: Contact information + type: object + responses: + '200': + description: Updated contact information for remote identifier + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + '400': + description: Invalid identifier used to update contact information + '404': + description: Prefix not found in identifier contact information + /schema/{said}: + get: + summary: Get schema JSON of specified schema + description: Get schema JSON of specified schema + operationId: getSchema + tags: + - Schema + parameters: + - in: path + name: said + schema: + type: string + required: true + description: qb64 self-addressing identifier of schema to get + responses: + '200': + description: Schema JSON successfully returned + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + '404': + description: No schema found for SAID + /credentials/{said}: + delete: + summary: Delete a credential from the database + description: Delete a credential from the database and remove any associated + indices + operationId: deleteCredential + tags: + - Credentials + parameters: + - in: path + name: said + schema: + type: string + required: true + description: SAID of credential to delete + responses: + '204': + description: Credential deleted successfully + '400': + description: The requested credential was not found + get: + summary: Export credential and all supporting cryptographic material + description: Export credential and all supporting cryptographic material + operationId: getCredential + tags: + - Credentials + parameters: + - in: path + name: said + schema: + type: string + required: true + description: SAID of credential to get + responses: + '200': + description: Credential export. + content: + application/json+cesr: + schema: + $ref: '#/components/schemas/Credential' + '400': + description: The requested credential was not found. + /credentials/query: + post: + summary: List credentials in credential store (wallet) + description: List issued or received credentials current verified + operationId: listCredentials + tags: + - Credentials + parameters: + - in: query + name: type + schema: + type: string + description: type of credential to return, [issued|received] + required: true + - in: query + name: schema + schema: + type: string + description: schema to filter by if provided + required: false + responses: + '200': + description: Credential list. + content: + application/json: + schema: + description: Credentials + type: array + items: + $ref: '#/components/schemas/Credential' + /credentials/verify: + post: + summary: Verify a credential without IPEX + description: Verify a credential without using IPEX (TEL should be updated separately) + operationId: verifyCredential + tags: + - Credentials + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - acdc + - iss + properties: + acdc: + type: object + description: KED of ACDC + iss: + type: object + description: KED of issuing event in VC TEL + responses: + '202': + description: Credential accepted for parsing + content: + application/json: + schema: + description: long running operation of credential processing + $ref: '#/components/schemas/Operation' + '404': + description: Malformed ACDC or iss event + /notifications/{said}: + delete: + summary: Delete notification + description: Delete notification + tags: + - Notifications + parameters: + - in: path + name: said + schema: + type: string + required: true + description: qb64 said of note to delete + responses: + '202': + description: Notification successfully deleted for prefix + '404': + description: No notification information found for prefix + put: + summary: Mark notification as read + description: Mark notification as read + tags: + - Notifications + parameters: + - in: path + name: said + schema: + type: string + required: true + description: qb64 said of note to mark as read + responses: + '202': + description: Notification successfully marked as read for prefix + '404': + description: No notification information found for SAID + /exchanges/query: + post: + summary: Query exchange message collection. + description: This endpoint retrieves the exchange messages based on the provided + query parameters. + tags: + - Exchange Message + requestBody: + content: + application/json: + schema: + type: object + properties: + filter: + type: object + description: The filter criteria to apply on the exchange messages. + sort: + type: object + description: The sorting criteria to apply on the exchange messages. + skip: + type: integer + description: The number of exchange messages to skip. (default=0) + limit: + type: integer + description: The maximum number of exchange messages to return. + (default=25) + responses: + '200': + description: Successfully retrieved the exchange messages. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExchangeResource' + '400': + description: Bad request. This could be due to missing or invalid parameters. + /exchanges/{said}: + get: + summary: Retrieve a specific exchange message. + description: This endpoint retrieves a specific exchange message based on the + provided SAID. + tags: + - Exchange Message + parameters: + - in: path + name: said + schema: + type: string + required: true + description: The qb64 SAID of the exchange message to retrieve. + responses: + '200': + description: Successfully retrieved the exchange message. + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/ExchangeResource' + '404': + description: The requested exchange message was not found. + /identifiers/{name}/events: + get: + summary: Retrieve an identifier. + description: This endpoint retrieves an identifier by its prefix or human-readable + name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + responses: + '200': + description: Successfully retrieved the identifier details. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + post: + summary: Process identifier events. + description: This endpoint handles the 'rot' or 'ixn' events of an identifier, + or the request to resubmit the KEL, based on the provided request. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + rot: + type: object + description: The rotation event details. + ixn: + type: object + description: The interaction event details. + submit: + type: object + description: The request to resubmit event details to witnesses. + oneOf: + - required: + - rot + - required: + - ixn + - required: + - submit + responses: + '200': + description: Successfully processed the identifier's event. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + put: + summary: Rename an identifier. + description: This endpoint renames an identifier with the provided new name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The current human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The new human-readable name for the identifier. + required: + - name + responses: + '200': + description: Successfully renamed the identifier and returns the updated + information. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + /identifiers/{name}/submit: + get: + summary: Retrieve an identifier. + description: This endpoint retrieves an identifier by its prefix or human-readable + name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + responses: + '200': + description: Successfully retrieved the identifier details. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + post: + summary: Process identifier events. + description: This endpoint handles the 'rot' or 'ixn' events of an identifier, + or the request to resubmit the KEL, based on the provided request. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + rot: + type: object + description: The rotation event details. + ixn: + type: object + description: The interaction event details. + submit: + type: object + description: The request to resubmit event details to witnesses. + oneOf: + - required: + - rot + - required: + - ixn + - required: + - submit + responses: + '200': + description: Successfully processed the identifier's event. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + put: + summary: Rename an identifier. + description: This endpoint renames an identifier with the provided new name. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The current human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The new human-readable name for the identifier. + required: + - name + responses: + '200': + description: Successfully renamed the identifier and returns the updated + information. + content: + application/json: + schema: + $ref: '#/components/schemas/Identifier' + '400': + description: Bad request. This could be due to a missing or invalid name + parameter. + '404': + description: The requested identifier was not found. + /identifiers/{name}/oobis: + get: + summary: Fetch OOBI URLs of an identifier. + description: This endpoint fetches the OOBI URLs for a specific role associated + with an identifier. + tags: + - Identifier + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + - in: query + name: role + schema: + type: string + required: true + description: The role for which to fetch the OOBI URLs. Can be a witness, + controller, agent, or mailbox. + responses: + '200': + description: Successfully fetched the OOBI URLs. The response body contains + the OOBI URLs. + content: + application/json: + schema: + $ref: '#/components/schemas/OOBI' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /identifiers/{name}/endroles: + get: + summary: Retrieve end roles. + description: This endpoint retrieves the end roles associated with an identifier + prefix or human-readable name. It can also filter the end roles based on a + specific role. + tags: + - End Role + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + responses: + '200': + description: Successfully retrieved the end roles. The response body contains + the end roles. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EndRole' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + post: + summary: Create an end role. + description: This endpoint creates an end role associated with a given identifier + prefix or human-readable name. + tags: + - End Role + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + rpy: + type: object + description: The reply object. + sigs: + type: array + items: + type: string + description: The signatures. + responses: + '202': + description: Accepted. The end role creation is in progress. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: Not found. The requested identifier was not found. + /identifiers/{name}/locschemes: + post: + summary: Authorises a new location scheme. + description: This endpoint authorises a new location scheme (endpoint) for a + particular endpoint identifier. + tags: + - Loc Scheme + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + requestBody: + content: + application/json: + schema: + type: object + properties: + rpy: + type: object + description: The reply object. + sigs: + type: array + items: + type: string + description: The signatures. + responses: + '202': + description: Accepted. The loc scheme authorisation is in progress. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: Not found. The requested identifier was not found. + /identifiers/{name}/members: + get: + summary: Fetch group member information. + description: This endpoint retrieves the signing and rotation members for a + specific group associated with an identifier. + tags: + - Group Member + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + responses: + '200': + description: Successfully fetched the group member information. + content: + application/json: + schema: + $ref: '#/components/schemas/GroupMember' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /identifiers/{name}/registries: + get: + summary: List credential issuance and revocation registries + description: List credential issuance and revocation registries + operationId: listRegistries + tags: + - Registries + parameters: + - in: path + name: name + schema: + type: string + required: true + description: human readable name of Hab to load credentials for + responses: + '200': + description: array of current credential issuance and revocation registies + content: + application/json: + schema: + description: Registries + type: array + items: + $ref: '#/components/schemas/Registry' + '404': + description: The requested registry is not a valid reference to an identifier + post: + summary: Request to create a credential issuance and revocation registry + description: Request to create a credential issuance and revocation registry + operationId: createRegistry + tags: + - Registries + parameters: + - in: path + name: name + schema: + type: string + required: true + description: human readable name of Hab to load credentials for + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: name of the new registry + alias: + type: string + description: name of identifier to associate as the issuer of the + new credential registry + toad: + type: integer + description: Backer receipt threshold + nonce: + type: string + description: qb64 encoded ed25519 random seed for registry + noBackers: + type: boolean + description: True means to not allow seperate backers from identifier's + witnesses. + baks: + type: array + items: + type: string + description: List of qb64 AIDs of witnesses to be used for the new + group identifier. + estOnly: + type: boolean + default: false + description: True means to not allow interaction events to anchor + credential events. + required: + - name + - alias + - toad + - nonce + - baks + responses: + '202': + description: registry inception request has been submitted + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + '404': + description: The requested registry is not a valid reference to an identifier. + '400': + description: Registry already in use. + /identifiers/{name}/credentials: + post: + summary: Perform credential issuance + description: Perform credential issuance + operationId: issueCredential + tags: + - Credentials + parameters: + - in: path + name: name + description: Human readable alias or prefix for the identifier to create + schema: + type: string + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + registry: + type: string + description: Alias of credential issuance/revocation registry (aka + status) + recipient: + type: string + description: AID of credential issuance/revocation recipient + schema: + type: string + description: SAID of credential schema being issued + rules: + type: object + description: Rules section (Ricardian contract) for credential being + issued + source: + type: object + description: ACDC edge or edge group for chained credentials + properties: + d: + type: string + description: SAID of reference chain + s: + type: string + description: SAID of reference chain schema + credentialData: + type: object + description: dynamic map of values specific to the schema + private: + type: boolean + description: flag to inidicate this credential should support privacy + preserving presentations + responses: + '200': + description: Credential issued. + content: + application/json: + schema: + $ref: '#/components/schemas/Credential' + '400': + description: Bad request. This could be due to missing or invalid data. + /identifiers/{name}/delegation: + post: + summary: Delegation. + description: Delegation. + tags: + - Delegation Message + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable alias for the AID context. + responses: + '202': + description: Successfully posted the exchange message. + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Exn' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /identifiers/{name}/exchanges: + post: + summary: Post an exchange message for an identifier. + description: This endpoint posts an exchange message to a specific named identifier. + tags: + - Exchange Message + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable alias for the AID context. + requestBody: + content: + application/json: + schema: + type: object + properties: + exn: + type: object + description: The exchange message event. + sigs: + type: array + items: + type: string + description: The signatures for the exn message. + atc: + type: object + description: The additional attachments for the exn message. + rec: + type: array + items: + type: string + description: The recipients of the exn message. + tpc: + type: string + description: The topic of the exn message. + responses: + '202': + description: Successfully posted the exchange message. + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Exn' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /endroles/{aid}/{role}: + get: + summary: Retrieve end roles. + description: This endpoint retrieves the end roles associated with an identifier + prefix or human-readable name. It can also filter the end roles based on a + specific role. + tags: + - End Role + parameters: + - in: path + name: aid + schema: + type: string + required: true + description: The identifier (AID). + - in: path + name: role + schema: + type: string + required: true + description: The specific role to filter the end roles. + responses: + '200': + description: Successfully retrieved the end roles. The response body contains + the end roles. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EndRole' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /contacts/{prefix}/img: + get: + summary: Get contact image for identifer prefix + description: Get contact image for identifer prefix + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + required: true + description: qb64 identifier prefix of contact image to get + responses: + '200': + description: Contact information successfully retrieved for prefix + content: + image/jpg: + schema: + description: Image + type: binary + '404': + description: No contact information found for prefix + post: + summary: Uploads an image to associate with identifier. + description: Uploads an image to associate with identifier. + tags: + - Contacts + parameters: + - in: path + name: prefix + schema: + type: string + description: identifier prefix to associate image to + required: true + requestBody: + required: true + content: + image/jpg: + schema: + type: string + format: binary + image/png: + schema: + type: string + format: binary + responses: + '200': + description: Image successfully uploaded + /registries/{ri}/{vci}: + get: + summary: Get credential registry state + description: Get credential registry state from any known Tever (does not need + be controlled by us) + operationId: getCredentialState + tags: + - Credentials + parameters: + - in: path + name: ri + schema: + type: string + required: true + description: SAID of management TEL + - in: path + name: vci + schema: + type: string + required: true + description: SAID of credential + responses: + '200': + description: Credential registry state + content: + application/json: + schema: + description: Credential registry state + $ref: '#/components/schemas/CredentialState' + '404': + description: Unknown management registry or credential + /multisig/request/{said}: + get: + summary: Retrieve a specific multisig resource. + description: This endpoint retrieves the multisig resources based on the provided + SAID. + tags: + - Multisig Resource + parameters: + - in: path + name: said + schema: + type: string + required: true + description: The qb64 SAID of the multisig resource to retrieve. + responses: + '200': + description: Successfully retrieved the multisig resource. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExnMultisig' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested multisig resource was not found. + /identifiers/{name}/endroles/{role}: + get: + summary: Retrieve end roles. + description: This endpoint retrieves the end roles associated with an identifier + prefix or human-readable name. It can also filter the end roles based on a + specific role. + tags: + - End Role + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier or its prefix. + - in: path + name: role + schema: + type: string + required: true + description: The specific role to filter the end roles. + responses: + '200': + description: Successfully retrieved the end roles. The response body contains + the end roles. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EndRole' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested identifier was not found. + /identifiers/{name}/registries/{registryName}: + get: + summary: Get a single credential issuance and revocation registy + description: Get a single credential issuance and revocation registy + operationId: getRegistry + tags: + - Registries + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier. + - in: path + name: registryName + schema: + type: string + required: true + description: The human-readable name of the registry. + responses: + '200': + description: credential issuance and revocation registy + content: + application/json: + schema: + $ref: '#/components/schemas/Registry' + '404': + description: The requested registry was not found. + put: + summary: Get a single credential issuance and revocation registry + description: Get a single credential issuance and revocation registry + operationId: renameRegistry + tags: + - Registries + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable name of the identifier. + - in: path + name: registryName + schema: + type: string + required: true + description: The human-readable name of the registry. + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The new name for the registry. + responses: + '200': + description: credential issuance and revocation registy + content: + application/json: + schema: + $ref: '#/components/schemas/Registry' + '400': + description: Bad request. This could be due to missing or invalid parameters. + '404': + description: The requested registry was not found. + /identifiers/{name}/credentials/{said}: + delete: + summary: Perform credential revocation + description: Initiates a credential revocation for a given identifier and SAID. + operationId: revokeCredential + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The human-readable alias or prefix for the AID to use as issuer. + - in: path + name: said + schema: + type: string + required: true + description: The SAID of the credential to revoke. + requestBody: + content: + application/json: + schema: + type: object + properties: + rev: + type: string + description: Serialized revocation event. + ixn: + type: string + description: Serialized interaction event. + rot: + type: string + description: Serialized rotation event. + sigs: + type: array + items: + type: string + description: List of signatures for the revocation event. + responses: + '200': + description: Credential revocation initiated successfully. + content: + application/json+cesr: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to invalid revocation event + or other invalid parameters. + '404': + description: The requested identifier or credential was not found. + /identifiers/{name}/multisig/request: + post: + summary: Create a multisig group request. + description: This endpoint creates a multisig request based on the provided + name. + tags: + - Multisig Request + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: Credential revocation initiated successfully. + content: + application/json+cesr: + schema: + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. This could be due to invalid revocation event + or other invalid parameters. + '404': + description: The requested identifier or credential was not found. + /identifiers/{name}/multisig/join: + post: + summary: Create a multisig group request. + description: This endpoint creates a multisig request based on the provided + name. + tags: + - Multisig Request + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + requestBody: + content: + application/json: + schema: + type: object + properties: + rot: + type: object + description: The rotation event. + sigs: + type: array + items: + type: string + description: List of signatures for the rotation event. + gid: + type: string + description: The group identifier. + smids: + type: array + items: + type: string + description: List of signing member identifiers. + rmids: + type: array + items: + type: string + description: List of recipient member identifiers. + responses: + '202': + description: Successfully created the multisig request. + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + '400': + description: Bad request. Bad request. This could be due to missing or invalid + parameters. + '404': + description: The requested identifier was not found. + /identifiers/{name}/ipex/admit: + post: + summary: Accept a credential being issued or presented in response to an IPEX + grant + description: Accept a credential being issued or presented in response to an + IPEX grant + tags: + - Registries + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX admit + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /identifiers/{name}/ipex/grant: + post: + summary: Reply to IPEX agree message or initiate an IPEX exchange with a credential + issuance or presentation + description: Reply to IPEX agree message or initiate an IPEX exchange with a + credential issuance or presentation + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX grant + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /identifiers/{name}/ipex/apply: + post: + summary: Request a credential from another party by initiating an IPEX exchange + description: Request a credential from another party by initiating an IPEX exchange + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX apply + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /identifiers/{name}/ipex/offer: + post: + summary: Reply to IPEX apply message or initiate an IPEX exchange with an offer + for a credential with certain characteristics + description: Reply to IPEX apply message or initiate an IPEX exchange with an + offer for a credential with certain characteristics + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX offer + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /identifiers/{name}/ipex/agree: + post: + summary: Reply to IPEX offer message acknowledged willingness to accept offered + credential + description: Reply to IPEX offer message acknowledged willingness to accept + offered credential + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX agree + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /identifiers/{name}/endroles/{role}/{eid}: + delete: + summary: Reply to IPEX offer message acknowledged willingness to accept offered + credential + description: Reply to IPEX offer message acknowledged willingness to accept + offered credential + tags: + - Credentials + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + - in: path + name: role + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + - in: path + name: eid + schema: + type: string + required: true + description: The AID of Hab to load credentials for. + responses: + '200': + description: long running operation of IPEX agree + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/Operation' + /oobi: + get: + summary: Retrieve OOBI resource. + description: This endpoint retrieves the OOBI resource based on the provided + aid, role, and eid. + tags: + - OOBI Resource + parameters: + - in: path + name: name + schema: + type: string + required: true + description: The qb64 identifier prefix of OOBI. + - in: path + name: role + schema: + type: string + required: true + description: The requested role for OOBI rpy message. + - in: path + name: eid + schema: + type: string + required: true + description: The qb64 identifier prefix of participant in role. + responses: + '200': + description: Successfully retrieved the OOBI resource. + '400': + description: Bad request. This could be due to invalid or missing parameters. + '404': + description: The requested OOBI resource was not found. + /: + post: + summary: Accept KERI events with attachment headers and parse + description: Accept KERI events with attachment headers and parse. + tags: + - Events + requestBody: + required: true + content: + application/json: + schema: + type: object + description: KERI event message + responses: + '204': + description: KEL EXN, QRY, RPY event accepted. + put: + summary: Accept KERI events with attachment headers and parse + description: Accept KERI events with attachment headers and parse. + tags: + - Events + requestBody: + required: true + content: + application/json: + schema: + type: object + description: KERI event message + responses: + '200': + description: Mailbox query response for server sent events + '204': + description: KEL or EXN event accepted. + /oobi/{aid}: + get: + summary: Retrieve OOBI resource. + description: This endpoint retrieves the OOBI resource based on the provided + aid, role, and eid. + tags: + - OOBI Resource + parameters: + - in: path + name: aid + schema: + type: string + required: true + description: The qb64 identifier prefix of OOBI. + - in: path + name: role + schema: + type: string + required: true + description: The requested role for OOBI rpy message. + - in: path + name: eid + schema: + type: string + required: true + description: The qb64 identifier prefix of participant in role. + responses: + '200': + description: Successfully retrieved the OOBI resource. + '400': + description: Bad request. This could be due to invalid or missing parameters. + '404': + description: The requested OOBI resource was not found. + /oobi/{aid}/{role}: + get: + summary: Retrieve OOBI resource. + description: This endpoint retrieves the OOBI resource based on the provided + aid, role, and eid. + tags: + - OOBI Resource + parameters: + - in: path + name: aid + schema: + type: string + required: true + description: The qb64 identifier prefix of OOBI. + - in: path + name: role + schema: + type: string + required: true + description: The requested role for OOBI rpy message. + - in: path + name: eid + schema: + type: string + required: true + description: The qb64 identifier prefix of participant in role. + responses: + '200': + description: Successfully retrieved the OOBI resource. + '400': + description: Bad request. This could be due to invalid or missing parameters. + '404': + description: The requested OOBI resource was not found. + /oobi/{aid}/{role}/{eid}: + get: + summary: Retrieve OOBI resource. + description: This endpoint retrieves the OOBI resource based on the provided + aid, role, and eid. + tags: + - OOBI Resource + parameters: + - in: path + name: aid + schema: + type: string + required: true + description: The qb64 identifier prefix of OOBI. + - in: path + name: role + schema: + type: string + required: true + description: The requested role for OOBI rpy message. + - in: path + name: eid + schema: + type: string + required: true + description: The qb64 identifier prefix of participant in role. + responses: + '200': + description: Successfully retrieved the OOBI resource. + '400': + description: Bad request. This could be due to invalid or missing parameters. + '404': + description: The requested OOBI resource was not found. +info: + title: KERIA Interactive Web Interface API + version: 1.0.1 +openapi: 3.1.0 +components: + schemas: + ACDCAttributes: + type: object + properties: + dt: + type: string + i: + type: string + u: + type: string + additionalProperties: true + ACDC: + type: object + properties: + v: + type: string + d: + type: string + i: + type: string + s: + type: string + ri: + type: string + a: + $ref: '#/components/schemas/ACDCAttributes' + u: + type: string + e: + type: array + items: {} + r: + type: array + items: {} + required: + - d + - i + - s + - v + IssEvt: + type: object + properties: + v: + type: string + t: + enum: + - iss + - bis + d: + type: string + i: + type: string + s: + type: string + ri: + type: string + dt: + type: string + required: + - d + - dt + - i + - ri + - s + - t + - v + Schema: + type: object + properties: + $id: + type: string + $schema: + type: string + title: + type: string + description: + type: string + type: + type: string + credentialType: + type: string + version: + type: string + properties: + type: object + additionalProperties: {} + additionalProperties: + type: boolean + required: + type: array + items: + type: string + required: + - $id + - $schema + - additionalProperties + - credentialType + - description + - properties + - required + - title + - type + - version + StatusAnchor: + type: object + properties: + s: + type: integer + d: + type: string + required: + - d + - s + CredentialStatus: + type: object + properties: + vn: + type: array + items: + type: integer + i: + type: string + s: + type: string + d: + type: string + ri: + type: string + ra: + type: object + additionalProperties: {} + a: + $ref: '#/components/schemas/StatusAnchor' + dt: + type: string + et: + type: string + required: + - a + - d + - dt + - et + - i + - ra + - ri + - s + - vn + Anchor: + type: object + properties: + pre: + type: string + sn: + type: integer + d: + type: string + required: + - d + - pre + - sn + Seal: + type: object + properties: + s: + type: string + d: + type: string + i: + type: string + required: + - d + - s + ANC: + type: object + properties: + v: + type: string + t: + type: string + d: + type: string + i: + type: string + s: + type: string + p: + type: string + di: + type: string + a: + type: array + items: + $ref: '#/components/schemas/Seal' + required: + - d + - i + - p + - s + - t + - v + Credential: + type: object + properties: + sad: + $ref: '#/components/schemas/ACDC' + atc: + type: string + iss: + $ref: '#/components/schemas/IssEvt' + issatc: + type: string + pre: + type: string + schema: + $ref: '#/components/schemas/Schema' + chains: + type: array + items: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/CredentialState' + anchor: + $ref: '#/components/schemas/Anchor' + anc: + $ref: '#/components/schemas/ANC' + ancatc: + type: string + required: + - anc + - ancatc + - anchor + - atc + - chains + - iss + - issatc + - pre + - sad + - schema + - status + OperationStatus: + type: object + properties: + code: + type: integer + message: + type: string + details: + type: + - object + - 'null' + additionalProperties: {} + required: + - code + - message + OperationBase: + type: object + properties: + name: + type: string + error: + $ref: '#/components/schemas/OperationStatus' + done: + type: boolean + required: + - name + EmptyDict: + type: object + properties: {} + CredentialStateIssOrRev: + type: object + properties: + vn: {} + i: + type: string + s: + type: string + d: + type: string + ri: + type: string + a: + $ref: '#/components/schemas/Seal' + dt: + type: string + et: + enum: + - iss + - rev + ra: + $ref: '#/components/schemas/EmptyDict' + required: + - a + - d + - dt + - et + - i + - ra + - ri + - s + - vn + RaFields: + type: object + properties: + i: + type: string + s: + type: string + d: + type: string + required: + - d + - i + - s + CredentialStateBisOrBrv: + type: object + properties: + vn: {} + i: + type: string + s: + type: string + d: + type: string + ri: + type: string + a: + $ref: '#/components/schemas/Seal' + dt: + type: string + et: + enum: + - bis + - brv + ra: + $ref: '#/components/schemas/RaFields' + required: + - a + - d + - dt + - et + - i + - ra + - ri + - s + - vn + CredentialState: + oneOf: + - $ref: '#/components/schemas/CredentialStateIssOrRev' + - $ref: '#/components/schemas/CredentialStateBisOrBrv' + Operation: + allOf: + - $ref: '#/components/schemas/OperationBase' + - type: object + properties: + metadata: + type: object + response: + type: object + Registry: + type: object + properties: + name: + type: string + regk: + type: string + pre: + type: string + state: + $ref: '#/components/schemas/CredentialState' + required: + - name + - pre + - regk + - state + IcpV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + di: + type: string + default: '' + RotV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + br: + type: array + items: + type: string + ba: + type: array + items: + type: string + a: {} + DipV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + di: + type: string + default: '' + DrtV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + br: + type: array + items: + type: string + ba: + type: array + items: + type: string + a: {} + VcpV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + ii: + type: string + default: '' + s: + type: string + default: '0' + c: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + n: + type: string + default: '' + VrtV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + p: + type: string + default: '' + s: + type: string + default: '0' + bt: + type: string + default: '0' + br: + type: array + items: + type: string + ba: + type: array + items: + type: string + IxnV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + a: {} + RctV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + QryV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + rr: + type: string + default: '' + q: + type: object + additionalProperties: {} + RpyV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + a: {} + ProV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + rr: + type: string + default: '' + q: + type: object + additionalProperties: {} + BarV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + a: {} + ExnV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + rp: + type: string + default: '' + p: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + q: + type: object + additionalProperties: {} + a: + type: object + additionalProperties: {} + e: + $ref: '#/components/schemas/ExnEmbeds' + IssV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + ri: + type: string + default: '' + dt: + type: string + default: '' + RevV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + ri: + type: string + default: '' + p: + type: string + default: '' + dt: + type: string + default: '' + BisV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + ii: + type: string + default: '' + s: + type: string + default: '0' + ra: + type: object + additionalProperties: {} + dt: + type: string + default: '' + BrvV1: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + ra: + type: object + additionalProperties: {} + dt: + type: string + default: '' + IcpV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + di: + type: string + default: '' + RotV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + br: + type: array + items: + type: string + ba: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + DipV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + di: + type: string + default: '' + DrtV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + br: + type: array + items: + type: string + ba: + type: array + items: + type: string + c: + type: array + items: + type: string + a: {} + IxnV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + a: {} + RctV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + s: + type: string + default: '0' + QryV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + rr: + type: string + default: '' + q: + type: object + additionalProperties: {} + RpyV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + a: {} + ProV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + rr: + type: string + default: '' + q: + type: object + additionalProperties: {} + BarV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + a: {} + XipV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + q: + type: object + additionalProperties: {} + a: {} + ExnV2: + type: object + properties: + v: + type: string + default: '' + t: + type: string + default: '' + d: + type: string + default: '' + i: + type: string + default: '' + x: + type: string + default: '' + p: + type: string + default: '' + dt: + type: string + default: '' + r: + type: string + default: '' + q: + type: object + additionalProperties: {} + a: + type: object + additionalProperties: {} + StateEERecord: + type: object + properties: + s: + type: string + default: '0' + d: + type: string + default: '' + br: + type: array + items: {} + ba: + type: array + items: {} + KeyStateRecord: + type: object + properties: + vn: + type: array + items: + type: integer + i: + type: string + default: '' + s: + type: string + default: '0' + p: + type: string + default: '' + d: + type: string + default: '' + f: + type: string + default: '0' + dt: + type: string + default: '' + et: + type: string + default: '' + kt: + type: string + default: '0' + k: + type: array + items: + type: string + nt: + type: string + default: '0' + n: + type: array + items: + type: string + bt: + type: string + default: '0' + b: + type: array + items: + type: string + c: + type: array + items: + type: string + ee: + $ref: '#/components/schemas/StateEERecord' + di: + type: string + default: '' + required: + - b + - c + - ee + - k + - n + Controller: + type: object + properties: + state: + $ref: '#/components/schemas/KeyStateRecord' + ee: + oneOf: + - $ref: '#/components/schemas/IcpV1' + - $ref: '#/components/schemas/IcpV2' + - $ref: '#/components/schemas/RotV1' + - $ref: '#/components/schemas/RotV2' + - $ref: '#/components/schemas/DipV1' + - $ref: '#/components/schemas/DipV2' + - $ref: '#/components/schemas/DrtV1' + - $ref: '#/components/schemas/DrtV2' + - $ref: '#/components/schemas/VcpV1' + - $ref: '#/components/schemas/VrtV1' + required: + - ee + - state + AgentResourceResult: + type: object + properties: + agent: + $ref: '#/components/schemas/KeyStateRecord' + controller: + $ref: '#/components/schemas/Controller' + pidx: + type: integer + ridx: + type: + - integer + - 'null' + default: null + sxlt: + type: + - string + - 'null' + default: null + required: + - agent + - controller + - pidx + SaltyState: + type: object + properties: + tier: + $ref: '#/components/schemas/Tier' + sxlt: + type: string + default: '' + pidx: + type: integer + default: 0 + kidx: + type: integer + default: 0 + stem: + type: string + default: '' + dcode: + type: string + default: '' + icodes: + type: array + items: + type: string + ncodes: + type: array + items: + type: string + transferable: + type: boolean + default: false + required: + - icodes + - ncodes + - tier + RandyKeyState: + type: object + properties: + prxs: + type: array + items: + type: string + nxts: + type: array + items: + type: string + required: + - nxts + - prxs + HabState: + type: object + properties: + name: + type: string + prefix: + type: string + icp_dt: + type: string + state: + $ref: '#/components/schemas/KeyStateRecord' + transferable: + type: + - boolean + - 'null' + default: null + windexes: + type: + - array + - 'null' + default: null + items: + type: string + required: + - icp_dt + - name + - prefix + - state + GroupKeyState: + type: object + properties: + mhab: + $ref: '#/components/schemas/Identifier' + keys: + type: array + items: + type: string + ndigs: + type: array + items: + type: string + required: + - keys + - mhab + - ndigs + ExternState: + type: object + properties: + extern_type: + type: string + pidx: + type: integer + required: + - extern_type + - pidx + additionalProperties: true + Identifier: + type: object + properties: + name: + type: string + prefix: + type: string + icp_dt: + type: string + state: + $ref: '#/components/schemas/KeyStateRecord' + transferable: + type: + - boolean + - 'null' + default: null + windexes: + type: + - array + - 'null' + default: null + items: + type: string + required: + - icp_dt + - name + - prefix + - state + oneOf: + - required: + - salty + properties: + salty: + $ref: '#/components/schemas/SaltyState' + - required: + - randy + properties: + randy: + $ref: '#/components/schemas/RandyKeyState' + - required: + - group + properties: + group: + $ref: '#/components/schemas/GroupKeyState' + - required: + - extern + properties: + extern: + $ref: '#/components/schemas/ExternState' + Tier: + type: string + enum: + - low + - med + - high + description: Tier of key material + OOBI: + type: object + properties: + role: + type: string + enum: + - controller + - witness + - registrar + - watcher + - judge + - juror + - peer + - mailbox + - agent + oobis: + type: array + items: + type: string + required: + - oobis + - role + EndRole: + type: object + properties: + cid: + type: string + role: + type: string + eid: + type: string + required: + - cid + - eid + - role + Rpy: + oneOf: + - $ref: '#/components/schemas/RpyV1' + - $ref: '#/components/schemas/RpyV2' + Challenge: + type: object + properties: + words: + type: array + items: + type: string + dt: + type: string + said: + type: string + authenticated: + type: boolean + required: + - words + MemberEnds: + type: object + properties: + agent: + type: object + additionalProperties: + type: string + controller: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + witness: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + registrar: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + watcher: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + judge: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + juror: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + peer: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + mailbox: + type: + - object + - 'null' + default: null + additionalProperties: + type: string + required: + - agent + WellKnown: + type: object + properties: + url: + type: string + dt: + type: string + required: + - dt + - url + Contact: + type: object + properties: + id: + type: string + alias: + type: string + oobi: + type: string + end: + $ref: '#/components/schemas/MemberEnds' + challenges: + type: array + items: + $ref: '#/components/schemas/Challenge' + wellKnowns: + type: array + items: + $ref: '#/components/schemas/WellKnown' + required: + - alias + - id + - oobi + additionalProperties: true + AidRecord: + type: object + properties: + aid: + type: string + ends: + $ref: '#/components/schemas/MemberEnds' + required: + - aid + - ends + GroupMember: + type: object + properties: + signing: + type: array + items: + $ref: '#/components/schemas/AidRecord' + rotation: + type: array + items: + $ref: '#/components/schemas/AidRecord' + required: + - rotation + - signing + KeyEventRecord: + type: object + properties: + ked: + oneOf: + - $ref: '#/components/schemas/IcpV1' + - $ref: '#/components/schemas/RotV1' + - $ref: '#/components/schemas/IxnV1' + - $ref: '#/components/schemas/DipV1' + - $ref: '#/components/schemas/DrtV1' + - $ref: '#/components/schemas/RctV1' + - $ref: '#/components/schemas/QryV1' + - $ref: '#/components/schemas/RpyV1' + - $ref: '#/components/schemas/ProV1' + - $ref: '#/components/schemas/BarV1' + - $ref: '#/components/schemas/ExnV1' + - $ref: '#/components/schemas/VcpV1' + - $ref: '#/components/schemas/VrtV1' + - $ref: '#/components/schemas/IssV1' + - $ref: '#/components/schemas/RevV1' + - $ref: '#/components/schemas/BisV1' + - $ref: '#/components/schemas/BrvV1' + - $ref: '#/components/schemas/IcpV2' + - $ref: '#/components/schemas/RotV2' + - $ref: '#/components/schemas/IxnV2' + - $ref: '#/components/schemas/DipV2' + - $ref: '#/components/schemas/DrtV2' + - $ref: '#/components/schemas/RctV2' + - $ref: '#/components/schemas/QryV2' + - $ref: '#/components/schemas/RpyV2' + - $ref: '#/components/schemas/ProV2' + - $ref: '#/components/schemas/BarV2' + - $ref: '#/components/schemas/XipV2' + - $ref: '#/components/schemas/ExnV2' + atc: + type: string + required: + - atc + - ked + AgentConfig: + type: object + properties: + iurls: + type: array + items: + type: string + Exn: + oneOf: + - $ref: '#/components/schemas/ExnV1' + - $ref: '#/components/schemas/ExnV2' + Icp: + oneOf: + - $ref: '#/components/schemas/IcpV1' + - $ref: '#/components/schemas/IcpV2' + Rot: + oneOf: + - $ref: '#/components/schemas/RotV1' + - $ref: '#/components/schemas/RotV2' + Vcp: + oneOf: + - $ref: '#/components/schemas/VcpV1' + Iss: + oneOf: + - $ref: '#/components/schemas/IssV1' + Ixn: + oneOf: + - $ref: '#/components/schemas/IxnV1' + - $ref: '#/components/schemas/IxnV2' + NotificationData: + type: object + properties: + r: + type: string + d: + type: + - string + - 'null' + default: null + m: + type: + - string + - 'null' + default: null + required: + - r + Notification: + type: object + properties: + i: + type: string + dt: + type: string + r: + type: boolean + a: + $ref: '#/components/schemas/NotificationData' + required: + - a + - dt + - i + - r + ExchangeResource: + type: object + properties: + exn: + $ref: '#/components/schemas/Exn' + pathed: + type: object + additionalProperties: {} + required: + - exn + - pathed + MultisigInceptEmbeds: + type: object + properties: + icp: + $ref: '#/components/schemas/Icp' + rot: + $ref: '#/components/schemas/Rot' + required: + - icp + MultisigRotateEmbeds: + type: object + properties: + rot: {} + required: + - rot + MultisigInteractEmbeds: + type: object + properties: + ixn: + $ref: '#/components/schemas/Ixn' + required: + - ixn + MultisigRegistryInceptEmbeds: + type: object + properties: + vcp: + $ref: '#/components/schemas/Vcp' + anc: + $ref: '#/components/schemas/ANC' + required: + - anc + - vcp + MultisigIssueEmbeds: + type: object + properties: + acdc: + $ref: '#/components/schemas/ACDC' + iss: + $ref: '#/components/schemas/Iss' + anc: + $ref: '#/components/schemas/ANC' + required: + - acdc + - anc + - iss + MultisigRevokeEmbeds: + type: object + properties: + rev: + $ref: '#/components/schemas/RevV1' + anc: + $ref: '#/components/schemas/ANC' + required: + - anc + - rev + MultisigRpyEmbeds: + type: object + properties: + rpy: + $ref: '#/components/schemas/Rpy' + required: + - rpy + MultisigExnEmbeds: + type: object + properties: + exn: + $ref: '#/components/schemas/Exn' + required: + - exn + ExnEmbeds: + type: object + properties: + d: + type: string + required: + - d + oneOf: + - $ref: '#/components/schemas/MultisigInceptEmbeds' + - $ref: '#/components/schemas/MultisigRotateEmbeds' + - $ref: '#/components/schemas/MultisigInteractEmbeds' + - $ref: '#/components/schemas/MultisigRegistryInceptEmbeds' + - $ref: '#/components/schemas/MultisigIssueEmbeds' + - $ref: '#/components/schemas/MultisigRevokeEmbeds' + - $ref: '#/components/schemas/MultisigRpyEmbeds' + - $ref: '#/components/schemas/MultisigExnEmbeds' + ExnMultisig: + type: object + properties: + exn: + $ref: '#/components/schemas/Exn' + paths: + type: object + additionalProperties: {} + e: + $ref: '#/components/schemas/ExnEmbeds' + groupName: + type: + - string + - 'null' + default: null + memberName: + type: + - string + - 'null' + default: null + sender: + type: + - string + - 'null' + default: null + required: + - e + - exn + - paths