{
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "$id": "urn:cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1",
  "$ref": "#/definitions/NcmpAsyncRequestResponseEvent",
  "definitions": {
    "NcmpAsyncRequestResponseEvent": {
      "description": "The payload for CPS async request response event.",
      "type": "object",
      "properties": {
        "eventId": {
          "description": "The unique id identifying the event generated by DMI.",
          "type": "string"
        },
        "eventCorrelationId": {
          "description": "The request id passed by NCMP.",
          "type": "string"
        },
        "eventTime": {
          "description": "The time of the event. The expected format is 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'.",
          "type": "string"
        },
        "eventTarget": {
          "description": "The target of the event.",
          "type": "string"
        },
        "eventType": {
          "description": "The type of the event.",
          "type": "string"
        },
        "eventSchema": {
          "description": "The event schema for async request response events.",
          "type": "string"
        },
        "eventSchemaVersion": {
          "description": "The event schema version for async request response events.",
          "type": "string"
        },
        "event": {
        "$ref": "#/definitions/Event"
        },
        "forwardedEvent": {
          "$ref": "#/definitions/Forwarded-Event"
        }
      },
      "required": [
        "eventId",
        "eventCorrelationId",
        "eventTime",
        "eventTarget",
        "eventType",
        "eventSchema",
        "eventSchemaVersion"
      ]
    },
    "Forwarded-Event": {
      "description": "The event content.",
      "type": "object",
      "properties": {
        "eventId": {
          "description": "The unique id identifying the event generated by DMI.",
          "type": "string"
        },
        "eventCorrelationId": {
          "description": "The request id passed by NCMP.",
          "type": "string"
        },
        "eventTime": {
          "description": "The time of the event. The expected format is 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'.",
          "type": "string"
        },
        "eventTarget": {
          "description": "The target of the event.",
          "type": "string"
        },
        "eventType": {
          "description": "The type of the event.",
          "type": "string"
        },
        "eventSchema": {
          "description": "The event schema for async request response events.",
          "type": "string"
        },
        "eventSchemaVersion": {
          "description": "The event schema version for async request response events.",
          "type": "string"
        },
        "eventSource": {
          "description": "The source of the event.",
          "type": "string"
        },
        "response-data-schema": {
          "description": "The received schema of response data",
          "type": "string"
        },
        "response-status": {
          "description": "The received status of the response.",
          "type": "string"
        },
        "response-code": {
          "description": "The received code of the response.",
          "type": "string"
        },
        "forwardedEventData": {
          "description": "The data payload",
          "type": "object",
          "properties": {
            "forwardedEventPayload": {
              "type": "object"
            }
          }
        },
        "required": [
          "eventId",
          "eventCorrelationId",
          "eventTime",
          "eventTarget",
          "eventType",
          "eventSchema",
          "eventSchemaVersion",
          "eventSource",
          "response-data-schema",
          "response-status",
          "response-code",
          "forwardedEventData"
        ]
      }
    },
    "Event": {
      "description": "The event content.",
      "type": "object",
      "properties": {
        "eventId": {
          "description": "The unique id identifying the event generated by DMI",
          "type": "string"
        },
        "eventCorrelationId": {
          "description": "The request id passed by NCMP.",
          "type": "string"
        },
        "eventTime": {
          "description": "The time of the event. The expected format is 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'.",
          "type": "string"
        },
        "eventTarget": {
          "description": "The target of the event.",
          "type": "string"
        },
        "eventType": {
          "description": "The type of the event.",
          "type": "string"
        },
        "eventSchema": {
          "description": "The event schema for async request response events.",
          "type": "string"
        },
        "eventSource": {
          "description": "The source of the event.",
          "type": "string"
        },
        "response-data-schema": {
          "description": "The received schema of response data",
          "type": "string"
        },
        "response-status": {
          "description": "The received status of the response.",
          "type": "string"
        },
        "response-code": {
          "description": "The received code of the response.",
          "type": "string"
        },
        "response-data": {
          "description": "The data payload",
          "type": "object",
          "properties": {
            "payload": {
              "type": "object"
            }
          }
        },
        "required": [
          "eventId",
          "eventCorrelationId",
          "eventTarget",
          "eventTime",
          "eventType",
          "eventSchema",
          "eventSource",
          "response-data-schema",
          "response-status",
          "response-code",
          "event-data"
        ]
      }
    }
  }
}