[SDC] Onboarding 1710 rebase.
[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                 "1 GB",
161                 "2 GB",
162                 "4 GB",
163                 "8 GB"
164               ],
165               "default": "1 GB"
166             }
167           },
168           "additionalProperties": false
169         },
170         "guestOS": {
171           "type": "object",
172           "properties": {
173             "name": {
174               "type": "string",
175               "maxLength": 50
176             },
177             "bitSize": {
178               "type": "number",
179               "enum": [
180                 64,
181                 32
182               ],
183               "default": 64
184             },
185             "tools": {
186               "type": "string"
187             }
188           },
189           "additionalProperties": false
190         }
191       },
192       "additionalProperties": false
193     },
194     "highAvailabilityAndLoadBalancing": {
195       "type": "object",
196       "properties": {
197         "failureLoadDistribution": {
198           "type": "string",
199           "maxLength": 1000
200         },
201         "nkModelImplementation": {
202           "type": "string",
203           "maxLength": 1000
204         },
205         "architectureChoice": {
206           "type": "string",
207           "maxLength": 1000
208         },
209         "slaRequirements": {
210           "type": "string",
211           "maxLength": 1000
212         },
213         "horizontalScaling": {
214           "type": "string",
215           "maxLength": 1000
216         },
217         "loadDistributionMechanism": {
218           "type": "string",
219           "maxLength": 1000
220         }
221       },
222       "additionalProperties": false
223     },
224     "network": {
225       "type": "object",
226       "properties": {
227         "networkCapacity": {
228           "type": "object",
229           "properties": {
230             "protocolWithHighestTrafficProfileAcrossAllNICs": {
231               "type": "string",
232               "enum": [
233                 "",
234                 "TCP",
235                 "UDP",
236                 "SCTP",
237                 "IPsec"
238               ],
239               "default": ""
240             },
241             "networkTransactionsPerSecond": {
242               "type": "number"
243             }
244           },
245           "additionalProperties": false
246         }
247       },
248       "additionalProperties": false
249     },
250     "storage": {
251       "type": "object",
252       "properties": {
253         "backup": {
254           "type": "object",
255           "properties": {
256             "backupType": {
257               "type": "string",
258               "enum": [
259                 "On Site",
260                 "Off Site"
261               ],
262               "default": "On Site"
263             },
264             "backupStorageSize": {
265               "type": "number"
266             },
267             "backupSolution": {
268               "type": "string"
269             },
270             "backupNIC": {
271               "type": "string",
272               "enum": [
273                 ""
274               ],
275               "default": ""
276             }
277           },
278           "additionalProperties": false
279         },
280         "snapshotBackup": {
281           "type": "object",
282           "properties": {
283             "snapshotFrequency": {
284               "type": "number",
285               "default": 24,
286               "minimum": 1,
287               "exclusiveMinimum": true
288             }
289           },
290           "additionalProperties": false
291         },
292         "logBackup": {
293           "type": "object",
294           "properties": {
295             "sizeOfLogFiles": {
296               "type": "number",
297               "maximum": 5,
298               "exclusiveMaximum": true
299             },
300             "logBackupFrequency": {
301               "type": "number",
302               "maximum": 4,
303               "exclusiveMaximum": true
304             },
305             "logRetentionPeriod": {
306               "type": "number",
307               "maximum": 15,
308               "exclusiveMaximum": true
309             },
310             "logFileLocation": {
311               "type": "string",
312               "maxLength": 300
313             }
314           },
315           "additionalProperties": false
316         }
317       },
318       "additionalProperties": false
319     }
320   },
321   "additionalProperties": false
322 }