Policy Module first commit
[osm/MON.git] / policy_module / osm_policy_module / models / configure_scaling.json
1 {
2   "$schema": "http://json-schema.org/schema#",
3   "type": "object",
4   "properties": {
5     "ns_id": {
6       "type": "string"
7     },
8     "scaling_group_descriptor": {
9       "type": "object",
10       "properties": {
11         "name": {
12           "type": "string"
13         },
14         "scaling_policy": {
15           "type": "object",
16           "properties": {
17             "scale_in_operation_type": {
18               "type": "string",
19               "enum": [
20                 "and",
21                 "or"
22               ]
23             },
24             "scale_out_operation_type": {
25               "type": "string",
26               "enum": [
27                 "and",
28                 "or"
29               ]
30             },
31             "threshold_time": {
32               "type": "number"
33             },
34             "cooldown_time": {
35               "type": "number"
36             },
37             "scaling_criteria": {
38               "type": "array",
39               "items": {
40                 "type": "object",
41                 "properties": {
42                   "scale_in_threshold": {
43                     "type": "number"
44                   },
45                   "scale_out_threshold": {
46                     "type": "number"
47                   },
48                   "scale_in_relational_operation": {
49                     "type": "string",
50                     "enum": [
51                       "lt",
52                       "gt",
53                       "le",
54                       "ge",
55                       "eq",
56                       "ne"
57                     ]
58                   },
59                   "scale_out_relational_operation": {
60                     "type": "string",
61                     "enum": [
62                       "lt",
63                       "gt",
64                       "le",
65                       "ge",
66                       "eq",
67                       "ne"
68                     ]
69                   },
70                   "monitoring_param": {
71                     "type": "object",
72                     "properties": {
73                       "id": {
74                         "type": "string"
75                       },
76                       "name": {
77                         "type": "string"
78                       },
79                       "aggregation_type": {
80                         "type": "string",
81                         "enum": [
82                           "avg",
83                           "max",
84                           "min",
85                           "last",
86                           "sum"
87                         ]
88                       },
89                       "vdu_monitoring_param": {
90                         "type": "object",
91                         "properties": {
92                           "vim_uuid": {
93                             "type": "string"
94                           },
95                           "resource_id": {
96                             "type": "string"
97                           },
98                           "name": {
99                             "type": "string"
100                           }
101                         }
102                       }
103                     }
104                   }
105                 }
106               }
107             }
108           }
109         }
110       }
111     }
112   }
113 }