ula-aca/aries-cloudagent-interface-javascript

View on GitHub
resources/aca-py-openapi-schema.json

Summary

Maintainability
Test Coverage
{
  "openapi": "3.0.0",
  "x-origin": [
    {
      "url": "http://localhost:6002/api/docs/swagger.json",
      "format": "swagger",
      "version": "2.0",
      "converter": {
        "url": "https://github.com/mermade/oas-kit",
        "version": "7.0.2"
      }
    }
  ],
  "paths": {
    "/plugins": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminModules"
                }
              }
            }
          }
        },
        "tags": ["server"],
        "summary": "Fetch the list of loaded plugins"
      }
    },
    "/status": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStatus"
                }
              }
            }
          }
        },
        "tags": ["server"],
        "summary": "Fetch the server status"
      }
    },
    "/status/reset": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStatus"
                }
              }
            }
          }
        },
        "tags": ["server"],
        "summary": "Reset statistics"
      }
    },
    "/status/live": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStatusLiveliness"
                }
              }
            }
          }
        },
        "tags": ["server"],
        "summary": "Liveliness check"
      }
    },
    "/status/ready": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStatusReadiness"
                }
              }
            }
          }
        },
        "tags": ["server"],
        "summary": "Readiness check"
      }
    },
    "/shutdown": {
      "get": {
        "responses": {},
        "tags": ["server"],
        "summary": "Shut down server"
      }
    },
    "/out-of-band/create-invitation": {
      "post": {
        "responses": {},
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvitationCreateRequest"
              }
            }
          }
        },
        "tags": ["out-of-band"],
        "summary": "Create a new connection invitation"
      }
    },
    "/out-of-band/receive-invitation": {
      "post": {
        "responses": {},
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvitationReceiveRequest"
              }
            }
          }
        },
        "tags": ["out-of-band"],
        "summary": "Create a new connection invitation"
      }
    },
    "/present-proof/records": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchangeList"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "connection_id",
            "required": false,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": false,
            "description": "Role assigned in presentation exchange",
            "schema": {
              "type": "string",
              "enum": ["prover", "verifier"]
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "description": "Presentation exchange state",
            "schema": {
              "type": "string",
              "enum": [
                "proposal_sent",
                "proposal_received",
                "request_sent",
                "request_received",
                "presentation_sent",
                "presentation_received",
                "verified",
                "presentation_acked"
              ]
            }
          },
          {
            "in": "query",
            "name": "thread_id",
            "required": false,
            "description": "Thread identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "tags": ["present-proof"],
        "summary": "Fetch all present-proof exchange records"
      }
    },
    "/present-proof/records/{pres_ex_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["present-proof"],
        "summary": "Fetch a single presentation exchange record"
      }
    },
    "/present-proof/records/{pres_ex_id}/credentials": {
      "get": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          {
            "in": "query",
            "name": "count",
            "required": false,
            "description": "Maximum number to retrieve",
            "example": 10,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          },
          {
            "in": "query",
            "name": "extra_query",
            "required": false,
            "description": "(JSON) object mapping referents to extra WQL queries",
            "example": "{\"0_drink_uuid\": {\"attr::drink::value\": \"martini\"}}",
            "schema": {
              "type": "string",
              "pattern": "^{\\s*\".*?\"\\s*:\\s*{.*?}\\s*(,\\s*\".*?\"\\s*:\\s*{.*?}\\s*)*\\s*}$"
            }
          },
          {
            "in": "query",
            "name": "referent",
            "required": false,
            "description": "Proof request referents of interest, comma-separated",
            "example": "1_name_uuid,2_score_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start",
            "required": false,
            "description": "Start index",
            "example": 0,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            }
          }
        ],
        "tags": ["present-proof"],
        "summary": "Fetch credentials for a presentation request from wallet"
      }
    },
    "/present-proof/send-proposal": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10PresentationProposalRequest"
              }
            }
          }
        },
        "tags": ["present-proof"],
        "summary": "Sends a presentation proposal"
      }
    },
    "/present-proof/create-request": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10PresentationCreateRequestRequest"
              }
            }
          }
        },
        "tags": ["present-proof"],
        "summary": "\n    Creates a presentation request not bound to any proposal or existing connection\n    "
      }
    },
    "/present-proof/send-request": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/V10PresentationSendRequestRequest"
        },
        "tags": ["present-proof"],
        "summary": "Sends a free presentation request not bound to any proposal"
      }
    },
    "/present-proof/records/{pres_ex_id}/send-request": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/V10PresentationSendRequestRequest"
        },
        "tags": ["present-proof"],
        "summary": "Sends a presentation request in reference to a proposal"
      }
    },
    "/present-proof/records/{pres_ex_id}/send-presentation": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10PresentationRequest"
              }
            }
          }
        },
        "tags": ["present-proof"],
        "summary": "Sends a proof presentation"
      }
    },
    "/present-proof/records/{pres_ex_id}/verify-presentation": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PresentationExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["present-proof"],
        "summary": "Verify a received presentation"
      }
    },
    "/present-proof/records/{pres_ex_id}/remove": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "pres_ex_id",
            "required": true,
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["present-proof"],
        "summary": "Remove an existing presentation exchange record"
      }
    },
    "/connections/{conn_id}/start-introduction": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "target_connection_id",
            "required": true,
            "description": "Target connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "message",
            "required": false,
            "description": "Message",
            "example": "Allow me to introduce ...",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["introduction"],
        "summary": "Start an introduction between two connections"
      }
    },
    "/connections/{conn_id}/send-message": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessage"
              }
            }
          }
        },
        "tags": ["basicmessage"],
        "summary": "Send a basic message to a connection"
      }
    },
    "/action-menu/{conn_id}/close": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["action-menu"],
        "summary": "Close the active menu associated with a connection"
      }
    },
    "/action-menu/{conn_id}/fetch": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["action-menu"],
        "summary": "Fetch the active menu"
      }
    },
    "/action-menu/{conn_id}/perform": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PerformRequest"
              }
            }
          }
        },
        "tags": ["action-menu"],
        "summary": "Perform an action associated with the active menu"
      }
    },
    "/action-menu/{conn_id}/request": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["action-menu"],
        "summary": "Request the active menu"
      }
    },
    "/connections/{conn_id}/send-menu": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMenu"
              }
            }
          }
        },
        "tags": ["action-menu"],
        "summary": "Send an action menu to a connection"
      }
    },
    "/features": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "query",
            "required": false,
            "description": "Query",
            "example": "did:sov:*",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["server"],
        "summary": "Query supported features"
      }
    },
    "/connections/{conn_id}/send-ping": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingRequestResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PingRequest"
              }
            }
          }
        },
        "tags": ["trustping"],
        "summary": "Send a trust ping to a connection"
      }
    },
    "/connections": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionList"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "alias",
            "required": false,
            "description": "Alias",
            "example": "Barry",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "initiator",
            "required": false,
            "description": "Connection initiator",
            "schema": {
              "type": "string",
              "enum": ["self", "external"]
            }
          },
          {
            "in": "query",
            "name": "invitation_key",
            "required": false,
            "description": "invitation key",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV",
            "schema": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$"
            }
          },
          {
            "in": "query",
            "name": "my_did",
            "required": false,
            "description": "My DID",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "description": "Connection state",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "invitation",
                "request",
                "response",
                "active",
                "error",
                "inactive"
              ]
            }
          },
          {
            "in": "query",
            "name": "their_did",
            "required": false,
            "description": "Their DID",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "their_role",
            "required": false,
            "description": "Their assigned connection role",
            "example": "Point of contact",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Query agent-to-agent connections"
      }
    },
    "/connections/{conn_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionRecord"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Fetch a single connection record"
      }
    },
    "/connections/create-static": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionStaticResult"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionStaticRequest"
              }
            }
          }
        },
        "tags": ["connection"],
        "summary": "Create a new static connection"
      }
    },
    "/connections/create-invitation": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "alias",
            "required": false,
            "description": "Alias",
            "example": "Barry",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "auto_accept",
            "required": false,
            "description": "Auto-accept connection (default as per configuration)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "multi_use",
            "required": false,
            "description": "Create invitation for multiple use (default false)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "public",
            "required": false,
            "description": "Create invitation from public DID (default false)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Create a new connection invitation"
      }
    },
    "/connections/receive-invitation": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionRecord"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "alias",
            "required": false,
            "description": "Alias",
            "example": "Barry",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "auto_accept",
            "required": false,
            "description": "Auto-accept connection (defaults to configuration)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiveInvitationRequest"
              }
            }
          }
        },
        "tags": ["connection"],
        "summary": "Receive a new connection invitation"
      }
    },
    "/connections/{conn_id}/accept-invitation": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionRecord"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "my_endpoint",
            "required": false,
            "description": "My URL endpoint",
            "example": "https://myhost:8021",
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$"
            }
          },
          {
            "in": "query",
            "name": "my_label",
            "required": false,
            "description": "Label for connection",
            "example": "Broker",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Accept a stored connection invitation"
      }
    },
    "/connections/{conn_id}/accept-request": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionRecord"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "my_endpoint",
            "required": false,
            "description": "My URL endpoint",
            "example": "https://myhost:8021",
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Accept a stored connection request"
      }
    },
    "/connections/{conn_id}/establish-inbound/{ref_id}": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref_id",
            "required": true,
            "description": "Inbound connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Assign another connection as the inbound connection"
      }
    },
    "/connections/{conn_id}/remove": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["connection"],
        "summary": "Remove an existing connection record"
      }
    },
    "/issue-credential/records": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchangeListResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "connection_id",
            "required": false,
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": false,
            "description": "Role assigned in credential exchange",
            "schema": {
              "type": "string",
              "enum": ["issuer", "holder"]
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "description": "Credential exchange state",
            "schema": {
              "type": "string",
              "enum": [
                "proposal_sent",
                "proposal_received",
                "offer_sent",
                "offer_received",
                "request_sent",
                "request_received",
                "credential_issued",
                "credential_received",
                "credential_acked"
              ]
            }
          },
          {
            "in": "query",
            "name": "thread_id",
            "required": false,
            "description": "Thread identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Fetch all credential exchange records"
      }
    },
    "/issue-credential/records/{cred_ex_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Fetch a single credential exchange record"
      }
    },
    "/issue-credential/create": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialCreate"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send holder a credential, automating entire flow"
      }
    },
    "/issue-credential/send": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialProposalRequestMand"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send holder a credential, automating entire flow"
      }
    },
    "/issue-credential/send-proposal": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialProposalRequestOpt"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send issuer a credential proposal"
      }
    },
    "/issue-credential/send-offer": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialOfferRequest"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send holder a credential offer, independent of any proposal"
      }
    },
    "/issue-credential/records/{cred_ex_id}/send-offer": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Send holder a credential offer in reference to a proposal with preview"
      }
    },
    "/issue-credential/records/{cred_ex_id}/send-request": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Send issuer a credential request"
      }
    },
    "/issue-credential/records/{cred_ex_id}/issue": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialIssueRequest"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send holder a credential"
      }
    },
    "/issue-credential/records/{cred_ex_id}/store": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10CredentialExchange"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialStoreRequest"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Store a received credential"
      }
    },
    "/issue-credential/revoke": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "cred_rev_id",
            "required": true,
            "description": "Credential revocation identifier",
            "example": 10,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          },
          {
            "in": "query",
            "name": "rev_reg_id",
            "required": true,
            "description": "Revocation registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)"
            }
          },
          {
            "in": "query",
            "name": "publish",
            "required": false,
            "description": "(True) publish revocation to ledger immediately, or (False) mark it pending (default value)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Revoke an issued credential"
      }
    },
    "/issue-credential/publish-revocations": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PublishRevocations"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10PublishRevocations"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Publish pending revocations to ledger"
      }
    },
    "/issue-credential/clear-pending-revocations": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V10PublishRevocations"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10ClearPendingRevocationsRequest"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Clear pending revocations"
      }
    },
    "/issue-credential/records/{cred_ex_id}/remove": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "tags": ["issue-credential"],
        "summary": "Remove an existing credential exchange record"
      }
    },
    "/issue-credential/records/{cred_ex_id}/problem-report": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "cred_ex_id",
            "required": true,
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string",
              "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V10CredentialProblemReportRequest"
              }
            }
          }
        },
        "tags": ["issue-credential"],
        "summary": "Send a problem report for credential exchange"
      }
    },
    "/credential/{credential_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Credential"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "description": "Credential identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["credentials"],
        "summary": "Fetch a credential from wallet by id"
      }
    },
    "/credential/mime-types/{credential_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttributeMimeTypesResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "description": "Credential identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["credentials"],
        "summary": "Get attribute MIME types from wallet"
      }
    },
    "/credential/{credential_id}/remove": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "description": "Credential identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["credentials"],
        "summary": "Remove a credential from the wallet by id"
      }
    },
    "/credentials": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialsList"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "count",
            "required": false,
            "description": "Maximum number to retrieve",
            "example": 10,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          },
          {
            "in": "query",
            "name": "start",
            "required": false,
            "description": "Start index",
            "example": 0,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            }
          },
          {
            "in": "query",
            "name": "wql",
            "required": false,
            "description": "(JSON) WQL query",
            "example": "{\"attr::name::value\": \"Alex\"}",
            "schema": {
              "type": "string",
              "pattern": "^{.*}$"
            }
          }
        ],
        "tags": ["credentials"],
        "summary": "Fetch credentials from wallet"
      }
    },
    "/ledger/register-nym": {
      "post": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID to register",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "verkey",
            "required": true,
            "description": "Verification key",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV",
            "schema": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$"
            }
          },
          {
            "in": "query",
            "name": "alias",
            "required": false,
            "description": "Alias",
            "example": "Barry",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": false,
            "description": "Role",
            "schema": {
              "type": "string",
              "enum": [
                "STEWARD",
                "TRUSTEE",
                "ENDORSER",
                "NETWORK_MONITOR",
                "reset"
              ]
            }
          }
        ],
        "tags": ["ledger"],
        "summary": "Send a NYM registration to the ledger."
      }
    },
    "/ledger/get-nym-role": {
      "get": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          }
        ],
        "tags": ["ledger"],
        "summary": "Get the role from the NYM registration of a public DID."
      }
    },
    "/ledger/rotate-public-did-keypair": {
      "patch": {
        "responses": {},
        "tags": ["ledger"],
        "summary": "Rotate key pair for public DID."
      }
    },
    "/ledger/did-verkey": {
      "get": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          }
        ],
        "tags": ["ledger"],
        "summary": "Get the verkey for a DID from the ledger."
      }
    },
    "/ledger/did-endpoint": {
      "get": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "endpoint_type",
            "required": false,
            "description": "Endpoint type of interest (default 'Endpoint')",
            "example": "Endpoint",
            "schema": {
              "type": "string",
              "enum": ["Endpoint", "Profile", "LinkedDomains"]
            }
          }
        ],
        "tags": ["ledger"],
        "summary": "Get the endpoint for a DID from the ledger."
      }
    },
    "/ledger/taa": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TAAResult"
                }
              }
            }
          }
        },
        "tags": ["ledger"],
        "summary": "Fetch the current transaction author agreement, if any"
      }
    },
    "/ledger/taa/accept": {
      "post": {
        "responses": {},
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TAAAccept"
              }
            }
          }
        },
        "tags": ["ledger"],
        "summary": "Accept the transaction author agreement"
      }
    },
    "/credential-definitions": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDefinitionSendResults"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialDefinitionSendRequest"
              }
            }
          }
        },
        "tags": ["credential-definition"],
        "summary": "Sends a credential definition to the ledger"
      }
    },
    "/credential-definitions/created": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDefinitionsCreatedResults"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "cred_def_id",
            "required": false,
            "description": "Credential definition id",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$"
            }
          },
          {
            "in": "query",
            "name": "issuer_did",
            "required": false,
            "description": "Issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "schema_id",
            "required": false,
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0",
            "schema": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$"
            }
          },
          {
            "in": "query",
            "name": "schema_issuer_did",
            "required": false,
            "description": "Schema issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "schema_name",
            "required": false,
            "description": "Schema name",
            "example": "membership",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "schema_version",
            "required": false,
            "description": "Schema version",
            "example": "1.0",
            "schema": {
              "type": "string",
              "pattern": "^[0-9.]+$"
            }
          }
        ],
        "tags": ["credential-definition"],
        "summary": "Search for matching credential definitions that agent originated"
      }
    },
    "/credential-definitions/{cred_def_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDefinitionGetResults"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_def_id",
            "required": true,
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$"
            }
          }
        ],
        "tags": ["credential-definition"],
        "summary": "Gets a credential definition from the ledger"
      }
    },
    "/schemas": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaSendResults"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SchemaSendRequest"
              }
            }
          }
        },
        "tags": ["schema"],
        "summary": "Sends a schema to the ledger"
      }
    },
    "/schemas/created": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemasCreatedResults"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "schema_id",
            "required": false,
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0",
            "schema": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$"
            }
          },
          {
            "in": "query",
            "name": "schema_issuer_did",
            "required": false,
            "description": "Schema issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "schema_name",
            "required": false,
            "description": "Schema name",
            "example": "membership",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "schema_version",
            "required": false,
            "description": "Schema version",
            "example": "1.0",
            "schema": {
              "type": "string",
              "pattern": "^[0-9.]+$"
            }
          }
        ],
        "tags": ["schema"],
        "summary": "Search for matching schema that agent originated"
      }
    },
    "/schemas/{schema_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaGetResults"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "schema_id",
            "required": true,
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]*|[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$"
            }
          }
        ],
        "tags": ["schema"],
        "summary": "Gets a schema from the ledger"
      }
    },
    "/revocation/create-registry": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegCreateResult"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevRegCreateRequest"
              }
            }
          }
        },
        "tags": ["revocation"],
        "summary": "Creates a new revocation registry"
      }
    },
    "/revocation/registries/created": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegsCreated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "cred_def_id",
            "required": false,
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "description": "Revocation registry state",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "generated",
                "published",
                "staged",
                "active",
                "full"
              ]
            }
          }
        ],
        "tags": ["revocation"],
        "summary": "Search for matching revocation registries that current agent created"
      }
    },
    "/revocation/registry/{rev_reg_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegCreateResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "rev_reg_id",
            "required": true,
            "description": "Revocation Registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)"
            }
          }
        ],
        "tags": ["revocation"],
        "summary": "Get revocation registry by revocation registry id"
      },
      "patch": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegCreateResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "rev_reg_id",
            "required": true,
            "description": "Revocation Registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevRegUpdateTailsFileUri"
              }
            }
          }
        },
        "tags": ["revocation"],
        "summary": "Update revocation registry with new public URI to the tails file."
      }
    },
    "/revocation/active-registry/{cred_def_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegCreateResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "cred_def_id",
            "required": true,
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$"
            }
          }
        ],
        "tags": ["revocation"],
        "summary": "Get an active revocation registry by credential definition id"
      }
    },
    "/revocation/registry/{rev_reg_id}/tails-file": {
      "get": {
        "responses": {
          "200": {
            "description": "tails file",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "rev_reg_id",
            "required": true,
            "description": "Revocation Registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)"
            }
          }
        ],
        "tags": ["revocation"],
        "summary": "Download the tails file of revocation registry"
      }
    },
    "/revocation/registry/{rev_reg_id}/publish": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevRegCreateResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "rev_reg_id",
            "required": true,
            "description": "Revocation Registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
            "schema": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)"
            }
          }
        ],
        "tags": ["revocation"],
        "summary": "Publish a given revocation registry"
      }
    },
    "/wallet/did": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DIDList"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": false,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          },
          {
            "in": "query",
            "name": "public",
            "required": false,
            "description": "Whether DID is public",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "verkey",
            "required": false,
            "description": "Verification key of interest",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV",
            "schema": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$"
            }
          }
        ],
        "tags": ["wallet"],
        "summary": "List wallet DIDs"
      }
    },
    "/wallet/did/create": {
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DIDResult"
                }
              }
            }
          }
        },
        "tags": ["wallet"],
        "summary": "Create a local DID"
      }
    },
    "/wallet/did/public": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DIDResult"
                }
              }
            }
          }
        },
        "tags": ["wallet"],
        "summary": "Fetch the current public DID"
      },
      "post": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DIDResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          }
        ],
        "tags": ["wallet"],
        "summary": "Assign the current public DID"
      }
    },
    "/wallet/set-did-endpoint": {
      "post": {
        "responses": {},
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DIDEndpointWithType"
              }
            }
          }
        },
        "tags": ["wallet"],
        "summary": "Update endpoint in wallet and, if public, on ledger"
      }
    },
    "/wallet/get-did-endpoint": {
      "get": {
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DIDEndpoint"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          }
        ],
        "tags": ["wallet"],
        "summary": "Query DID endpoint in wallet"
      }
    },
    "/wallet/did/local/rotate-keypair": {
      "patch": {
        "responses": {},
        "parameters": [
          {
            "in": "query",
            "name": "did",
            "required": true,
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv",
            "schema": {
              "type": "string",
              "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$"
            }
          }
        ],
        "tags": ["wallet"],
        "summary": "Rotate keypair for a local non-public DID"
      }
    }
  },
  "info": {
    "title": "Workshop Acme Agent",
    "version": "v0.5.4"
  },
  "tags": [
    {
      "name": "action-menu",
      "description": "Menu interaction over connection"
    },
    {
      "name": "basicmessage",
      "description": "Simple messaging",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/527849ec3aa2a8fd47a7bb6c57f918ff8bcb5e8c/features/0095-basic-message"
      }
    },
    {
      "name": "connection",
      "description": "Connection management",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/9b0aaa39df7e8bd434126c4b33c097aae78d65bf/features/0160-connection-protocol"
      }
    },
    {
      "name": "credential-definition",
      "description": "Credential definition operations",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/indy-node/blob/master/design/anoncreds.md#cred_def"
      }
    },
    {
      "name": "credentials",
      "description": "Holder credential management",
      "externalDocs": {
        "description": "Overview",
        "url": "https://w3c.github.io/vc-data-model/#credentials"
      }
    },
    {
      "name": "introduction",
      "description": "Introduction of known parties"
    },
    {
      "name": "issue-credential",
      "description": "Credential issue, revocation",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/bb42a6c35e0d5543718fb36dd099551ab192f7b0/features/0036-issue-credential"
      }
    },
    {
      "name": "ledger",
      "description": "Interaction with ledger",
      "externalDocs": {
        "description": "Overview",
        "url": "https://hyperledger-indy.readthedocs.io/projects/plenum/en/latest/storage.html#ledger"
      }
    },
    {
      "name": "out-of-band",
      "description": "Out-of-band connections",
      "externalDocs": {
        "description": "Design",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/2da7fc4ee043effa3a9960150e7ba8c9a4628b68/features/0434-outofband"
      }
    },
    {
      "name": "present-proof",
      "description": "Proof presentation",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/4fae574c03f9f1013db30bf2c0c676b1122f7149/features/0037-present-proof"
      }
    },
    {
      "name": "revocation",
      "description": "Revocation registry management",
      "externalDocs": {
        "description": "Overview",
        "url": "https://github.com/hyperledger/indy-hipe/tree/master/text/0011-cred-revocation"
      }
    },
    {
      "name": "schema",
      "description": "Schema operations",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/indy-node/blob/master/design/anoncreds.md#schema"
      }
    },
    {
      "name": "server",
      "description": "Feature discovery",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/9b7ab9814f2e7d1108f74aca6f3d2e5d62899473/features/0031-discover-features"
      }
    },
    {
      "name": "trustping",
      "description": "Trust-ping over connection",
      "externalDocs": {
        "description": "Specification",
        "url": "https://github.com/hyperledger/aries-rfcs/tree/527849ec3aa2a8fd47a7bb6c57f918ff8bcb5e8c/features/0048-trust-ping"
      }
    },
    {
      "name": "wallet",
      "description": "DID and tag policy management",
      "externalDocs": {
        "description": "Design",
        "url": "https://github.com/hyperledger/indy-sdk/tree/master/docs/design/003-wallet-storage"
      }
    }
  ],
  "components": {
    "requestBodies": {
      "V10PresentationSendRequestRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/V10PresentationSendRequestRequest"
            }
          }
        }
      }
    },
    "schemas": {
      "AdminModules": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "description": "List of admin modules",
            "items": {
              "type": "string",
              "description": "admin module"
            }
          }
        }
      },
      "AdminStatus": {
        "type": "object",
        "properties": {}
      },
      "AdminStatusLiveliness": {
        "type": "object",
        "properties": {
          "alive": {
            "type": "boolean",
            "description": "Liveliness status",
            "example": true
          }
        }
      },
      "AdminStatusReadiness": {
        "type": "object",
        "properties": {
          "ready": {
            "type": "boolean",
            "description": "Readiness status",
            "example": true
          }
        }
      },
      "AttachmentDef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "InvitationCreateRequest": {
        "type": "object",
        "properties": {
          "use_public_did": {
            "type": "boolean"
          },
          "include_handshake": {
            "type": "boolean"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentDef"
            }
          }
        }
      },
      "AttachDecoratorDataJWSHeader": {
        "type": "object",
        "properties": {
          "kid": {
            "type": "string",
            "pattern": "^did:(?:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+|sov:[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}(;.*)?(\\?.*)?#.+)$",
            "description": "Key identifier, in W3C did:key or DID URL format",
            "example": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
          }
        },
        "required": ["kid"]
      },
      "AttachDecoratorData1JWS": {
        "type": "object",
        "properties": {
          "header": {
            "$ref": "#/components/schemas/AttachDecoratorDataJWSHeader"
          },
          "protected": {
            "type": "string",
            "pattern": "^[-_a-zA-Z0-9]*$",
            "description": "protected JWS header",
            "example": "ey4uLn0"
          },
          "signature": {
            "type": "string",
            "pattern": "^[-_a-zA-Z0-9]*$",
            "description": "signature",
            "example": "ey4uLn0"
          }
        },
        "required": ["header", "signature"]
      },
      "AttachDecoratorDataJWS": {
        "type": "object",
        "properties": {
          "header": {
            "$ref": "#/components/schemas/AttachDecoratorDataJWSHeader"
          },
          "protected": {
            "type": "string",
            "pattern": "^[-_a-zA-Z0-9]*$",
            "description": "protected JWS header",
            "example": "ey4uLn0"
          },
          "signature": {
            "type": "string",
            "pattern": "^[-_a-zA-Z0-9]*$",
            "description": "signature",
            "example": "ey4uLn0"
          },
          "signatures": {
            "type": "array",
            "description": "List of signatures",
            "items": {
              "$ref": "#/components/schemas/AttachDecoratorData1JWS"
            }
          }
        }
      },
      "AttachDecoratorData": {
        "type": "object",
        "properties": {
          "base64": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9+/]*={0,2}$",
            "description": "Base64-encoded data",
            "example": "ey4uLn0="
          },
          "jws": {
            "description": "Detached Java Web Signature",
            "allOf": [
              {
                "$ref": "#/components/schemas/AttachDecoratorDataJWS"
              }
            ]
          },
          "json": {
            "type": "object",
            "description": "JSON-serialized data",
            "example": "{\"sample\": \"content\"}"
          },
          "links": {
            "type": "array",
            "description": "List of hypertext links to data",
            "items": {
              "type": "string",
              "example": "https://link.to/data"
            }
          },
          "sha256": {
            "type": "string",
            "pattern": "^[a-fA-F0-9+/]{64}$",
            "description": "SHA256 hash (binhex encoded) of content",
            "example": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
          }
        }
      },
      "AttachDecorator": {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "description": "Attachment identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "mime-type": {
            "type": "string",
            "description": "MIME type",
            "example": "image/png"
          },
          "filename": {
            "type": "string",
            "description": "File name",
            "example": "IMG1092348.png"
          },
          "byte_count": {
            "type": "integer",
            "format": "int32",
            "description": "Byte count of data included by reference",
            "example": 1234
          },
          "lastmod_time": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Hint regarding last modification datetime, in ISO-8601 format",
            "example": "2020-10-06 09:01:40Z"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description of content",
            "example": "view from doorway, facing east, with lights off"
          },
          "data": {
            "$ref": "#/components/schemas/AttachDecoratorData"
          }
        },
        "required": ["data"]
      },
      "Service": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": ""
          },
          "type": {
            "type": "string",
            "description": ""
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "recipientKeys": {
            "type": "array",
            "description": "List of recipient keys",
            "items": {
              "type": "string",
              "pattern": "^did:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$",
              "description": "Recipient public key",
              "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH"
            }
          },
          "routingKeys": {
            "type": "array",
            "description": "List of routing keys",
            "items": {
              "type": "string",
              "pattern": "^did:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$",
              "description": "Routing key",
              "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH"
            }
          },
          "serviceEndpoint": {
            "type": "string",
            "description": "Service endpoint at which to reach this agent",
            "example": "http://192.168.56.101:8020"
          }
        },
        "required": ["id", "type"]
      },
      "InvitationReceiveRequest": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "readOnly": true,
            "description": "Message type",
            "example": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/my-family/1.0/my-message-type"
          },
          "service_dids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "handshake_protocols": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "service": {},
          "label": {
            "type": "string",
            "description": "Optional label",
            "example": "Bob"
          },
          "request~attach": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachDecorator"
            }
          },
          "service_blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            }
          },
          "@id": {
            "type": "string",
            "description": "Message identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          }
        },
        "required": ["request~attach"]
      },
      "V10PresentationExchange": {
        "type": "object",
        "properties": {
          "presentation_request_dict": {
            "type": "object",
            "description": "Serialized presentation request message"
          },
          "initiator": {
            "type": "string",
            "enum": ["self", "external"],
            "description": "Present-proof exchange initiator: self or external",
            "example": "self"
          },
          "presentation_exchange_id": {
            "type": "string",
            "description": "Presentation exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "role": {
            "type": "string",
            "enum": ["prover", "verifier"],
            "description": "Present-proof exchange role: prover or verifier",
            "example": "prover"
          },
          "state": {
            "type": "string",
            "description": "Present-proof exchange state",
            "example": "verified"
          },
          "connection_id": {
            "type": "string",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "presentation_request": {
            "type": "object",
            "description": "(Indy) presentation request (also known as proof request)"
          },
          "trace": {
            "type": "boolean",
            "description": "Record trace information, based on agent configuration"
          },
          "presentation": {
            "type": "object",
            "description": "(Indy) presentation (also known as proof)"
          },
          "thread_id": {
            "type": "string",
            "description": "Thread identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "presentation_proposal_dict": {
            "type": "object",
            "description": "Serialized presentation proposal message"
          },
          "error_msg": {
            "type": "string",
            "description": "Error message",
            "example": "Invalid structure"
          },
          "auto_present": {
            "type": "boolean",
            "description": "Prover choice to auto-present proof as verifier requests",
            "example": false
          },
          "created_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of record creation",
            "example": "2020-10-06 09:01:40Z"
          },
          "verified": {
            "type": "string",
            "enum": ["true", "false"],
            "description": "Whether presentation is verified: true or false",
            "example": "true"
          },
          "updated_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of last record update",
            "example": "2020-10-06 09:01:40Z"
          }
        }
      },
      "V10PresentationExchangeList": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "Aries RFC 37 v1.0 presentation exchange records",
            "items": {
              "$ref": "#/components/schemas/V10PresentationExchange"
            }
          }
        }
      },
      "PresAttrSpec": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Attribute name",
            "example": "favourite_drink"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "mime-type": {
            "type": "string",
            "description": "MIME type (default null)",
            "example": "image/jpeg"
          },
          "value": {
            "type": "string",
            "description": "Attribute value",
            "example": "martini"
          },
          "referent": {
            "type": "string",
            "description": "Credential referent",
            "example": "0"
          }
        },
        "required": ["name"]
      },
      "PresPredSpec": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Attribute name",
            "example": "high_score"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "predicate": {
            "type": "string",
            "enum": ["<", "<=", ">=", ">"],
            "description": "Predicate type ('<', '<=', '>=', or '>')",
            "example": ">="
          },
          "threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Threshold value"
          }
        },
        "required": ["name", "predicate", "threshold"]
      },
      "PresentationPreview": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "Message type identifier",
            "example": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/present-proof/1.0/presentation-preview"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PresAttrSpec"
            }
          },
          "predicates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PresPredSpec"
            }
          }
        },
        "required": ["attributes", "predicates"]
      },
      "V10PresentationProposalRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          },
          "connection_id": {
            "type": "string",
            "format": "uuid",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "presentation_proposal": {
            "$ref": "#/components/schemas/PresentationPreview"
          },
          "auto_present": {
            "type": "boolean",
            "description": "Whether to respond automatically to presentation requests, building and presenting requested proof"
          }
        },
        "required": ["connection_id", "presentation_proposal"]
      },
      "IndyProofReqPredSpecRestrictions": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "schema_issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Schema issuer (origin) DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Credential issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "schema_name": {
            "type": "string",
            "example": "transcript",
            "description": "Schema name"
          }
        }
      },
      "IndyProofReqNonRevoked": {
        "type": "object",
        "properties": {
          "to": {
            "type": "integer",
            "format": "int32",
            "minimum": -9223372036854776000,
            "maximum": 9223372036854776000,
            "description": "Latest epoch of interest for non-revocation proof",
            "example": 1601974900
          },
          "from": {
            "type": "integer",
            "format": "int32",
            "minimum": -9223372036854776000,
            "maximum": 9223372036854776000,
            "description": "Earliest epoch of interest for non-revocation proof",
            "example": 1601974900
          }
        }
      },
      "IndyProofReqPredSpec": {
        "type": "object",
        "properties": {
          "p_value": {
            "type": "integer",
            "format": "int32",
            "description": "Threshold value"
          },
          "restrictions": {
            "type": "array",
            "description": "If present, credential must satisfy one of given restrictions",
            "items": {
              "$ref": "#/components/schemas/IndyProofReqPredSpecRestrictions"
            }
          },
          "name": {
            "type": "string",
            "example": "index",
            "description": "Attribute name"
          },
          "p_type": {
            "type": "string",
            "enum": ["<", "<=", ">=", ">"],
            "description": "Predicate type ('<', '<=', '>=', or '>')",
            "example": ">="
          },
          "non_revoked": {
            "$ref": "#/components/schemas/IndyProofReqNonRevoked"
          }
        },
        "required": ["name", "p_type", "p_value"]
      },
      "IndyProofReqAttrSpec": {
        "type": "object",
        "properties": {
          "non_revoked": {
            "$ref": "#/components/schemas/IndyProofReqNonRevoked"
          },
          "name": {
            "type": "string",
            "example": "favouriteDrink",
            "description": "Attribute name"
          },
          "restrictions": {
            "type": "array",
            "description": "If present, credential must satisfy one of given restrictions: specify schema_id, schema_issuer_did, schema_name, schema_version, issuer_did, cred_def_id, and/or attr::<attribute-name>::value where <attribute-name> represents a credential attribute name",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string",
                "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
              }
            }
          },
          "names": {
            "type": "array",
            "description": "Attribute name group",
            "items": {
              "type": "string",
              "example": "age"
            }
          }
        }
      },
      "IndyProofRequest": {
        "type": "object",
        "properties": {
          "requested_predicates": {
            "type": "object",
            "description": "Requested predicate specifications of proof request",
            "additionalProperties": {
              "$ref": "#/components/schemas/IndyProofReqPredSpec"
            }
          },
          "requested_attributes": {
            "type": "object",
            "description": "Requested attribute specifications of proof request",
            "additionalProperties": {
              "$ref": "#/components/schemas/IndyProofReqAttrSpec"
            }
          },
          "version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Proof request version",
            "example": "1.0"
          },
          "name": {
            "type": "string",
            "description": "Proof request name",
            "example": "Proof request"
          },
          "nonce": {
            "type": "string",
            "description": "Nonce",
            "example": "1234567890"
          },
          "non_revoked": {
            "$ref": "#/components/schemas/IndyProofReqNonRevoked"
          }
        },
        "required": ["requested_attributes", "requested_predicates"]
      },
      "V10PresentationCreateRequestRequest": {
        "type": "object",
        "properties": {
          "proof_request": {
            "$ref": "#/components/schemas/IndyProofRequest"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          }
        },
        "required": ["proof_request"]
      },
      "V10PresentationSendRequestRequest": {
        "type": "object",
        "properties": {
          "proof_request": {
            "$ref": "#/components/schemas/IndyProofRequest"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "connection_id": {
            "type": "string",
            "format": "uuid",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          }
        },
        "required": ["connection_id", "proof_request"]
      },
      "IndyRequestedCredsRequestedAttr": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int32",
            "minimum": -9223372036854776000,
            "maximum": 9223372036854776000,
            "description": "Epoch timestamp of interest for non-revocation proof",
            "example": 1601974900
          },
          "revealed": {
            "type": "boolean",
            "description": "Whether to reveal attribute in proof"
          },
          "cred_id": {
            "type": "string",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "description": "Wallet credential identifier (typically but not necessarily a UUID)"
          }
        },
        "required": ["cred_id", "revealed"]
      },
      "IndyRequestedCredsRequestedPred": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int32",
            "minimum": -9223372036854776000,
            "maximum": 9223372036854776000,
            "description": "Epoch timestamp of interest for non-revocation proof",
            "example": 1601974900
          },
          "cred_id": {
            "type": "string",
            "description": "Wallet credential identifier (typically but not necessarily a UUID)",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          }
        },
        "required": ["cred_id"]
      },
      "V10PresentationRequest": {
        "type": "object",
        "properties": {
          "requested_attributes": {
            "type": "object",
            "description": "Nested object mapping proof request attribute referents to requested-attribute specifiers",
            "additionalProperties": {
              "$ref": "#/components/schemas/IndyRequestedCredsRequestedAttr"
            }
          },
          "self_attested_attributes": {
            "type": "object",
            "description": "Self-attested attributes to build into proof",
            "additionalProperties": {
              "type": "string",
              "example": "self_attested_value",
              "description": "Self-attested attribute values to use in requested-credentials structure for proof construction"
            }
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "requested_predicates": {
            "type": "object",
            "description": "Nested object mapping proof request predicate referents to requested-predicate specifiers",
            "additionalProperties": {
              "$ref": "#/components/schemas/IndyRequestedCredsRequestedPred"
            }
          }
        },
        "required": [
          "requested_attributes",
          "requested_predicates",
          "self_attested_attributes"
        ]
      },
      "SendMessage": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "Message content",
            "example": "Hello"
          }
        }
      },
      "PerformRequest": {
        "type": "object",
        "properties": {
          "params": {
            "type": "object",
            "description": "Input parameter values",
            "additionalProperties": {
              "type": "string",
              "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
            }
          },
          "name": {
            "type": "string",
            "description": "Menu option name",
            "example": "Query"
          }
        }
      },
      "MenuFormParam": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Menu parameter name",
            "example": "delay"
          },
          "title": {
            "type": "string",
            "description": "Menu parameter title",
            "example": "Delay in seconds"
          },
          "default": {
            "type": "string",
            "description": "Default parameter value",
            "example": "0"
          },
          "description": {
            "type": "string",
            "description": "Additional descriptive text for menu form parameter",
            "example": "Delay in seconds before starting"
          },
          "type": {
            "type": "string",
            "description": "Menu form parameter input type",
            "example": "int"
          },
          "required": {
            "type": "boolean",
            "description": "Whether parameter is required",
            "example": "False"
          }
        },
        "required": ["name", "title"]
      },
      "MenuForm": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Menu form title",
            "example": "Preferences"
          },
          "description": {
            "type": "string",
            "description": "Additional descriptive text for menu form",
            "example": "Window preference settings"
          },
          "params": {
            "type": "array",
            "description": "List of form parameters",
            "items": {
              "$ref": "#/components/schemas/MenuFormParam"
            }
          },
          "submit-label": {
            "type": "string",
            "description": "Alternative label for form submit button",
            "example": "Send"
          }
        }
      },
      "MenuOption": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Menu option name (unique identifier)",
            "example": "window_prefs"
          },
          "title": {
            "type": "string",
            "description": "Menu option title",
            "example": "Window Preferences"
          },
          "description": {
            "type": "string",
            "description": "Additional descriptive text for menu option",
            "example": "Window display preferences"
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether to show option as disabled",
            "example": "False"
          },
          "form": {
            "$ref": "#/components/schemas/MenuForm"
          }
        },
        "required": ["name", "title"]
      },
      "MenuJson": {
        "type": "object",
        "properties": {
          "errormsg": {
            "type": "string",
            "description": "Optional error message to display in menu header",
            "example": "Error: item not present"
          },
          "description": {
            "type": "string",
            "description": "Introductory text for the menu",
            "example": "User preferences for window settings"
          },
          "options": {
            "type": "array",
            "description": "List of menu options",
            "items": {
              "$ref": "#/components/schemas/MenuOption"
            }
          },
          "title": {
            "type": "string",
            "description": "Menu title",
            "example": "My Menu"
          }
        },
        "required": ["options"]
      },
      "SendMenu": {
        "type": "object",
        "properties": {
          "menu": {
            "description": "Menu to send to connection",
            "allOf": [
              {
                "$ref": "#/components/schemas/MenuJson"
              }
            ]
          }
        },
        "required": ["menu"]
      },
      "QueryResult": {
        "type": "object",
        "properties": {
          "results": {
            "type": "object",
            "description": "Query results keyed by protocol",
            "additionalProperties": {
              "type": "object",
              "description": "Protocol descriptor"
            }
          }
        }
      },
      "PingRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Comment for the ping message",
            "nullable": true
          }
        }
      },
      "PingRequestResponse": {
        "type": "object",
        "properties": {
          "thread_id": {
            "type": "string",
            "description": "Thread ID of the ping message"
          }
        }
      },
      "ConnectionRecord": {
        "type": "object",
        "properties": {
          "initiator": {
            "type": "string",
            "enum": ["self", "external", "multiuse"],
            "description": "Connection initiator: self, external, or multiuse",
            "example": "self"
          },
          "invitation_key": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
            "description": "Public key for connection",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
          },
          "routing_state": {
            "type": "string",
            "description": "Routing state of connection",
            "example": "active"
          },
          "my_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Our DID for connection",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "state": {
            "type": "string",
            "description": "Current record state",
            "example": "active"
          },
          "connection_id": {
            "type": "string",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "request_id": {
            "type": "string",
            "description": "Connection request identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "their_role": {
            "type": "string",
            "description": "Their assigned role for connection",
            "example": "Point of contact"
          },
          "their_label": {
            "type": "string",
            "description": "Their label for connection",
            "example": "Bob"
          },
          "alias": {
            "type": "string",
            "description": "Optional alias to apply to connection for later use",
            "example": "Bob, providing quotes"
          },
          "error_msg": {
            "type": "string",
            "description": "Error message",
            "example": "No DIDDoc provided; cannot connect to public DID"
          },
          "inbound_connection_id": {
            "type": "string",
            "description": "Inbound routing connection id to use",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "accept": {
            "type": "string",
            "enum": ["manual", "auto"],
            "description": "Connection acceptance: manual or auto",
            "example": "auto"
          },
          "invitation_mode": {
            "type": "string",
            "enum": ["once", "multi", "static"],
            "description": "Invitation mode: once, multi, or static",
            "example": "once"
          },
          "their_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Their DID for connection",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "created_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of record creation",
            "example": "2020-10-06 09:01:40Z"
          },
          "updated_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of last record update",
            "example": "2020-10-06 09:01:40Z"
          }
        }
      },
      "ConnectionList": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "List of connection records",
            "items": {
              "$ref": "#/components/schemas/ConnectionRecord"
            }
          }
        }
      },
      "ConnectionStaticRequest": {
        "type": "object",
        "properties": {
          "their_seed": {
            "type": "string",
            "description": "Seed to use for the remote DID"
          },
          "their_verkey": {
            "type": "string",
            "description": "Remote verification key"
          },
          "alias": {
            "type": "string",
            "description": "Alias to assign to this connection"
          },
          "my_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Local DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "their_role": {
            "type": "string",
            "description": "Role to assign to this connection",
            "example": "Point of contact"
          },
          "their_label": {
            "type": "string",
            "description": "Label to assign to this connection"
          },
          "their_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Remote DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "their_endpoint": {
            "type": "string",
            "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$",
            "description": "URL endpoint for the other party",
            "example": "https://myhost:8021"
          },
          "my_seed": {
            "type": "string",
            "description": "Seed to use for the local DID"
          }
        }
      },
      "ConnectionStaticResult": {
        "type": "object",
        "properties": {
          "their_verkey": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
            "description": "Remote verification key",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
          },
          "my_endpoint": {
            "type": "string",
            "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$",
            "description": "My URL endpoint",
            "example": "https://myhost:8021"
          },
          "my_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Local DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "record": {
            "$ref": "#/components/schemas/ConnectionRecord"
          },
          "their_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Remote DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "mv_verkey": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
            "description": "My verification key",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
          }
        },
        "required": [
          "mv_verkey",
          "my_did",
          "my_endpoint",
          "record",
          "their_did",
          "their_verkey"
        ]
      },
      "ConnectionInvitation": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "readOnly": true,
            "description": "Message type",
            "example": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/my-family/1.0/my-message-type"
          },
          "serviceEndpoint": {
            "type": "string",
            "description": "Service endpoint at which to reach this agent",
            "example": "http://192.168.56.101:8020"
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "DID for connection invitation",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "recipientKeys": {
            "type": "array",
            "description": "List of recipient keys",
            "items": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
              "description": "Recipient public key",
              "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
            }
          },
          "routingKeys": {
            "type": "array",
            "description": "List of routing keys",
            "items": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
              "description": "Routing key",
              "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
            }
          },
          "label": {
            "type": "string",
            "description": "Optional label for connection",
            "example": "Bob"
          },
          "@id": {
            "type": "string",
            "description": "Message identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "imageUrl": {
            "type": "string",
            "format": "url",
            "description": "Optional image URL for connection invitation",
            "example": "http://192.168.56.101/img/logo.jpg",
            "nullable": true
          }
        }
      },
      "InvitationResult": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "invitation": {
            "$ref": "#/components/schemas/ConnectionInvitation"
          },
          "invitation_url": {
            "type": "string",
            "description": "Invitation URL",
            "example": "http://192.168.56.101:8020/invite?c_i=eyJAdHlwZSI6Li4ufQ=="
          }
        }
      },
      "ReceiveInvitationRequest": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "readOnly": true,
            "description": "Message type",
            "example": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/my-family/1.0/my-message-type"
          },
          "serviceEndpoint": {
            "type": "string",
            "description": "Service endpoint at which to reach this agent",
            "example": "http://192.168.56.101:8020"
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "DID for connection invitation",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "recipientKeys": {
            "type": "array",
            "description": "List of recipient keys",
            "items": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
              "description": "Recipient public key",
              "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
            }
          },
          "routingKeys": {
            "type": "array",
            "description": "List of routing keys",
            "items": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
              "description": "Routing key",
              "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
            }
          },
          "label": {
            "type": "string",
            "description": "Optional label for connection",
            "example": "Bob"
          },
          "@id": {
            "type": "string",
            "description": "Message identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "imageUrl": {
            "type": "string",
            "format": "url",
            "description": "Optional image URL for connection invitation",
            "example": "http://192.168.56.101/img/logo.jpg",
            "nullable": true
          }
        }
      },
      "V10CredentialExchange": {
        "type": "object",
        "properties": {
          "initiator": {
            "type": "string",
            "enum": ["self", "external"],
            "description": "Issue-credential exchange initiator: self or external",
            "example": "self"
          },
          "credential_request_metadata": {
            "type": "object",
            "description": "(Indy) credential request metadata"
          },
          "auto_issue": {
            "type": "boolean",
            "description": "Issuer choice to issue to request in this credential exchange",
            "example": false
          },
          "credential_exchange_id": {
            "type": "string",
            "description": "Credential exchange identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "updated_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of last record update",
            "example": "2020-10-06 09:01:40Z"
          },
          "credential_request": {
            "type": "object",
            "description": "(Indy) credential request"
          },
          "raw_credential": {
            "type": "object",
            "description": "Credential as received, prior to storage in holder wallet"
          },
          "credential_proposal_dict": {
            "type": "object",
            "description": "Serialized credential proposal message"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "revocation_id": {
            "type": "string",
            "description": "Credential identifier within revocation registry"
          },
          "credential_offer_dict": {
            "type": "object",
            "description": "Serialized credential offer message"
          },
          "created_at": {
            "type": "string",
            "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$",
            "description": "Time of record creation",
            "example": "2020-10-06 09:01:40Z"
          },
          "state": {
            "type": "string",
            "description": "Issue-credential exchange state",
            "example": "credential_acked"
          },
          "auto_remove": {
            "type": "boolean",
            "description": "Issuer choice to remove this credential exchange record when complete",
            "example": false
          },
          "auto_offer": {
            "type": "boolean",
            "description": "Holder choice to accept offer in this credential exchange",
            "example": false
          },
          "error_msg": {
            "type": "string",
            "description": "Error message",
            "example": "credential definition identifier is not set in proposal"
          },
          "credential": {
            "type": "object",
            "description": "Credential as stored"
          },
          "role": {
            "type": "string",
            "enum": ["holder", "issuer"],
            "description": "Issue-credential exchange role: holder or issuer",
            "example": "issuer"
          },
          "connection_id": {
            "type": "string",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "parent_thread_id": {
            "type": "string",
            "description": "Parent thread identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "credential_definition_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "trace": {
            "type": "boolean",
            "description": "Record trace information, based on agent configuration"
          },
          "thread_id": {
            "type": "string",
            "description": "Thread identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "credential_id": {
            "type": "string",
            "description": "Credential identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "revoc_reg_id": {
            "type": "string",
            "description": "Revocation registry identifier"
          },
          "credential_offer": {
            "type": "object",
            "description": "(Indy) credential offer"
          }
        }
      },
      "V10CredentialExchangeListResult": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "Aries#0036 v1.0 credential exchange records",
            "items": {
              "$ref": "#/components/schemas/V10CredentialExchange"
            }
          }
        }
      },
      "CredAttrSpec": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Attribute name",
            "example": "favourite_drink"
          },
          "mime-type": {
            "type": "string",
            "description": "MIME type: omit for (null) default",
            "example": "image/jpeg",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "Attribute value: base64-encode if MIME type is present",
            "example": "martini"
          }
        },
        "required": ["name", "value"]
      },
      "CredentialPreview": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "Message type identifier",
            "example": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/1.0/credential-preview"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredAttrSpec"
            }
          }
        },
        "required": ["attributes"]
      },
      "V10CredentialCreate": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          },
          "credential_proposal": {
            "$ref": "#/components/schemas/CredentialPreview"
          },
          "schema_version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "auto_remove": {
            "type": "boolean",
            "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "schema_issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Schema issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Credential issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "schema_name": {
            "type": "string",
            "description": "Schema name",
            "example": "preferences"
          }
        },
        "required": ["credential_proposal"]
      },
      "V10CredentialProposalRequestMand": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          },
          "credential_proposal": {
            "$ref": "#/components/schemas/CredentialPreview"
          },
          "connection_id": {
            "type": "string",
            "format": "uuid",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "schema_version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "auto_remove": {
            "type": "boolean",
            "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "schema_issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Schema issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Credential issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "schema_name": {
            "type": "string",
            "description": "Schema name",
            "example": "preferences"
          }
        },
        "required": ["connection_id", "credential_proposal"]
      },
      "V10CredentialProposalRequestOpt": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          },
          "credential_proposal": {
            "$ref": "#/components/schemas/CredentialPreview"
          },
          "connection_id": {
            "type": "string",
            "format": "uuid",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "schema_version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "auto_remove": {
            "type": "boolean",
            "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "schema_issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Schema issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "issuer_did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "Credential issuer DID",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "schema_name": {
            "type": "string",
            "description": "Schema name",
            "example": "preferences"
          }
        },
        "required": ["connection_id"]
      },
      "V10CredentialOfferRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          },
          "connection_id": {
            "type": "string",
            "format": "uuid",
            "description": "Connection identifier",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "auto_remove": {
            "type": "boolean",
            "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)"
          },
          "trace": {
            "type": "boolean",
            "description": "Whether to trace event (default false)",
            "example": false
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "credential_preview": {
            "$ref": "#/components/schemas/CredentialPreview"
          },
          "auto_issue": {
            "type": "boolean",
            "description": "Whether to respond automatically to credential requests, creating and issuing requested credentials"
          }
        },
        "required": ["connection_id", "cred_def_id", "credential_preview"]
      },
      "V10CredentialIssueRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Human-readable comment",
            "nullable": true
          }
        }
      },
      "V10CredentialStoreRequest": {
        "type": "object",
        "properties": {
          "credential_id": {
            "type": "string"
          }
        }
      },
      "V10PublishRevocations": {
        "type": "object",
        "properties": {
          "rrid2crid": {
            "type": "object",
            "description": "Credential revocation ids by revocation registry id",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[1-9][0-9]*$",
                "description": "Credential revocation identifier",
                "example": "12345"
              }
            }
          }
        }
      },
      "V10ClearPendingRevocationsRequest": {
        "type": "object",
        "properties": {
          "purge": {
            "type": "object",
            "description": "Credential revocation ids by revocation registry id: omit for all, specify null or empty list for all pending per revocation registry",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[1-9][0-9]*$",
                "description": "Credential revocation identifier",
                "example": "12345"
              }
            }
          }
        }
      },
      "V10CredentialProblemReportRequest": {
        "type": "object",
        "properties": {
          "explain_ltxt": {
            "type": "string"
          }
        },
        "required": ["explain_ltxt"]
      },
      "RawEncCredAttr": {
        "type": "object",
        "properties": {
          "raw": {
            "type": "string",
            "description": "Raw value",
            "example": "Alex"
          },
          "encoded": {
            "type": "string",
            "description": "(Numeric string) encoded value",
            "example": "412821674062189604125602903860586582569826459817431467861859655321"
          }
        }
      },
      "RevReg": {
        "type": "object",
        "properties": {
          "accum": {
            "type": "string",
            "description": "Revocation registry accumulator state",
            "example": "21 136D54EA439FC26F03DB4b812 21 123DE9F624B86823A00D ..."
          }
        }
      },
      "Witness": {
        "type": "object",
        "properties": {
          "omega": {
            "type": "string",
            "description": "Revocation registry witness omega state",
            "example": "21 129EA8716C921058BB91826FD 21 8F19B91313862FE916C0 ..."
          }
        }
      },
      "Credential": {
        "type": "object",
        "properties": {
          "signature": {
            "type": "object",
            "description": "Digital signature"
          },
          "values": {
            "type": "object",
            "description": "Attribute names mapped to their raw and encoded values",
            "additionalProperties": {
              "$ref": "#/components/schemas/RawEncCredAttr"
            }
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "cred_def_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "rev_reg": {
            "$ref": "#/components/schemas/RevReg"
          },
          "signature_correctness_proof": {
            "type": "object",
            "description": "Signature correctness proof"
          },
          "witness": {
            "$ref": "#/components/schemas/Witness"
          },
          "rev_reg_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)",
            "description": "Revocation registry identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0"
          }
        }
      },
      "AttributeMimeTypesResult": {
        "type": "object",
        "properties": {}
      },
      "CredentialsList": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Credential"
            }
          }
        }
      },
      "TAARecord": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "digest": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "AMLRecord": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "amlContext": {
            "type": "string"
          },
          "aml": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "TAAAcceptance": {
        "type": "object",
        "properties": {
          "time": {
            "type": "integer",
            "format": "int32"
          },
          "mechanism": {
            "type": "string"
          }
        }
      },
      "TAAInfo": {
        "type": "object",
        "properties": {
          "taa_record": {
            "$ref": "#/components/schemas/TAARecord"
          },
          "taa_required": {
            "type": "boolean"
          },
          "aml_record": {
            "$ref": "#/components/schemas/AMLRecord"
          },
          "taa_accepted": {
            "$ref": "#/components/schemas/TAAAcceptance"
          }
        }
      },
      "TAAResult": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/TAAInfo"
          }
        }
      },
      "TAAAccept": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "mechanism": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "CredentialDefinitionSendRequest": {
        "type": "object",
        "properties": {
          "support_revocation": {
            "type": "boolean",
            "description": "Revocation supported flag"
          },
          "tag": {
            "type": "string",
            "description": "Credential definition identifier tag",
            "example": "default"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          },
          "revocation_registry_size": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CredentialDefinitionSendResults": {
        "type": "object",
        "properties": {
          "credential_definition_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          }
        }
      },
      "CredentialDefinitionsCreatedResults": {
        "type": "object",
        "properties": {
          "credential_definition_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
              "description": "Credential definition identifiers",
              "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
            }
          }
        }
      },
      "CredentialDefinition": {
        "type": "object",
        "properties": {
          "schemaId": {
            "type": "string",
            "description": "Schema identifier within credential definition identifier",
            "example": "20"
          },
          "value": {
            "type": "object",
            "description": "Credential definition primary and revocation values"
          },
          "tag": {
            "type": "string",
            "description": "Tag within credential definition identifier",
            "example": "tag"
          },
          "ver": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Node protocol version",
            "example": "1.0"
          },
          "type": {
            "default": "CL",
            "description": "Signature type: CL for Camenisch-Lysyanskaya",
            "example": "CL"
          },
          "id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          }
        }
      },
      "CredentialDefinitionGetResults": {
        "type": "object",
        "properties": {
          "credential_definition": {
            "$ref": "#/components/schemas/CredentialDefinition"
          }
        }
      },
      "SchemaSendRequest": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "attributes": {
            "type": "array",
            "description": "List of schema attributes",
            "items": {
              "type": "string",
              "description": "attribute name",
              "example": "score"
            }
          },
          "schema_name": {
            "type": "string",
            "description": "Schema name",
            "example": "prefs"
          }
        },
        "required": ["attributes", "schema_name", "schema_version"]
      },
      "SchemaSendResults": {
        "type": "object",
        "properties": {
          "schema": {
            "type": "object",
            "description": "Schema result"
          },
          "schema_id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          }
        },
        "required": ["schema", "schema_id"]
      },
      "SchemasCreatedResults": {
        "type": "object",
        "properties": {
          "schema_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
              "description": "Schema identifiers",
              "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
            }
          }
        }
      },
      "Schema": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Schema version",
            "example": "1.0"
          },
          "name": {
            "type": "string",
            "description": "Schema name",
            "example": "schema_name"
          },
          "seqNo": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Schema sequence number",
            "example": 10
          },
          "ver": {
            "type": "string",
            "pattern": "^[0-9.]+$",
            "description": "Node protocol version",
            "example": "1.0"
          },
          "attrNames": {
            "type": "array",
            "description": "Schema attribute names",
            "items": {
              "type": "string",
              "description": "Attribute name",
              "example": "score"
            }
          },
          "id": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$",
            "description": "Schema identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
          }
        }
      },
      "SchemaGetResults": {
        "type": "object",
        "properties": {
          "schema": {
            "$ref": "#/components/schemas/Schema"
          }
        }
      },
      "RevRegCreateRequest": {
        "type": "object",
        "properties": {
          "credential_definition_id": {
            "type": "string",
            "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
            "description": "Credential definition identifier",
            "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag"
          },
          "max_cred_num": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum credential numbers",
            "example": 100
          }
        }
      },
      "RevRegCreateResult": {
        "type": "object",
        "properties": {}
      },
      "RevRegsCreated": {
        "type": "object",
        "properties": {
          "rev_reg_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)",
              "description": "Revocation Registry identifiers",
              "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0"
            }
          }
        }
      },
      "RevRegUpdateTailsFileUri": {
        "type": "object",
        "properties": {
          "tails_public_uri": {
            "type": "string",
            "format": "url",
            "description": "Public URI to the tails file",
            "example": "http://192.168.56.133:5000/revocation/registry/WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0/tails-file"
          }
        },
        "required": ["tails_public_uri"]
      },
      "DID": {
        "type": "object",
        "properties": {
          "verkey": {
            "type": "string",
            "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$",
            "description": "Public verification key",
            "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv"
          },
          "public": {
            "type": "boolean",
            "description": "Whether DID is public",
            "example": false
          }
        }
      },
      "DIDList": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "DID list",
            "items": {
              "$ref": "#/components/schemas/DID"
            }
          }
        }
      },
      "DIDResult": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/DID"
          }
        }
      },
      "DIDEndpointWithType": {
        "type": "object",
        "properties": {
          "endpoint_type": {
            "type": "string",
            "enum": ["Endpoint", "Profile", "LinkedDomains"],
            "description": "Endpoint type to set (default 'Endpoint'); affects only public DIDs",
            "example": "Endpoint"
          },
          "endpoint": {
            "type": "string",
            "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$",
            "description": "Endpoint to set (omit to delete)",
            "example": "https://myhost:8021"
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv"
          }
        },
        "required": ["did"]
      },
      "DIDEndpoint": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$",
            "description": "Endpoint to set (omit to delete)",
            "example": "https://myhost:8021"
          },
          "did": {
            "type": "string",
            "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$",
            "description": "DID of interest",
            "example": "WgWxqztrNooG92RXvxSTWv"
          }
        },
        "required": ["did"]
      }
    }
  }
}