72e7963f42a6e203f13a1a1457bb6c9459ab5294
[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                     ]
57                   },
58                   "scale_out_relational_operation": {
59                     "type": "string",
60                     "enum": [
61                       "lt",
62                       "gt",
63                       "le",
64                       "ge",
65                       "eq"
66                     ]
67                   },
68                   "monitoring_param": {
69                     "type": "object",
70                     "properties": {
71                       "id": {
72                         "type": "string"
73                       },
74                       "name": {
75                         "type": "string"
76                       },
77                       "aggregation_type": {
78                         "type": "string",
79                         "enum": [
80                           "average",
81                           "maximum",
82                           "minimum",
83                           "count",
84                           "sum"
85                         ]
86                       },
87                       "vdu_monitoring_param": {
88                         "type": "object",
89                         "properties": {
90                           "vim_uuid": {
91                             "type": "string"
92                           },
93                           "resource_id": {
94                             "type": "string"
95                           },
96                           "name": {
97                             "type": "string"
98                           }
99                         }
100                       }
101                     }
102                   }
103                 }
104               }
105             }
106           }
107         }
108       }
109     }
110   }
111 }