From 7a7c64c226c75f471effce61011901292399aa32 Mon Sep 17 00:00:00 2001
From: Berend Sliedrecht <sliedrecht@berend.io>
Date: Mon, 20 Nov 2023 17:42:49 +0100
Subject: [PATCH] cleanup to remove nats client and swagger

Signed-off-by: Berend Sliedrecht <sliedrecht@berend.io>
---
 .../src/agent/agent.service.ts                |    6 +-
 .../agent/connection/connection.service.ts    |    2 +-
 .../src/agent/ledger/register.ts              |    4 +-
 .../src/agent/utils/helperFunctions.ts        |    6 +-
 .../src/agent/utils/ledgerConfig.ts           |    4 -
 .../src/agent/utils/listener.spec.ts          |   35 -
 .../src/agent/utils/listener.ts               |   25 -
 .../src/agent/utils/listenerConfig.ts         |   22 -
 .../ssi-abstraction/src/agent/utils/logger.ts |    4 +-
 .../ssi-abstraction/src/client/nats.client.ts |   31 -
 .../ssi-abstraction/src/globalUtils/logger.ts |    4 +-
 .../src/globalUtils/swagger.ts                |   20 -
 .../src/middleware/agentMid.middleware.ts     |    2 -
 apps/ssi-abstraction/swagger.json             | 3827 -----------------
 14 files changed, 6 insertions(+), 3986 deletions(-)
 delete mode 100644 apps/ssi-abstraction/src/agent/utils/listener.spec.ts
 delete mode 100644 apps/ssi-abstraction/src/agent/utils/listener.ts
 delete mode 100644 apps/ssi-abstraction/src/agent/utils/listenerConfig.ts
 delete mode 100644 apps/ssi-abstraction/src/client/nats.client.ts
 delete mode 100644 apps/ssi-abstraction/src/globalUtils/swagger.ts
 delete mode 100644 apps/ssi-abstraction/swagger.json

diff --git a/apps/ssi-abstraction/src/agent/agent.service.ts b/apps/ssi-abstraction/src/agent/agent.service.ts
index 5698114..01dd321 100644
--- a/apps/ssi-abstraction/src/agent/agent.service.ts
+++ b/apps/ssi-abstraction/src/agent/agent.service.ts
@@ -29,7 +29,6 @@ import {
   IndyVdrPoolConfig,
   IndyVdrSovDidResolver,
 } from '@aries-framework/indy-vdr';
-import { subscribe } from './utils/listener.js';
 import {
   LedgerIds,
   ledgerNamespaces,
@@ -37,8 +36,7 @@ import {
 } from './utils/ledgerConfig.js';
 import { AgentLogger } from './utils/logger.js';
 import { registerPublicDids } from './ledger/register.js';
-import { NatsClientService } from '../client/nats.client.js';
-import logger from '../globalUtils/logger.js';
+import { logger } from '../globalUtils/logger.js';
 
 export type AppAgent = Agent<AgentService['modules']>;
 
@@ -188,5 +186,3 @@ export class AgentService {
     await this.agent.shutdown();
   }
 }
-
-export default AgentService;
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.service.ts b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
index a902b49..ae31d2e 100644
--- a/apps/ssi-abstraction/src/agent/connection/connection.service.ts
+++ b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
@@ -1,6 +1,6 @@
 import { ConnectionRecord } from '@aries-framework/core';
 import { Injectable } from '@nestjs/common';
