Refactoring Subscription Create LCM use case

- Client to NCMP: CmSubscriptionNcmpInEvent
- NCMP to DMI: CmSubscriptionDmiInEvent
- DMI to NCMP: CmSubscriptionDmiOutEvent
- NCMP to Client: CmSubscriptionNcmpOutEvent
- code package changed from avcsubscription to cmsubscription
- Other classes name as per the events naming above
- Test classes refactored
- NO LOGIC changes incorporated in this patch

Issue-ID: CPS-1831
Change-Id: Id5ad5f799007deaaf6d6fc0f402c130339263d09
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json
new file mode 100644
index 0000000..3750bd0
--- /dev/null
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json
@@ -0,0 +1,121 @@
+{
+  "$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
+    }
+  }
+}
\ No newline at end of file
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json
new file mode 100644
index 0000000..c08a4ea
--- /dev/null
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json
@@ -0,0 +1,70 @@
+{
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-dmi-out-event-schema:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionDmiOutEvent",
+  "definitions": {
+    "SubscriptionStatus": {
+      "description": "The subscription status information",
+      "type": "object",
+      "properties": {
+        "id": {
+          "type": "string"
+        },
+        "status" : {
+          "type": "string",
+          "enum": [
+            "ACCEPTED",
+            "REJECTED",
+            "PENDING"
+          ]
+        },
+        "details" : {
+          "type": "string"
+        }
+      },
+      "required": [
+        "id",
+        "status"
+      ],
+      "additionalProperties": false
+    },
+    "CmSubscriptionDmiOutEvent" : {
+      "description": "The payload for subscription response event.",
+      "type": "object",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent",
+      "properties": {
+        "data": {
+          "type": "object",
+          "properties": {
+            "clientId": {
+              "type": "string"
+            },
+            "subscriptionName": {
+              "type": "string"
+            },
+            "dmiName": {
+              "type": "string"
+            },
+            "subscriptionStatus": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SubscriptionStatus"
+              }
+            }
+          },
+          "required": [
+            "clientId",
+            "subscriptionName",
+            "dmiName",
+            "subscriptionStatus"
+          ],
+          "additionalProperties": false
+        }
+      },
+      "additionalProperties": false,
+      "required": [
+        "data"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json
new file mode 100644
index 0000000..818a8e7
--- /dev/null
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json
@@ -0,0 +1,99 @@
+{
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-ncmp-in-event:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionNcmpInEvent",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "definitions": {
+    "CmSubscriptionNcmpInEvent": {
+      "description": "The payload for subscription event.",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent",
+      "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": {
+                    "type": "string"
+                  }
+                },
+                "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"
+                }
+              },
+              "required": [
+                "clientID",
+                "name"
+              ],
+              "type": "object",
+              "additionalProperties": false
+            }
+          },
+          "required": [
+            "dataType",
+            "predicates",
+            "subscription"
+          ],
+          "type": "object",
+          "additionalProperties": false
+        }
+      },
+      "type": "object",
+      "additionalProperties": false,
+      "required": [
+        "data"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json
new file mode 100644
index 0000000..9c0c28b
--- /dev/null
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json
@@ -0,0 +1,69 @@
+{
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-ncmp-out-event-schema:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionNcmpOutEvent",
+  "definitions": {
+    "CmSubscriptionNcmpOutEvent": {
+      "description": "The payload for avc subscription event outcome message.",
+      "type": "object",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent",
+      "additionalProperties": false,
+      "properties": {
+        "data": {
+          "$ref": "#/definitions/data"
+        }
+      },
+      "required": [
+        "data"
+      ]
+    },
+    "data": {
+      "type": "object",
+      "description": "The actual data containing information about the pending and rejected targets",
+      "additionalProperties": false,
+      "properties": {
+        "statusCode": {
+          "type": "integer"
+        },
+        "statusMessage": {
+          "type": "string"
+        },
+        "additionalInfo": {
+          "type": "object",
+          "additionalProperties": false,
+          "properties": {
+            "rejected": {
+              "$ref": "#/definitions/additionalInfoDetails"
+            },
+            "pending": {
+              "$ref": "#/definitions/additionalInfoDetails"
+            }
+          }
+        }
+      },
+      "required": [
+        "statusCode",
+        "statusMessage"
+      ]
+    },
+    "additionalInfoDetails": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "description": "Details for the target cmhandles",
+        "additionalProperties": false,
+        "properties": {
+          "details": {
+            "type": "string"
+          },
+          "targets": {
+            "type": "array",
+            "items": {
+              "type": "string"
+            }
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file