e0bd377e2638ebac4b3036ebb61f5be5a83d8f30
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / test / resources / quesionnaire / schema / componentQuestionnaire.json
1 {
2   "$schema": "http://json-schema.org/draft-04/schema#",
3   "type": "object",
4   "properties": {
5     "general": {
6       "type": "object",
7       "properties": {
8         "hypervisor": {
9           "type": "object",
10           "properties": {
11             "hypervisor": {
12               "type": "string",
13               "enum": [
14                 "KVM",
15                 "VMWare ESXi"
16               ],
17               "default": "KVM"
18             },
19             "drivers": {
20               "type": "string",
21               "maxLength": 300,
22               "pattern": "^[A-Za-z0-9_,-]*$"
23             },
24             "containerFeaturesDescription": {
25               "type": "string",
26               "maxLength": 1000,
27               "pattern": "^[A-Za-z0-9_, -]*$"
28             }
29           },
30           "additionalProperties": false
31         },
32         "image": {
33           "type": "object",
34           "properties": {
35             "format": {
36               "type": "string",
37               "enum": [
38                 "aki",
39                 "ami",
40                 "ari",
41                 "iso",
42                 "qcow2",
43                 "raw",
44                 "vdi",
45                 "vhd",
46                 "vmdk"
47               ],
48               "default": "qcow2"
49             },
50             "providedBy": {
51               "type": "string",
52               "enum": [
53                 "Vendor"
54               ],
55               "default": "Vendor"
56             },
57             "bootDiskSizePerVM": {
58               "type": "number",
59               "maximum": 100
60             },
61             "ephemeralDiskSizePerVM": {
62               "type": "number",
63               "maximum": 400
64             }
65           },
66           "additionalProperties": false
67         },
68         "recovery": {
69           "type": "object",
70           "properties": {
71             "pointObjective": {
72               "type": "number",
73               "minimum": 0,
74               "exclusiveMinimum": true,
75               "maximum": 15,
76               "exclusiveMaximum ": true
77             },
78             "timeObjective": {
79               "type": "number",
80               "minimum": 0,
81               "exclusiveMinimum": true,
82               "maximum": 300,
83               "exclusiveMaximum ": true
84             },
85             "vmProcessFailuresHandling": {
86               "type": "string"
87             }
88           },
89           "additionalProperties": false
90         },
91         "dnsConfiguration": {
92           "type": "string"
93         },
94         "vmCloneUsage": {
95           "type": "string",
96           "maximum": 300
97         }
98       },
99       "additionalProperties": false
100     },
101     "compute": {
102       "type": "object",
103       "properties": {
104         "vmSizing": {
105           "type": "object",
106           "properties": {
107             "numOfCPUs": {
108               "type": "number",
109               "minimum": 0,
110               "exclusiveMinimum": true,
111               "maximum": 16,
112               "default": 2
113             },
114             "fileSystemSizeGB": {
115               "type": "number",
116               "minimum": 0,
117               "exclusiveMinimum": true,
118               "default": 5
119             },
120             "persistentStorageVolumeSize": {
121               "type": "number",
122               "minimum": 0,
123               "exclusiveMinimum": true
124             },
125             "IOOperationsPerSec": {
126               "type": "number",
127               "minimum": 0,
128               "exclusiveMinimum": true
129             }
130           },
131           "additionalProperties": false
132         },
133         "numOfVMs": {
134           "type": "object",
135           "properties": {
136             "minimum": {
137               "type": "number",
138               "minimum": 0,
139               "exclusiveMinimum": true,
140               "maximum": 100
141             },
142             "maximum": {
143               "type": "number",
144               "minimum": 0,
145               "exclusiveMinimum": true,
146               "maximum": 100
147             },
148             "CpuOverSubscriptionRatio": {
149               "type": "string",
150               "enum": [
151                 "1:1",
152                 "4:1",
153                 "16:1"
154               ],
155               "default": "4:1"
156             },
157             "MemoryRAM": {
158               "type": "string",
159               "enum": [
160                 "2 GB",
161                 "4 GB",
162                 "8 GB"
163               ],
164               "default": "2 GB"
165             }
166           },
167           "additionalProperties": false
168         },
169         "guestOS": {
170           "type": "object",
171           "properties": {
172             "name": {
173               "type": "string",
174               "maxLength": 50
175             },
176             "bitSize": {
177               "type": "number",
178               "enum": [
179                 64,
180                 32
181               ],
182               "default": 64
183             },
184             "tools": {
185               "type": "string"
186             }
187           },
188           "additionalProperties": false
189         }
190       },
191       "additionalProperties": false
192     },
193     "highAvailabilityAndLoadBalancing": {
194       "type": "object",
195       "properties": {
196         "failureLoadDistribution": {
197           "type": "string",
198           "maxLength": 1000
199         },
200         "nkModelImplementation": {
201           "type": "string",
202           "maxLength": 1000
203         },
204         "architectureChoice": {
205           "type": "string",
206           "maxLength": 1000
207         },
208         "slaRequirements": {
209           "type": "string",
210           "maxLength": 1000
211         },
212         "horizontalScaling": {
213           "type": "string",
214           "maxLength": 1000
215         },
216         "loadDistributionMechanism": {
217           "type": "string",
218           "maxLength": 1000
219         }
220       },
221       "additionalProperties": false
222     },
223     "network": {
224       "type": "object",
225       "properties": {
226         "networkCapacity": {
227           "type": "object",
228           "properties": {
229             "protocolWithHighestTrafficProfileAcrossAllNICs": {
230               "type": "string",
231               "enum": [
232                 "",
233                 "TCP",
234                 "UDP",
235                 "SCTP",
236                 "IPsec"
237               ],
238               "default": ""
239             },
240             "networkTransactionsPerSecond": {
241               "type": "number"
242             }
243           },
244           "additionalProperties": false
245         }
246       },
247       "additionalProperties": false
248     },
249     "storage": {
250       "type": "object",
251       "properties": {
252         "backup": {
253           "type": "object",
254           "properties": {
255             "backupType": {
256               "type": "string",
257               "enum": [
258                 "On Site",
259                 "Off Site"
260               ],
261               "default": "On Site"
262             },
263             "backupStorageSize": {
264               "type": "number"
265             },
266             "backupSolution": {
267               "type": "string"
268             },
269             "backupNIC": {
270               "type": "string",
271               "enum": [
272                 ""
273               ],
274               "default": ""
275             }
276           },
277           "additionalProperties": false
278         },
279         "snapshotBackup": {
280           "type": "object",
281           "properties": {
282             "snapshotFrequency": {
283               "type": "number",
284               "default": 24,
285               "minimum": 1,
286               "exclusiveMinimum": true
287             }
288           },
289           "additionalProperties": false
290         },
291         "logBackup": {
292           "type": "object",
293           "properties": {
294             "sizeOfLogFiles": {
295               "type": "number",
296               "maximum": 5,
297               "exclusiveMaximum": true
298             },
299             "logBackupFrequency": {
300               "type": "number",
301               "maximum": 4,
302               "exclusiveMaximum": true
303             },
304             "logRetentionPeriod": {
305               "type": "number",
306               "maximum": 15,
307               "exclusiveMaximum": true
308             },
309             "logFileLocation": {
310               "type": "string",
311               "maxLength": 300
312             }
313           },
314           "additionalProperties": false
315         }
316       },
317       "additionalProperties": false
318     }
319   },
320   "additionalProperties": false
321 }