Draft of op policy
[clamp.git] / src / test / resources / tosca / operational-policy-json-schema.json
diff --git a/src/test/resources/tosca/operational-policy-json-schema.json b/src/test/resources/tosca/operational-policy-json-schema.json
new file mode 100644 (file)
index 0000000..d6870dc
--- /dev/null
@@ -0,0 +1,574 @@
+{
+       "schema": {
+               "uniqueItems": "true",
+               "format": "tabs",
+               "type": "array",
+               "minItems": 1,
+               "maxItems": 1,
+               "title": "Operational policies",
+               "items": {
+                       "type": "object",
+                       "title": "Operational Policy Item",
+                       "id": "operational_policy_item",
+                       "headerTemplate": "{{self.name}}",
+                       "required": [
+                               "name",
+                               "configurationsJson"
+                       ],
+                       "properties": {
+                               "name": {
+                                       "type": "string",
+                                       "title": "Operational policy name",
+                                       "readOnly": "True"
+                               },
+                               "configurationsJson": {
+                                       "type": "object",
+                                       "title": "Configuration",
+                                       "required": [
+                                               "operational_policy",
+                                               "guard_policies"
+                                       ],
+                                       "properties": {
+                                               "operational_policy": {
+                                                       "type": "object",
+                                                       "title": "Related Parameters",
+                                                       "required": [
+                                                               "controlLoop",
+                                                               "policies"
+                                                       ],
+                                                       "properties": {
+                                                               "controlLoop": {
+                                                                       "type": "object",
+                                                                       "title": "Control Loop details",
+                                                                       "required": [
+                                                                               "timeout",
+                                                                               "abatement",
+                                                                               "trigger_policy",
+                                                                               "controlLoopName"
+                                                                       ],
+                                                                       "properties": {
+                                                                               "timeout": {
+                                                                                       "type": "string",
+                                                                                       "title": "Overall Time Limit",
+                                                                                       "default": "0",
+                                                                                       "format": "number"
+                                                                               },
+                                                                               "abatement": {
+                                                                                       "type": "string",
+                                                                                       "title": "Abatement",
+                                                                                       "enum": [
+                                                                                               "True",
+                                                                                               "False"
+                                                                                       ]
+                                                                               },
+                                                                               "trigger_policy": {
+                                                                                       "type": "string",
+                                                                                       "title": "Policy Decision Entry"
+                                                                               },
+                                                                               "controlLoopName": {
+                                                                                       "type": "string",
+                                                                                       "title": "Control loop name",
+                                                                                       "readOnly": "True"
+                                                                               }
+                                                                       }
+                                                               },
+                                                               "policies": {
+                                                                       "uniqueItems": "true",
+                                                                       "id": "policies_array",
+                                                                       "type": "array",
+                                                                       "title": "Policy Decision Tree",
+                                                                       "format": "tabs-top",
+                                                                       "items": {
+                                                                               "title": "Policy Decision",
+                                                                               "type": "object",
+                                                                               "id": "policy_item",
+                                                                               "headerTemplate": "{{self.id}} - {{self.recipe}}",
+                                                                               "format": "categories",
+                                                                               "basicCategoryTitle": "recipe",
+                                                                               "required": [
+                                                                                       "id",
+                                                                                       "recipe",
+                                                                                       "retry",
+                                                                                       "timeout",
+                                                                                       "actor",
+                                                                                       "success",
+                                                                                       "failure",
+                                                                                       "failure_timeout",
+                                                                                       "failure_retries",
+                                                                                       "failure_exception",
+                                                                                       "failure_guard",
+                                                                                       "target"
+                                                                               ],
+                                                                               "properties": {
+                                                                                       "id": {
+                                                                                               "default": "Policy 1",
+                                                                                               "title": "Policy ID",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "recipe": {
+                                                                                               "title": "Recipe",
+                                                                                               "type": "string",
+                                                                                               "enum": [
+                                                                                                       "Restart",
+                                                                                                       "Rebuild",
+                                                                                                       "Migrate",
+                                                                                                       "Health-Check",
+                                                                                                       "ModifyConfig",
+                                                                                                       "VF Module Create",
+                                                                                                       "VF Module Delete",
+                                                                                                       "Reroute"
+                                                                                               ]
+                                                                                       },
+                                                                                       "retry": {
+                                                                                               "default": "0",
+                                                                                               "title": "Number of Retry",
+                                                                                               "type": "string",
+                                                                                               "format": "number"
+                                                                                       },
+                                                                                       "timeout": {
+                                                                                               "default": "0",
+                                                                                               "title": "Timeout",
+                                                                                               "type": "string",
+                                                                                               "format": "number"
+                                                                                       },
+                                                                                       "actor": {
+                                                                                               "title": "Actor",
+                                                                                               "type": "string",
+                                                                                               "enum": [
+                                                                                                       "APPC",
+                                                                                                       "SO",
+                                                                                                       "VFC",
+                                                                                                       "SDNC",
+                                                                                                       "SDNR"
+                                                                                               ]
+                                                                                       },
+                                                                                       "payload": {
+                                                                                               "title": "Payload (YAML)",
+                                                                                               "type": "string",
+                                                                                               "format": "textarea"
+                                                                                       },
+                                                                                       "success": {
+                                                                                               "default": "final_success",
+                                                                                               "title": "When Success",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "failure": {
+                                                                                               "default": "final_failure",
+                                                                                               "title": "When Failure",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "failure_timeout": {
+                                                                                               "default": "final_failure_timeout",
+                                                                                               "title": "When Failure Timeout",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "failure_retries": {
+                                                                                               "default": "final_failure_retries",
+                                                                                               "title": "When Failure Retries",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "failure_exception": {
+                                                                                               "default": "final_failure_exception",
+                                                                                               "title": "When Failure Exception",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "failure_guard": {
+                                                                                               "default": "final_failure_guard",
+                                                                                               "title": "When Failure Guard",
+                                                                                               "type": "string"
+                                                                                       },
+                                                                                       "target": {
+                                                                                               "type": "object",
+                                                                                               "required": [
+                                                                                                       "type",
+                                                                                                       "resourceID"
+                                                                                               ],
+                                                                                               "anyOf": [
+                                                                                                       {
+                                                                                                               "title": "User Defined",
+                                                                                                               "additionalProperties": "True",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Target type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "",
+                                                                                                                               "enum": [
+                                                                                                                                       "VNF",
+                                                                                                                                       "VFMODULE",
+                                                                                                                                       "VM"
+                                                                                                                               ]
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Target type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": ""
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       },
+                                                                                                       {
+                                                                                                               "title": "VNF-vLoadBalancerMS 0",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "VNF",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Resource ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "vLoadBalancerMS",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       },
+                                                                                                       {
+                                                                                                               "title": "VFMODULE-Vloadbalancerms..vpkg..module-1",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "VFMODULE",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Resource ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vpkg..module-1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelInvariantId": {
+                                                                                                                               "title": "Model Invariant Id (ModelInvariantUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "ca052563-eb92-4b5b-ad41-9111768ce043",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersionId": {
+                                                                                                                               "title": "Model Version Id (ModelUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelName": {
+                                                                                                                               "title": "Model Name",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vpkg..module-1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersion": {
+                                                                                                                               "title": "Model Version",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelCustomizationId": {
+                                                                                                                               "title": "Customization ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       },
+                                                                                                       {
+                                                                                                               "title": "VFMODULE-Vloadbalancerms..vdns..module-3",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "VFMODULE",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Resource ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vdns..module-3",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelInvariantId": {
+                                                                                                                               "title": "Model Invariant Id (ModelInvariantUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersionId": {
+                                                                                                                               "title": "Model Version Id (ModelUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "4fa73b49-8a6c-493e-816b-eb401567b720",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelName": {
+                                                                                                                               "title": "Model Name",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vdns..module-3",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersion": {
+                                                                                                                               "title": "Model Version",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelCustomizationId": {
+                                                                                                                               "title": "Customization ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       },
+                                                                                                       {
+                                                                                                               "title": "VFMODULE-Vloadbalancerms..base_template..module-0",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "VFMODULE",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Resource ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..base_template..module-0",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelInvariantId": {
+                                                                                                                               "title": "Model Invariant Id (ModelInvariantUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersionId": {
+                                                                                                                               "title": "Model Version Id (ModelUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "63734409-f745-4e4d-a38b-131638a0edce",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelName": {
+                                                                                                                               "title": "Model Name",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..base_template..module-0",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersion": {
+                                                                                                                               "title": "Model Version",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelCustomizationId": {
+                                                                                                                               "title": "Customization ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       },
+                                                                                                       {
+                                                                                                               "title": "VFMODULE-Vloadbalancerms..vlb..module-2",
+                                                                                                               "properties": {
+                                                                                                                       "type": {
+                                                                                                                               "title": "Type",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "VFMODULE",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "resourceID": {
+                                                                                                                               "title": "Resource ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vlb..module-2",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelInvariantId": {
+                                                                                                                               "title": "Model Invariant Id (ModelInvariantUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "a772a1f4-0064-412c-833d-4749b15828dd",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersionId": {
+                                                                                                                               "title": "Model Version Id (ModelUUID)",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelName": {
+                                                                                                                               "title": "Model Name",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "Vloadbalancerms..vlb..module-2",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelVersion": {
+                                                                                                                               "title": "Model Version",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "1",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       },
+                                                                                                                       "modelCustomizationId": {
+                                                                                                                               "title": "Customization ID",
+                                                                                                                               "type": "string",
+                                                                                                                               "default": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+                                                                                                                               "readOnly": "True"
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       }
+                                                                                               ]
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "guard_policies": {
+                                                       "type": "array",
+                                                       "format": "tabs-top",
+                                                       "title": "Associated Guard policies",
+                                                       "items": {
+                                                               "headerTemplate": "{{self.policy-id}} - {{self.content.recipe}}",
+                                                               "anyOf": [
+                                                                       {
+                                                                               "title": "Guard MinMax",
+                                                                               "type": "object",
+                                                                               "properties": {
+                                                                                       "policy-id": {
+                                                                                               "type": "string",
+                                                                                               "default": "guard.minmax.new",
+                                                                                               "pattern": "^(guard.minmax\\..*)$"
+                                                                                       },
+                                                                                       "content": {
+                                                                                               "properties": {
+                                                                                                       "actor": {
+                                                                                                               "type": "string",
+                                                                                                               "enum": [
+                                                                                                                       "APPC",
+                                                                                                                       "SO",
+                                                                                                                       "VFC",
+                                                                                                                       "SDNC",
+                                                                                                                       "SDNR"
+                                                                                                               ]
+                                                                                                       },
+                                                                                                       "recipe": {
+                                                                                                               "type": "string",
+                                                                                                               "enum": [
+                                                                                                                       "Restart",
+                                                                                                                       "Rebuild",
+                                                                                                                       "Migrate",
+                                                                                                                       "Health-Check",
+                                                                                                                       "ModifyConfig",
+                                                                                                                       "VF Module Create",
+                                                                                                                       "VF Module Delete",
+                                                                                                                       "Reroute"
+                                                                                                               ]
+                                                                                                       },
+                                                                                                       "targets": {
+                                                                                                               "type": "string",
+                                                                                                               "default": ".*"
+                                                                                                       },
+                                                                                                       "clname": {
+                                                                                                               "type": "string",
+                                                                                                               "template": "{{loopName}}",
+                                                                                                               "watch": {
+                                                                                                                       "loopName": "operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName"
+                                                                                                               }
+                                                                                                       },
+                                                                                                       "guardActiveStart": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "00:00:00Z"
+                                                                                                       },
+                                                                                                       "guardActiveEnd": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "10:00:00Z"
+                                                                                                       },
+                                                                                                       "min": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "0"
+                                                                                                       },
+                                                                                                       "max": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "1"
+                                                                                                       }
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       },
+                                                                       {
+                                                                               "title": "Guard Frequency",
+                                                                               "type": "object",
+                                                                               "properties": {
+                                                                                       "policy-id": {
+                                                                                               "type": "string",
+                                                                                               "default": "guard.frequency.new",
+                                                                                               "pattern": "^(guard.frequency\\..*)$"
+                                                                                       },
+                                                                                       "content": {
+                                                                                               "properties": {
+                                                                                                       "actor": {
+                                                                                                               "type": "string",
+                                                                                                               "enum": [
+                                                                                                                       "APPC",
+                                                                                                                       "SO",
+                                                                                                                       "VFC",
+                                                                                                                       "SDNC",
+                                                                                                                       "SDNR"
+                                                                                                               ]
+                                                                                                       },
+                                                                                                       "recipe": {
+                                                                                                               "type": "string",
+                                                                                                               "enum": [
+                                                                                                                       "Restart",
+                                                                                                                       "Rebuild",
+                                                                                                                       "Migrate",
+                                                                                                                       "Health-Check",
+                                                                                                                       "ModifyConfig",
+                                                                                                                       "VF Module Create",
+                                                                                                                       "VF Module Delete",
+                                                                                                                       "Reroute"
+                                                                                                               ]
+                                                                                                       },
+                                                                                                       "targets": {
+                                                                                                               "type": "string",
+                                                                                                               "default": ".*"
+                                                                                                       },
+                                                                                                       "clname": {
+                                                                                                               "type": "string",
+                                                                                                               "template": "{{loopName}}",
+                                                                                                               "watch": {
+                                                                                                                       "loopName": "operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName"
+                                                                                                               }
+                                                                                                       },
+                                                                                                       "guardActiveStart": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "00:00:00Z"
+                                                                                                       },
+                                                                                                       "guardActiveEnd": {
+                                                                                                               "type": "string",
+                                                                                                               "default": "10:00:00Z"
+                                                                                                       },
+                                                                                                       "limit": {
+                                                                                                               "type": "string"
+                                                                                                       },
+                                                                                                       "timeWindow": {
+                                                                                                               "type": "string"
+                                                                                                       },
+                                                                                                       "timeUnits": {
+                                                                                                               "type": "string",
+                                                                                                               "enum": [
+                                                                                                                       "minute",
+                                                                                                                       "hour",
+                                                                                                                       "day",
+                                                                                                                       "week",
+                                                                                                                       "month",
+                                                                                                                       "year"
+                                                                                                               ]
+                                                                                                       }
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               ]
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
\ No newline at end of file