-import AgentService, { AppAgent } from '../agent.service.js';
+import { AgentService, AppAgent } from '../agent.service.js';
 
 @Injectable()
 export class ConnectionService {
diff --git a/apps/ssi-abstraction/src/agent/ledger/register.ts b/apps/ssi-abstraction/src/agent/ledger/register.ts
index 8f426b7..05363ee 100644
--- a/apps/ssi-abstraction/src/agent/ledger/register.ts
+++ b/apps/ssi-abstraction/src/agent/ledger/register.ts
@@ -1,4 +1,4 @@
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 import axios from 'axios';
 import { logAxiosError } from '../utils/helperFunctions.js';
 import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js';
@@ -57,5 +57,3 @@ export const registerPublicDids = async ({
   }
   return responses;
 };
-
-export default registerPublicDids;
diff --git a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
index a8e80ba..40edef4 100644
--- a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
+++ b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
@@ -1,5 +1,5 @@
 import { AxiosError } from 'axios';
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 
 export function logAxiosError(err: AxiosError) {
   if (err.response) {
@@ -15,7 +15,3 @@ export function logAxiosError(err: AxiosError) {
     logger.error('Request error: ', err);
   }
 }
-
-export default {
-  logAxiosError,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts b/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
index 2a7be31..0c2675d 100644
--- a/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
+++ b/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
@@ -31,7 +31,3 @@ export const ledgerNamespaces = {
   BCOVRIN_TEST: 'bcovrin:test',
   GREEN_LIGHT: 'bcovrin:greenlight',
 };
-
-export default {
-  LEDGER_GENESIS,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/listener.spec.ts b/apps/ssi-abstraction/src/agent/utils/listener.spec.ts
deleted file mode 100644
index 1792bf3..0000000
--- a/apps/ssi-abstraction/src/agent/utils/listener.spec.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { subscribe } from './listener.js';
-
-describe('listener', () => {
-  it('should subscribe agent to available events', async () => {
-    const agent = {
-      events: {
-        on: (eventName: string, cb: () => void) => {},
-      },
-    };
-
-    const natsClient = {
-      publish: () => {},
-    };
-    const spyPublish = jest.spyOn(natsClient, 'publish');
-
-    let lastCb = null;
-
-    const spy = jest
-      .spyOn(agent.events, 'on')
-      .mockImplementation((eventName: string, cb: () => void) => {
-        lastCb = cb;
-      });
-    // @ts-ignore
-    subscribe(agent, natsClient);
-    expect(spy).toHaveBeenCalled();
-    expect(spy).toHaveBeenCalledTimes(7);
-    spy.mockRestore();
-
-    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
-    // @ts-ignore
-    lastCb({ payload: 'payload' });
-    expect(spyPublish).toHaveBeenCalled();
-    expect(spyPublish).toHaveBeenCalledTimes(1);
-  });
-});
diff --git a/apps/ssi-abstraction/src/agent/utils/listener.ts b/apps/ssi-abstraction/src/agent/utils/listener.ts
deleted file mode 100644
index 17615e1..0000000
--- a/apps/ssi-abstraction/src/agent/utils/listener.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Agent } from '@aries-framework/core';
-import logger from '../../globalUtils/logger.js';
-import { NatsClientService } from '../../client/nats.client.js';
-import { listenerConfig } from './listenerConfig.js';
-
-/**
- * Subscribes to events on nats
- *
- * @param agent - the agent that has been initialized on startup
- * @param natsClient - the client that specifies how events are published
- */
-export const subscribe = (agent: Agent, natsClient: NatsClientService) => {
-  for (let i = 0; i < listenerConfig.length; i += 1) {
-    agent.events.on(listenerConfig[i], ({ payload }) => {
-      logger.info(
-        `${listenerConfig[i]} called. Payload: ${JSON.stringify(payload)}`,
-      );
-      natsClient.publish(listenerConfig[i], payload);
-    });
-  }
-};
-
-export default {
-  subscribe,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts b/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts
deleted file mode 100644
index 02c5bc8..0000000
--- a/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import {
-  BasicMessageEventTypes,
-  ConnectionEventTypes,
-  CredentialEventTypes,
-  ProofEventTypes,
-  RoutingEventTypes,
-  TransportEventTypes,
-} from '@aries-framework/core';
-
-export const listenerConfig = [
-  BasicMessageEventTypes.BasicMessageStateChanged,
-  ConnectionEventTypes.ConnectionStateChanged,
-  CredentialEventTypes.CredentialStateChanged,
-  ProofEventTypes.ProofStateChanged,
-  RoutingEventTypes.MediationStateChanged,
-  RoutingEventTypes.RecipientKeylistUpdated,
-  TransportEventTypes.OutboundWebSocketClosedEvent,
-];
-
-export default {
-  listenerConfig,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/logger.ts b/apps/ssi-abstraction/src/agent/utils/logger.ts
index dacc601..b872da0 100644
--- a/apps/ssi-abstraction/src/agent/utils/logger.ts
+++ b/apps/ssi-abstraction/src/agent/utils/logger.ts
@@ -1,5 +1,5 @@
 import { BaseLogger, LogLevel } from '@aries-framework/core';
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 
 export class AgentLogger extends BaseLogger {
   public test(
@@ -58,5 +58,3 @@ export class AgentLogger extends BaseLogger {
     logger.error(message, data);
   }
 }
-
-export default AgentLogger;
diff --git a/apps/ssi-abstraction/src/client/nats.client.ts b/apps/ssi-abstraction/src/client/nats.client.ts
deleted file mode 100644
index fffd1c8..0000000
--- a/apps/ssi-abstraction/src/client/nats.client.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { ClientProxy } from '@nestjs/microservices';
-import { NATSServices } from '../common/constants.js';
-import logger from '../globalUtils/logger.js';
-
-@Injectable()
-export class NatsClientService {
-  constructor(@Inject(NATSServices.SERVICE_NAME) private client: ClientProxy) {}
-
-  /**
-   * Publishes events on nats
-   * Generates the event as an object with 'endpoint' key
-   * that specifies the ServiceName/eventName.
-   *
-   * @param eventName - the event name
-   * @param data - the data to be passed as payload of the event
-   */
-  publish<D = unknown>(eventName: string, data: D) {
-    logger.info(
-      `Publish nats event: ${NATSServices.SERVICE_NAME}/${eventName}`,
-    );
-
-    const event = {
-      endpoint: `${NATSServices.SERVICE_NAME}/${eventName}`,
-    };
-
-    this.client.emit(event, data);
-  }
-}
-
-export default { NatsClientService };
diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts
index d5a8bbe..78c3674 100644
--- a/apps/ssi-abstraction/src/globalUtils/logger.ts
+++ b/apps/ssi-abstraction/src/globalUtils/logger.ts
@@ -1,7 +1,7 @@
 import winston, { Logger } from 'winston';
 import ecsFormat from '@elastic/ecs-winston-format';
 
-const logger: Logger = winston.createLogger({
+export const logger: Logger = winston.createLogger({
   format: ecsFormat({ convertReqRes: true }),
   transports: [new winston.transports.Console()],
 });
@@ -9,5 +9,3 @@ const logger: Logger = winston.createLogger({
 logger.on('error', (error: Error) => {
   console.error('Error in logger caught', error);
 });
-
-export default logger;
diff --git a/apps/ssi-abstraction/src/globalUtils/swagger.ts b/apps/ssi-abstraction/src/globalUtils/swagger.ts
deleted file mode 100644
index 4adc472..0000000
--- a/apps/ssi-abstraction/src/globalUtils/swagger.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
-import { INestApplication } from '@nestjs/common';
-
-/**
- * Setup for swagger endpoint documentation
- *
- *
- * @param app - Nest.js internal config object
- */
-export default function swaggerSetup(app: INestApplication): void {
-  const swaggerConfig = new DocumentBuilder()
-    .setTitle('Gaia-x SSI Abstraction service')
-    .setDescription('API documentation for GAIA-X SSI Abstraction service')
-    .setVersion('1.0')
-    .build();
-
-  const document = SwaggerModule.createDocument(app, swaggerConfig);
-
-  SwaggerModule.setup('/swagger', app, document);
-}
diff --git a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
index a8d1a66..0fef2c9 100644
--- a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
+++ b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
@@ -36,5 +36,3 @@ export class AgentMid implements NestMiddleware {
     next();
   }
 }
-
-export default { AgentMid };
diff --git a/apps/ssi-abstraction/swagger.json b/apps/ssi-abstraction/swagger.json
deleted file mode 100644
index 7400aa3..0000000
--- a/apps/ssi-abstraction/swagger.json
+++ /dev/null
@@ -1,3827 +0,0 @@
-{
-  "components": {
-    "schemas": {
-      "AttachmentData": {
-        "properties": {
-          "base64": {
-            "format": "base64",
-            "type": "string"
-          },
-          "json": {},
-          "links": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "jws": {},
-          "sha256": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "Attachment": {
-        "properties": {
-          "description": {
-            "type": "string"
-          },
-          "filename": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "lastmodTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "byteCount": {
-            "type": "integer"
-          },
-          "data": {
-            "$ref": "#/components/schemas/AttachmentData"
-          }
-        },
-        "type": "object",
-        "required": ["data"]
-      },
-      "Service": {
-        "properties": {
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["id", "serviceEndpoint", "type"]
-      },
-      "DidCommService": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array",
-            "minItems": 1
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "accept": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["recipientKeys", "id", "serviceEndpoint", "type"]
-      },
-      "ServiceDecorator": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["recipientKeys", "serviceEndpoint"]
-      },
-      "BaseMessage": {
-        "properties": {
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "ThreadDecorator": {
-        "properties": {
-          "threadId": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "parentThreadId": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "senderOrder": {
-            "type": "integer"
-          },
-          "receivedOrders": {}
-        },
-        "type": "object"
-      },
-      "TimingDecorator": {
-        "properties": {
-          "inTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "outTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "staleTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "expiresTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "delayMilli": {
-            "type": "number"
-          },
-          "waitUntilTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          }
-        },
-        "type": "object"
-      },
-      "TransportDecorator": {
-        "properties": {
-          "returnRoute": {
-            "enum": ["none", "all", "thread"],
-            "type": "string"
-          },
-          "returnRouteThread": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ThreadDecoratorExtension": {
-        "properties": {
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "L10nDecoratorExtension": {
-        "properties": {
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "TransportDecoratorExtension": {
-        "properties": {
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "TimingDecoratorExtension": {
-        "properties": {
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "AckDecoratorExtension": {
-        "properties": {
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "AttachmentDecoratorExtension": {
-        "properties": {
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "ServiceDecoratorExtension": {
-        "properties": {
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": ["id", "type"]
-      },
-      "ProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/notification/1.0/problem-report"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": ["YOU", "ME", "BOTH", "NONE"],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": ["CLOUD", "EDGE", "WIRE", "AGENCY"],
-            "type": "string"
-          },
-          "impact": {
-            "enum": ["MESSAGE", "THREAD", "CONNECTION"],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "BatchMessageMessage": {
-        "properties": {
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "message": {
-            "type": "object"
-          }
-        },
-        "type": "object",
-        "required": ["id", "message"]
-      },
-      "BatchMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/messagepickup/1.0/batch"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "messages": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "messages", "id"]
-      },
-      "BatchPickupMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/messagepickup/1.0/batch-pickup"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "batchSize": {
-            "type": "integer"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "batchSize", "id"]
-      },
-      "ForwardMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/routing/1.0/forward"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "to": {
-            "type": "string"
-          },
-          "message": {
-            "type": "object"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "to", "message", "id"]
-      },
-      "KeylistUpdate": {
-        "properties": {
-          "recipientKey": {
-            "type": "string"
-          },
-          "action": {
-            "enum": ["add", "remove"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["recipientKey", "action"]
-      },
-      "KeylistUpdateMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/keylist-update"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "updates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "updates", "id"]
-      },
-      "KeylistUpdated": {
-        "properties": {
-          "recipientKey": {
-            "type": "string"
-          },
-          "action": {
-            "enum": ["add", "remove"],
-            "type": "string"
-          },
-          "result": {
-            "enum": ["client_error", "server_error", "no_change", "success"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["recipientKey", "action", "result"]
-      },
-      "KeylistUpdateResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/keylist-update-response"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "updated": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "updated", "id"]
-      },
-      "MediationGrantMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-grant"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "routingKeys": {
-            "items": {},
-            "type": "string",
-            "minLength": 1
-          },
-          "endpoint": {
-            "type": "string",
-            "minLength": 1
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "routingKeys", "endpoint", "id"]
-      },
-      "MediationDenyMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-deny"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "MediationRequestMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-request"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "sentTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "sentTime", "id"]
-      },
-      "PublicKey": {
-        "properties": {
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["id", "controller", "type"]
-      },
-      "Ed25119Sig2018": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["Ed25519VerificationKey2018"]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "value", "id", "controller"]
-      },
-      "EddsaSaSigSecp256k1": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["Secp256k1VerificationKey2018"]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "value", "id", "controller"]
-      },
-      "RsaSig2018": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["RsaVerificationKey2018"]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "value", "id", "controller"]
-      },
-      "EmbeddedAuthentication": {
-        "properties": {
-          "publicKey": {
-            "$ref": "#/components/schemas/PublicKey",
-            "minLength": 1,
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["publicKey"]
-      },
-      "ReferencedAuthentication": {
-        "properties": {
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type"]
-      },
-      "IndyAgentService": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array",
-            "minItems": 1
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["recipientKeys", "id", "serviceEndpoint", "type"]
-      },
-      "DidDoc": {
-        "properties": {
-          "context": {
-            "type": "string",
-            "enum": ["https://w3id.org/did/v1"]
-          },
-          "id": {
-            "type": "string"
-          },
-          "publicKey": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          },
-          "authentication": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["context", "id", "publicKey", "service", "authentication"]
-      },
-      "Connection": {
-        "properties": {
-          "did": {
-            "type": "string"
-          },
-          "didDoc": {
-            "$ref": "#/components/schemas/DidDoc"
-          }
-        },
-        "type": "object",
-        "required": ["did"]
-      },
-      "ConnectionInvitationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/connections/1.0/invitation"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "label": {
-            "type": "string"
-          },
-          "did": {
-            "type": "string"
-          },
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "minItems": 1,
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "imageUrl": {
-            "format": "url",
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "label", "id"]
-      },
-      "ConnectionRequestMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/connections/1.0/request"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "label": {
-            "type": "string"
-          },
-          "connection": {
-            "$ref": "#/components/schemas/Connection"
-          },
-          "imageUrl": {
-            "format": "url",
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "label", "connection", "id"]
-      },
-      "SignatureDecorator": {
-        "properties": {
-          "signatureType": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "signatureData": {
-            "type": "string"
-          },
-          "signer": {
-            "type": "string"
-          },
-          "signature": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["signatureType", "signatureData", "signer", "signature"]
-      },
-      "ConnectionResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/connections/1.0/response"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "connectionSig": {
-            "$ref": "#/components/schemas/SignatureDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "connectionSig", "id"]
-      },
-      "TrustPingMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/trust_ping/1.0/ping"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "responseRequested": {
-            "type": "boolean"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "responseRequested", "id"]
-      },
-      "TrustPingResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/trust_ping/1.0/ping_response"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "ConnectionProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/connection/1.0/problem-report"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": ["YOU", "ME", "BOTH", "NONE"],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": ["CLOUD", "EDGE", "WIRE", "AGENCY"],
-            "type": "string"
-          },
-          "impact": {
-            "enum": ["MESSAGE", "THREAD", "CONNECTION"],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "AckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/notification/1.0/ack"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "status": {
-            "enum": ["OK", "FAIL", "PENDING"],
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "status", "id"]
-      },
-      "BasicMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/basicmessage/1.0/message"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "sentTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "content": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "sentTime", "content", "id"]
-      },
-      "CredentialPreviewAttribute": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["name", "value"]
-      },
-      "CredentialPreview": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/credential-preview"
-            ]
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["type", "attributes"]
-      },
-      "CredentialAckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/issue-credential/1.0/ack"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "status": {
-            "enum": ["OK", "FAIL", "PENDING"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id", "status"]
-      },
-      "RequestCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/request-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "requestAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "requestAttachments", "id"]
-      },
-      "IssueCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/issue-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "credentialAttachments", "id"]
-      },
-      "OfferCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/offer-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialPreview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "offerAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "credentialPreview", "offerAttachments", "id"]
-      },
-      "ProposeCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/propose-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialProposal": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "schemaIssuerDid": {
-            "type": "string"
-          },
-          "schemaId": {
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "issuerDid": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "CredentialProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/issue-credential/1.0/problem-report"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": ["YOU", "ME", "BOTH", "NONE"],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": ["CLOUD", "EDGE", "WIRE", "AGENCY"],
-            "type": "string"
-          },
-          "impact": {
-            "enum": ["MESSAGE", "THREAD", "CONNECTION"],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "DiscloseProtocol": {
-        "properties": {
-          "protocolId": {
-            "type": "string"
-          },
-          "roles": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["protocolId"]
-      },
-      "DiscloseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/discover-features/1.0/disclose"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "protocols": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "protocols", "id"]
-      },
-      "QueryMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/discover-features/1.0/query"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "query": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "query", "id"]
-      },
-      "PresentationPreviewAttribute": {
-        "properties": {
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          },
-          "referent": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "PresentationPreviewPredicate": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "predicate": {
-            "enum": ["<", "<=", ">", ">="],
-            "type": "string"
-          },
-          "threshold": {
-            "type": "integer"
-          }
-        },
-        "type": "object",
-        "required": ["name", "credentialDefinitionId", "predicate", "threshold"]
-      },
-      "PresentationPreview": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/presentation-preview"
-            ]
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "predicates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["type", "attributes", "predicates"]
-      },
-      "ProposePresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/propose-presentation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "presentationProposal": {
-            "$ref": "#/components/schemas/PresentationPreview"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "presentationProposal", "id"]
-      },
-      "AttributeValue": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["name", "value"]
-      },
-      "AttributeFilter": {
-        "properties": {
-          "schemaId": {
-            "type": "string"
-          },
-          "schemaIssuerDid": {
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "type": "string"
-          },
-          "issuerDid": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "attributeValue": {
-            "$ref": "#/components/schemas/AttributeValue"
-          }
-        },
-        "type": "object"
-      },
-      "ProofIdentifier": {
-        "properties": {
-          "schemaId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "revocationRegistryId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "number"
-          }
-        },
-        "type": "object",
-        "required": ["schemaId", "credentialDefinitionId"]
-      },
-      "ProofAttribute": {
-        "properties": {
-          "subProofIndex": {
-            "type": "integer"
-          },
-          "raw": {
-            "type": "string"
-          },
-          "encoded": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["subProofIndex", "raw", "encoded"]
-      },
-      "RequestedProof": {
-        "properties": {
-          "revealedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array"
-          },
-          "selfAttestedAttributes": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["revealedAttributes", "selfAttestedAttributes"]
-      },
-      "PartialProof": {
-        "properties": {
-          "identifiers": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "requestedProof": {
-            "$ref": "#/components/schemas/RequestedProof"
-          }
-        },
-        "type": "object",
-        "required": ["identifiers", "requestedProof"]
-      },
-      "IndyCredentialInfo": {
-        "properties": {
-          "referent": {
-            "type": "string"
-          },
-          "attributes": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "schemaId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "revocationRegistryId": {
-            "type": "string"
-          },
-          "credentialRevocationId": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "referent",
-          "attributes",
-          "schemaId",
-          "credentialDefinitionId"
-        ]
-      },
-      "RevocationInterval": {
-        "properties": {
-          "from": {
-            "type": "integer"
-          },
-          "to": {
-            "type": "integer"
-          }
-        },
-        "type": "object"
-      },
-      "Credential": {
-        "properties": {
-          "credentialInfo": {
-            "$ref": "#/components/schemas/IndyCredentialInfo"
-          },
-          "interval": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          }
-        },
-        "type": "object",
-        "required": ["credentialInfo"]
-      },
-      "ProofAttributeInfo": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "names": {
-            "items": {
-              "type": "string"
-            },
-            "minItems": 1,
-            "type": "array"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "restrictions": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object"
-      },
-      "ProofPredicateInfo": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "predicateType": {
-            "enum": ["<", "<=", ">", ">="],
-            "type": "string"
-          },
-          "predicateValue": {
-            "type": "integer"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "restrictions": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["name", "predicateType", "predicateValue"]
-      },
-      "ProofRequest": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "version": {
-            "type": "string"
-          },
-          "nonce": {
-            "type": "string"
-          },
-          "requestedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Map"
-          },
-          "requestedPredicates": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Map"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "ver": {
-            "type": "string",
-            "enum": ["1.0", "2.0"]
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "version",
-          "requestedAttributes",
-          "requestedPredicates"
-        ]
-      },
-      "RequestedAttribute": {
-        "properties": {
-          "credentialId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "integer"
-          },
-          "revealed": {
-            "type": "boolean"
-          }
-        },
-        "type": "object",
-        "required": ["credentialId", "revealed"]
-      },
-      "RequestedPredicate": {
-        "properties": {
-          "credentialId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "integer"
-          }
-        },
-        "type": "object",
-        "required": ["credentialId"]
-      },
-      "RequestedCredentials": {
-        "properties": {
-          "requestedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Object"
-            },
-            "type": "array"
-          },
-          "requestedPredicates": {
-            "items": {
-              "$ref": "#/components/schemas/Object"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["requestedAttributes", "requestedPredicates"]
-      },
-      "RequestPresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/request-presentation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "requestPresentationAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "requestPresentationAttachments", "id"]
-      },
-      "PresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/present-proof/1.0/presentation"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "presentationAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": ["type", "presentationAttachments", "id"]
-      },
-      "PresentationAckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/present-proof/1.0/ack"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "status": {
-            "enum": ["OK", "FAIL", "PENDING"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id", "status"]
-      },
-      "PresentationProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": ["https://didcomm.org/present-proof/1.0/problem-report"],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": ["YOU", "ME", "BOTH", "NONE"],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": ["CLOUD", "EDGE", "WIRE", "AGENCY"],
-            "type": "string"
-          },
-          "impact": {
-            "enum": ["MESSAGE", "THREAD", "CONNECTION"],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["type", "id"]
-      },
-      "BasicMessageRequest": {
-        "properties": {
-          "content": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["content"]
-      },
-      "InvitationConfigRequest": {
-        "properties": {
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ReceiveInvitationByUrlRequest": {
-        "properties": {
-          "invitationUrl": {
-            "type": "string"
-          },
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["invitationUrl"]
-      },
-      "InvitationRequest": {
-        "properties": {
-          "label": {
-            "type": "string"
-          },
-          "did": {
-            "type": "string"
-          },
-          "recipientKeys": {
-            "items": {},
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "routingKeys": {
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["label"]
-      },
-      "ReceiveInvitationRequest": {
-        "properties": {
-          "invitation": {
-            "$ref": "#/components/schemas/InvitationRequest"
-          },
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["invitation"]
-      },
-      "AcceptCredentialProposalRequest": {
-        "properties": {
-          "comment": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "autoAcceptCredential": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "LinkedAttachment": {
-        "properties": {
-          "attributeName": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["attributeName"]
-      },
-      "CredentialOfferTemp": {
-        "properties": {
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "preview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "autoAcceptCredential": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          },
-          "attachments": {
-            "$ref": "#/components/schemas/Array"
-          },
-          "linkedAttachments": {
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": ["credentialDefinitionId", "preview"]
-      },
-      "CredentialOfferRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "preview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "autoAcceptCredential": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          },
-          "attachments": {
-            "$ref": "#/components/schemas/Array"
-          },
-          "linkedAttachments": {
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": ["connectionId", "credentialDefinitionId", "preview"]
-      },
-      "CredentialProposalRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialProposal": {
-            "not": {
-              "type": "null"
-            },
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "schemaIssuerDid": {
-            "pattern": "^(did:sov:)?[a-zA-Z0-9]{21,22}$",
-            "type": "string"
-          },
-          "schemaId": {
-            "pattern": "^[a-zA-Z0-9]{21,22}:2:.+:[0-9.]+$",
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "pattern": "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$",
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "issuerDid": {
-            "pattern": "^(did:sov:)?[a-zA-Z0-9]{21,22}$",
-            "type": "string"
-          },
-          "attachments": {},
-          "linkedAttachments": {},
-          "autoAcceptCredential": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["connectionId", "credentialProposal"]
-      },
-      "CredentialDefinitionRequest": {
-        "properties": {
-          "tag": {
-            "type": "string"
-          },
-          "supportRevocation": {
-            "type": "boolean"
-          },
-          "schemaId": {
-            "pattern": "^[a-zA-Z0-9]{21,22}:2:.+:[0-9.]+$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["tag", "supportRevocation", "schemaId"]
-      },
-      "SchemaTemplate": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "version": {
-            "pattern": "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$",
-            "type": "string"
-          },
-          "attributes": {
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": ["name", "version", "attributes"]
-      },
-      "AcceptProofProposalRequest": {
-        "properties": {
-          "request": {},
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "PresentationProofRequest": {
-        "properties": {
-          "filterByPresentationPreview": {
-            "type": "boolean"
-          },
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ProofRequestTemplate": {
-        "properties": {
-          "proofRequest": {
-            "$ref": "#/components/schemas/ProofRequest"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "autoAcceptProof": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["proofRequest"]
-      },
-      "ProofPresentationRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "proofRequest": {
-            "$ref": "#/components/schemas/ProofRequest"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "autoAcceptProof": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["connectionId", "proofRequest"]
-      },
-      "ProofProposalRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "predicates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "autoAcceptProof": {
-            "enum": ["always", "contentApproved", "never"],
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": ["connectionId", "attributes", "predicates"]
-      }
-    }
-  },
-  "info": {
-    "title": "ssi-abstraction-agent",
-    "version": "0.8.0",
-    "description": "Rest endpoint wrapper for using your agent over HTTP"
-  },
-  "openapi": "3.0.0",
-  "paths": {
-    "/agent/": {
-      "get": {
-        "operationId": "AgentController.getAgentInfo",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get agent info",
-        "tags": ["Agent"]
-      }
-    },
-    "/basic-messages/{connectionId}": {
-      "get": {
-        "operationId": "BasicMessageController.getBasicMessages",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get basic messages",
-        "tags": ["Basic Message"]
-      },
-      "post": {
-        "operationId": "BasicMessageController.sendMessage",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/BasicMessageRequest"
-              }
-            }
-          },
-          "description": "BasicMessageRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Send message",
-        "tags": ["Basic Message"]
-      }
-    },
-    "/connections/{connectionId}": {
-      "get": {
-        "operationId": "ConnectionController.getConnectionById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get connection by id",
-        "tags": ["Connection"]
-      },
-      "delete": {
-        "operationId": "ConnectionController.deleteConnection",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete connection",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/": {
-      "get": {
-        "operationId": "ConnectionController.getAllConnections",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all connections",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/create-invitation": {
-      "post": {
-        "operationId": "ConnectionController.createInvitation",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/InvitationConfigRequest"
-              }
-            }
-          },
-          "description": "InvitationConfigRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create invitation",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/receive-invitation": {
-      "post": {
-        "operationId": "ConnectionController.receiveInvitation",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ReceiveInvitationRequest"
-              }
-            }
-          },
-          "description": "ReceiveInvitationRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Receive invitation",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/receive-invitation-url": {
-      "post": {
-        "operationId": "ConnectionController.receiveInvitationByUrl",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ReceiveInvitationByUrlRequest"
-              }
-            }
-          },
-          "description": "ReceiveInvitationByUrlRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Receive invitation by url",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/{connectionId}/accept-invitation": {
-      "post": {
-        "operationId": "ConnectionController.acceptInvitation",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept invitation",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/{connectionId}/accept-request": {
-      "post": {
-        "operationId": "ConnectionController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": ["Connection"]
-      }
-    },
-    "/connections/{connectionId}/accept-response": {
-      "post": {
-        "operationId": "ConnectionController.acceptResponse",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept response",
-        "tags": ["Connection"]
-      }
-    },
-    "/credentials/{credentialId}": {
-      "get": {
-        "operationId": "CredentialController.getCredentialById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get credential by id",
-        "tags": ["Credential"]
-      },
-      "delete": {
-        "operationId": "CredentialController.deleteCredential",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete credential",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/": {
-      "get": {
-        "operationId": "CredentialController.getAllCredentials",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all credentials",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/propose-credential": {
-      "post": {
-        "operationId": "CredentialController.proposeCredential",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialProposalRequest"
-              }
-            }
-          },
-          "description": "CredentialProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Propose credential",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/{credentialId}/accept-proposal": {
-      "post": {
-        "operationId": "CredentialController.acceptProposal",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/AcceptCredentialProposalRequest"
-              }
-            }
-          },
-          "description": "AcceptCredentialProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept proposal",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/offer-outofband-credential": {
-      "post": {
-        "operationId": "CredentialController.offerCredentialOutOfBand",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialOfferTemp"
-              }
-            }
-          },
-          "description": "CredentialOfferTemp",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Offer credential out of band",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/offer-credential": {
-      "post": {
-        "operationId": "CredentialController.offerCredential",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialOfferRequest"
-              }
-            }
-          },
-          "description": "CredentialOfferRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Offer credential",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/{credentialId}/accept-offer": {
-      "post": {
-        "operationId": "CredentialController.acceptOffer",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept offer",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/{credentialId}/accept-request": {
-      "post": {
-        "operationId": "CredentialController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": ["Credential"]
-      }
-    },
-    "/credentials/{credentialId}/accept-credential": {
-      "post": {
-        "operationId": "CredentialController.acceptCredential",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept credential",
-        "tags": ["Credential"]
-      }
-    },
-    "/credential-definitions/{credentialDefinitionId}": {
-      "get": {
-        "operationId": "CredentialDefinitionController.getCredentialDefinitionById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialDefinitionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get credential definition by id",
-        "tags": ["Credential Definition"]
-      }
-    },
-    "/credential-definitions/": {
-      "post": {
-        "operationId": "CredentialDefinitionController.createCredentialDefinition",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialDefinitionRequest"
-              }
-            }
-          },
-          "description": "CredentialDefinitionRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create credential definition",
-        "tags": ["Credential Definition"]
-      }
-    },
-    "/schemas/{schemaId}": {
-      "get": {
-        "operationId": "SchemaController.getSchemaById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "schemaId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get schema by id",
-        "tags": ["Schema"]
-      }
-    },
-    "/schemas/": {
-      "post": {
-        "operationId": "SchemaController.createSchema",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/SchemaTemplate"
-              }
-            }
-          },
-          "description": "SchemaTemplate",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create schema",
-        "tags": ["Schema"]
-      }
-    },
-    "/proofs/{proofRecordId}": {
-      "get": {
-        "operationId": "ProofController.getProofById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get proof by id",
-        "tags": ["Proof"]
-      },
-      "delete": {
-        "operationId": "ProofController.deleteProof",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete proof",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/": {
-      "get": {
-        "operationId": "ProofController.getAllProofs",
-        "parameters": [
-          {
-            "in": "query",
-            "name": "threadId",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all proofs",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/propose-proof": {
-      "post": {
-        "operationId": "ProofController.proposeProof",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofProposalRequest"
-              }
-            }
-          },
-          "description": "ProofProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Propose proof",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-proposal": {
-      "post": {
-        "operationId": "ProofController.acceptProposal",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/AcceptProofProposalRequest"
-              }
-            }
-          },
-          "description": "AcceptProofProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept proposal",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/request-outofband-proof": {
-      "post": {
-        "operationId": "ProofController.requestProofOutOfBand",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofRequestTemplate"
-              }
-            }
-          },
-          "description": "ProofRequestTemplate",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Request proof out of band",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/request-proof": {
-      "post": {
-        "operationId": "ProofController.requestProof",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofPresentationRequest"
-              }
-            }
-          },
-          "description": "ProofPresentationRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Request proof",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-request": {
-      "post": {
-        "operationId": "ProofController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PresentationProofRequest"
-              }
-            }
-          },
-          "description": "PresentationProofRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": ["Proof"]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-presentation": {
-      "post": {
-        "operationId": "ProofController.acceptPresentation",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept presentation",
-        "tags": ["Proof"]
-      }
-    }
-  }
-}
-- 
GitLab