UNOMI-673 : add json schema for click, form, video events (#508)

diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/click/click.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/click/click.json
new file mode 100644
index 0000000..18284c9
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/click/click.json
@@ -0,0 +1,27 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/click/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "target": "events",
+    "name": "click",
+    "format": "jsonschema",
+    "version": "1-0-0"
+  },
+  "title": "ClickEvent",
+  "type": "object",
+  "allOf": [
+    {
+      "$ref": "https://unomi.apache.org/schemas/json/event/1-0-0"
+    }
+  ],
+  "properties": {
+    "source": {
+      "$ref": "https://unomi.apache.org/schemas/json/items/page/1-0-0"
+    },
+    "target": {
+      "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"
+    }
+  },
+  "unevaluatedProperties": false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
new file mode 100644
index 0000000..1bc5dd8
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
@@ -0,0 +1,21 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/form/flattenedProperties/fields/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self":{
+    "vendor": "org.apache.unomi",
+    "name": "Form fields",
+    "format":"jsonschema",
+    "version":"1-0-0"
+  },
+  "title": "Form fields",
+  "type": "object",
+  "patternProperties": {
+    "^.*$": {
+      "type": ["array", "string"],
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "unevaluatedProperties": false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
new file mode 100644
index 0000000..fe8fc7a
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
@@ -0,0 +1,18 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/form/flattenedProperties/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self":{
+    "vendor": "org.apache.unomi",
+    "name": "Form flattenedProperties",
+    "format":"jsonschema",
+    "version":"1-0-0"
+  },
+  "title": "Form flattenedProperties",
+  "type": "object",
+  "properties" : {
+    "fields": {
+      "$ref" : "https://unomi.apache.org/schemas/json/events/form/flattenedProperties/fields/1-0-0"
+    }
+  },
+  "unevaluatedProperties" : false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.json
new file mode 100644
index 0000000..d6e1e64
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.json
@@ -0,0 +1,26 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/form/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "target": "events",
+    "name": "form",
+    "format": "jsonschema",
+    "version": "1-0-0"
+  },
+  "title": "FormEvent",
+  "type": "object",
+  "allOf": [{"$ref": "https://unomi.apache.org/schemas/json/event/1-0-0"}],
+  "properties": {
+    "source": {
+      "$ref": "https://unomi.apache.org/schemas/json/items/page/1-0-0"
+    },
+    "target": {
+      "$ref": "https://unomi.apache.org/schemas/json/events/form/source/1-0-0"
+    },
+    "flattenedProperties": {
+      "$ref": "https://unomi.apache.org/schemas/json/events/form/flattenedProperties/1-0-0"
+    }
+  },
+  "unevaluatedProperties" : false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
new file mode 100644
index 0000000..04a1b32
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
@@ -0,0 +1,14 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/form/source/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self":{
+    "vendor": "org.apache.unomi",
+    "name": "FormSource",
+    "format":"jsonschema",
+    "version":"1-0-0"
+  },
+  "title": "FormSource",
+  "type": "object",
+  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0" }],
+  "unevaluatedProperties" : false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/login/login.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/login/login.json
index fdb4c30..9079698 100644
--- a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/login/login.json
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/login/login.json
@@ -1,21 +1,25 @@
 {
   "$id": "https://unomi.apache.org/schemas/json/events/login/1-0-0",
   "$schema": "https://json-schema.org/draft/2019-09/schema",
-  "self":{
-    "vendor":"org.apache.unomi",
-    "target" : "events",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "target": "events",
     "name": "login",
-    "format":"jsonschema",
-    "version":"1-0-0"
+    "format": "jsonschema",
+    "version": "1-0-0"
   },
   "title": "LoginEvent",
   "type": "object",
-  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/event/1-0-0" }],
-  "properties" : {
-    "properties" : {
-      "type" : "object",
+  "allOf": [
+    {
+      "$ref": "https://unomi.apache.org/schemas/json/event/1-0-0"
+    }
+  ],
+  "properties": {
+    "properties": {
+      "type": "object",
       "maxProperties": 50
     }
   },
-  "$comment" : "WARNING: This schema is open and do not restrict unevaluated properties because it is protected with third-party server key check"
-}
\ No newline at end of file
+  "$comment": "WARNING: This schema is open and do not restrict unevaluated properties because it is protected with third-party server key check"
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.json
new file mode 100644
index 0000000..f471d3e
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.json
@@ -0,0 +1,27 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/video/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "target": "events",
+    "name": "video",
+    "format": "jsonschema",
+    "version": "1-0-0"
+  },
+  "title": "VideoEvent",
+  "type": "object",
+  "allOf": [
+    {
+      "$ref": "https://unomi.apache.org/schemas/json/event/1-0-0"
+    }
+  ],
+  "properties": {
+    "source": {
+      "$ref": "https://unomi.apache.org/schemas/json/items/page/1-0-0"
+    },
+    "target": {
+      "$ref": "https://unomi.apache.org/schemas/json/events/video/target/1-0-0"
+    }
+  },
+  "unevaluatedProperties": false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
new file mode 100644
index 0000000..62645a9
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
@@ -0,0 +1,19 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/video/target/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "name": "videoTarget",
+    "format": "jsonschema",
+    "version": "1-0-0"
+  },
+  "title": "videoTarget",
+  "type": "object",
+  "allOf": [{"$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"}],
+  "properties": {
+    "properties": {
+      "$ref": "https://unomi.apache.org/schemas/json/events/video/target/properties/1-0-0"
+    }
+  },
+  "unevaluatedProperties": false
+}
diff --git a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
new file mode 100644
index 0000000..f358d61
--- /dev/null
+++ b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
@@ -0,0 +1,18 @@
+{
+  "$id": "https://unomi.apache.org/schemas/json/events/video/target/properties/1-0-0",
+  "$schema": "https://json-schema.org/draft/2019-09/schema",
+  "self": {
+    "vendor": "org.apache.unomi",
+    "name": "videoTargetProperties",
+    "format": "jsonschema",
+    "version": "1-0-0"
+  },
+  "title": "videoTargetProperties",
+  "type": "object",
+  "properties": {
+    "action": {
+      "type": "string"
+    }
+  },
+  "unevaluatedProperties": false
+}