Revert "Removes POL code from MON repo"
[osm/MON.git] / policy_module / osm_policy_module / models / configure_scaling.json
diff --git a/policy_module/osm_policy_module/models/configure_scaling.json b/policy_module/osm_policy_module/models/configure_scaling.json
new file mode 100644 (file)
index 0000000..0a87491
--- /dev/null
@@ -0,0 +1,111 @@
+{
+  "$schema": "http://json-schema.org/schema#",
+  "type": "object",
+  "properties": {
+    "ns_id": {
+      "type": "string"
+    },
+    "scaling_group_descriptor": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "type": "string"
+        },
+        "scaling_policy": {
+          "type": "object",
+          "properties": {
+            "scale_in_operation_type": {
+              "type": "string",
+              "enum": [
+                "and",
+                "or"
+              ]
+            },
+            "scale_out_operation_type": {
+              "type": "string",
+              "enum": [
+                "and",
+                "or"
+              ]
+            },
+            "threshold_time": {
+              "type": "number"
+            },
+            "cooldown_time": {
+              "type": "number"
+            },
+            "scaling_criteria": {
+              "type": "array",
+              "items": {
+                "type": "object",
+                "properties": {
+                  "scale_in_threshold": {
+                    "type": "number"
+                  },
+                  "scale_out_threshold": {
+                    "type": "number"
+                  },
+                  "scale_in_relational_operation": {
+                    "type": "string",
+                    "enum": [
+                      "lt",
+                      "gt",
+                      "le",
+                      "ge",
+                      "eq"
+                    ]
+                  },
+                  "scale_out_relational_operation": {
+                    "type": "string",
+                    "enum": [
+                      "lt",
+                      "gt",
+                      "le",
+                      "ge",
+                      "eq"
+                    ]
+                  },
+                  "monitoring_param": {
+                    "type": "object",
+                    "properties": {
+                      "id": {
+                        "type": "string"
+                      },
+                      "name": {
+                        "type": "string"
+                      },
+                      "aggregation_type": {
+                        "type": "string",
+                        "enum": [
+                          "average",
+                          "maximum",
+                          "minimum",
+                          "count",
+                          "sum"
+                        ]
+                      },
+                      "vdu_monitoring_param": {
+                        "type": "object",
+                        "properties": {
+                          "vnf_member_index": {
+                            "type": "string"
+                          },
+                          "vdu_name": {
+                            "type": "string"
+                          },
+                          "name": {
+                            "type": "string"
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}