{
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-dmi-in-event-schema:1.0.0",
  "$ref": "#/definitions/CmSubscriptionDmiInEvent",
  "definitions": {
    "CmSubscriptionDmiInEvent": {
      "description": "The payload for subscription event to be forwarded to dmi plugins.",
      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent",
      "properties": {
        "data": {
          "properties": {
            "dataType": {
              "description": "The datatype content.",
              "properties": {
                "dataCategory": {
                  "description": "The category type of the data",
                  "type": "string"
                },
                "dataProvider": {
                  "description": "The provider name of the data",
                  "type": "string"
                },
                "dataspace": {
                  "description": "The dataspace name",
                  "type": "string"
                }
              },
              "required": [
                "dataCategory",
                "dataProvider",
                "dataspace"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "predicates": {
              "description": "Additional values to be added into the subscription",
              "properties": {
                "datastore": {
                  "description": "datastore which is to be used by the subscription",
                  "type": "string"
                },
                "targets": {
                  "description": "CM Handles to be targeted by the subscription",
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/CmHandle"
                  }
                },
                "datastore-xpath-filter": {
                  "description": "filter to be applied to the CM Handles through this event",
                  "type": "string"
                }
              },
              "required": [
                "datastore",
                "targets",
                "datastore-xpath-filter"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "subscription": {
              "description": "The subscription details.",
              "properties": {
                "clientID": {
                  "description": "The clientID",
                  "type": "string"
                },
                "name": {
                  "description": "The name of the subscription",
                  "type": "string"
                },
                "isTagged": {
                  "description": "optional parameter, default is no",
                  "type": "boolean",
                  "default": false
                }
              },
              "required": [
                "clientID",
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "dataType",
            "predicates",
            "subscription"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false,
      "required": [
        "data"
      ]
    },
    "CmHandle": {
      "description": "The CM handle information",
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "additional-properties": {
          "existingJavaType": "java.util.Map<String,String>"
        }
      },
      "required": [
        "id",
        "additional-properties"
      ],
      "additionalProperties": false
    }
  }
}