@affinidi/internal-api-clients
Version:
SDK core monorepo for affinity DID solution
750 lines (749 loc) • 19.4 kB
text/typescript
/* eslint-disable */
export default {
"components": {
"examples": {},
"headers": {},
"parameters": {},
"requestBodies": {},
"responses": {},
"schemas": {
"ValidateJwtOutput": {
"properties": {
"isValid": {
"type": "boolean"
},
"payload": {
"anyOf": [
{
"properties": {
"exp": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"format": "double"
}
]
},
"iat": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"format": "double"
}
]
},
"jti": {
"type": "string"
},
"iss": {
"type": "string"
}
},
"additionalProperties": {},
"type": "object"
},
{
"type": "string"
}
]
}
},
"required": [
"isValid",
"payload"
],
"type": "object",
"additionalProperties": false
},
"ValidateJwtInput": {
"properties": {
"token": {
"type": "string"
}
},
"required": [
"token"
],
"type": "object",
"additionalProperties": false
},
"FreeFormObject": {
"properties": {},
"type": "object",
"additionalProperties": {}
},
"SignedCredential": {
"$ref": "#/components/schemas/FreeFormObject"
},
"VerifyCredentialShareResponseOutput": {
"properties": {
"jti": {
"type": "string"
},
"errors": {
"items": {
"type": "string"
},
"type": "array"
},
"issuer": {
"type": "string"
},
"isValid": {
"type": "boolean"
},
"suppliedCredentials": {
"items": {
"$ref": "#/components/schemas/SignedCredential"
},
"type": "array"
}
},
"required": [
"jti",
"errors",
"issuer",
"isValid",
"suppliedCredentials"
],
"type": "object",
"additionalProperties": false
},
"VerifyCredentialShareResponseInput": {
"properties": {
"credentialShareRequestToken": {
"type": "string",
"nullable": true
},
"credentialShareResponseToken": {
"type": "string"
},
"isHolderMustBeSubject": {
"type": "boolean",
"nullable": true
}
},
"required": [
"credentialShareResponseToken"
],
"type": "object",
"additionalProperties": false
},
"VerifyCredentialOutput": {
"properties": {
"errors": {
"items": {
"type": "string"
},
"type": "array"
},
"isValid": {
"type": "boolean"
}
},
"required": [
"errors",
"isValid"
],
"type": "object",
"additionalProperties": false
},
"W3cCredentialStatus": {
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"revocationListIndex": {
"type": "string"
},
"revocationListCredential": {
"type": "string"
}
},
"required": [
"id",
"type",
"revocationListIndex",
"revocationListCredential"
],
"type": "object",
"additionalProperties": false
},
"W3cProof": {
"properties": {
"type": {
"type": "string",
"nullable": true
},
"created": {
"type": "string",
"nullable": true
},
"verificationMethod": {
"type": "string"
},
"proofPurpose": {
"type": "string"
},
"jws": {
"type": "string",
"nullable": true
},
"proofValue": {
"type": "string",
"nullable": true
},
"nonce": {
"type": "string",
"nullable": true
}
},
"required": [
"verificationMethod",
"proofPurpose"
],
"type": "object",
"additionalProperties": false
},
"W3cCredential": {
"properties": {
"@context": {
"anyOf": [
{
"$ref": "#/components/schemas/FreeFormObject"
},
{
"type": "string"
}
]
},
"id": {
"type": "string",
"nullable": true
},
"type": {
"items": {
"type": "string"
},
"type": "array"
},
"holder": {
"anyOf": [
{
"$ref": "#/components/schemas/FreeFormObject"
},
{
"type": "string"
}
],
"nullable": true
},
"credentialSubject": {
"$ref": "#/components/schemas/FreeFormObject"
},
"credentialStatus": {
"allOf": [
{
"$ref": "#/components/schemas/W3cCredentialStatus"
}
],
"nullable": true
},
"issuanceDate": {
"type": "string"
},
"issuer": {
"type": "string"
},
"expirationDate": {
"type": "string",
"nullable": true
},
"proof": {
"$ref": "#/components/schemas/W3cProof"
},
"credentialSchema": {
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"type",
"id"
],
"type": "object"
}
},
"required": [
"@context",
"type",
"credentialSubject",
"issuanceDate",
"issuer",
"proof"
],
"type": "object",
"additionalProperties": false
},
"VerifyCredentialInput": {
"properties": {
"verifiableCredentials": {
"items": {
"$ref": "#/components/schemas/W3cCredential"
},
"type": "array",
"minItems": 1
},
"issuerDidDocument": {
"$ref": "#/components/schemas/FreeFormObject"
}
},
"required": [
"verifiableCredentials"
],
"type": "object",
"additionalProperties": false
},
"VerifyPresentationOutput": {
"properties": {
"error": {
"type": "string"
},
"errors": {
"items": {
"type": "string"
},
"type": "array"
},
"isValid": {
"type": "boolean"
}
},
"required": [
"isValid"
],
"type": "object",
"additionalProperties": false
},
"W3cPresentation": {
"properties": {
"@context": {
"anyOf": [
{
"$ref": "#/components/schemas/FreeFormObject"
},
{
"type": "string"
}
]
},
"id": {
"type": "string",
"nullable": true
},
"type": {
"items": {
"type": "string"
},
"type": "array"
},
"holder": {
"$ref": "#/components/schemas/FreeFormObject"
},
"verifiableCredential": {
"items": {
"$ref": "#/components/schemas/W3cCredential"
},
"type": "array"
},
"proof": {
"$ref": "#/components/schemas/FreeFormObject"
}
},
"required": [
"@context",
"type",
"holder",
"verifiableCredential",
"proof"
],
"type": "object",
"additionalProperties": false
},
"VerifyPresentationInput": {
"properties": {
"verifiablePresentation": {
"$ref": "#/components/schemas/W3cPresentation"
},
"signedPresentation": {
"$ref": "#/components/schemas/W3cPresentation"
},
"challenge": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"BuildCredentialRequestOutput": {
"properties": {
"credentialShareRequest": {
"$ref": "#/components/schemas/FreeFormObject"
}
},
"required": [
"credentialShareRequest"
],
"type": "object",
"additionalProperties": false
},
"UrlType": {
"type": "string",
"pattern": "^https?:\\/\\/.*$"
},
"CredentialRequirements": {
"properties": {
"type": {
"items": {
"type": "string"
},
"type": "array"
},
"constraints": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"items": {
"$ref": "#/components/schemas/FreeFormObject"
},
"type": "array"
}
]
}
},
"required": [
"type"
],
"type": "object",
"additionalProperties": false
},
"DidType": {
"type": "string",
"pattern": "did:.*"
},
"DateISOType": {
"type": "string",
"pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)"
},
"BuildCredentialRequestInput": {
"properties": {
"callbackUrl": {
"allOf": [
{
"$ref": "#/components/schemas/UrlType"
}
],
"nullable": true
},
"credentialRequirements": {
"items": {
"$ref": "#/components/schemas/CredentialRequirements"
},
"type": "array"
},
"issuerDid": {
"allOf": [
{
"$ref": "#/components/schemas/DidType"
}
],
"nullable": true
},
"subjectDid": {
"allOf": [
{
"$ref": "#/components/schemas/DidType"
}
],
"nullable": true
},
"audienceDid": {
"allOf": [
{
"$ref": "#/components/schemas/DidType"
}
],
"nullable": true
},
"expiresAt": {
"allOf": [
{
"$ref": "#/components/schemas/DateISOType"
}
],
"nullable": true
},
"nonce": {
"type": "string",
"nullable": true
}
},
"required": [
"credentialRequirements"
],
"type": "object",
"additionalProperties": false
}
},
"securitySchemes": {}
},
"info": {
"title": "affinity-verifier",
"version": "0.34.1",
"description": "Affinity verifier",
"license": {
"name": "ISC"
},
"contact": {
"name": "The Engineering Team",
"email": "nucleus.team@affinidi.com"
}
},
"openapi": "3.0.0",
"paths": {
"/verifier/validate-jwt": {
"post": {
"operationId": "ValidateJwt",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateJwtOutput"
}
}
}
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
}
},
"description": "Validates JWT object.\n\nreturns\n isValid: boolean\n payload: payload from JWT",
"tags": [
"Verifier"
],
"security": [],
"parameters": [
{
"in": "header",
"name": "Api-Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateJwtInput"
}
}
}
}
}
},
"/verifier/verify-share-response": {
"post": {
"operationId": "VerifyCredentialShareResponse",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyCredentialShareResponseOutput"
}
}
}
}
},
"description": "Verifying JWT token (signature and expiration), validate each credential\ninside it (signature), validate response against request if requestToken was passed.\n\n`errors` contains list of error messages for invalid credentials.",
"summary": "Verifying share response token.",
"tags": [
"Verifier"
],
"security": [],
"parameters": [
{
"in": "header",
"name": "Api-Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyCredentialShareResponseInput"
}
}
}
}
}
},
"/verifier/verify-vcs": {
"post": {
"operationId": "VerifyCredentials",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyCredentialOutput"
}
}
}
}
},
"description": "Verifying Verifiable Credentials (signatures)\n\n`isValid` - true if all credentials verified\n`errors` contains list of error messages for invalid credentials.",
"summary": "Verifying VC",
"tags": [
"Verifier"
],
"security": [],
"parameters": [
{
"in": "header",
"name": "Api-Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyCredentialInput"
}
}
}
}
}
},
"/verifier/verify-vp": {
"post": {
"operationId": "VerifyPresentation",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyPresentationOutput"
}
}
}
}
},
"description": "Verifying Verifiable Presentation (signatures)\nThe request body has three optional fields:\n- verifiablePresentation - VP with structure according to W3C\n- signedPresentation - signed VP with structure according to W3C\n- challenge - VP challenge, which the VP requester could optionally send\n to check if it is the same as in VP. Otherwise, the check will be skipped.\n\nNOTE 1: You must use `verifiablePresentation` or `signedPresentation` as a request body input field.\n\nNOTE 2: VP challenge (according to VP model docs) could be any string. Endpoint allows only JWT challenge created\nusing `generatePresentationChallenge` of `@affinidi/wallet-core-sdk`. In that case, JWT will be processed correctly\nand will provide more security out of the box.\n\n`isValid` - true if presentation verified\n`error` verificaction error.",
"summary": "Verifying VP",
"tags": [
"Verifier"
],
"security": [],
"parameters": [
{
"in": "header",
"name": "Api-Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyPresentationInput"
}
}
}
}
}
},
"/verifier/build-credential-request": {
"post": {
"operationId": "BuildCredentialRequest",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildCredentialRequestOutput"
}
}
}
}
},
"description": "Build credential share request JWT object from input data.",
"summary": "Builds credential share request.",
"tags": [
"Verifier"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildCredentialRequestInput"
}
}
}
}
}
}
},
"servers": [
{
"url": "/api/v1"
}
]
} as const