[SDC-29] rebase continue work to align source
[sdc.git] / openecomp-be / tools / install / database / schemaTemplates / questionnaire / component.ftl
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           "maxLength": 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               "maximum": 100
140             },
141             "maximum": {
142               "type": "number",
143             "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)??
144             && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
145             && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
146             && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
147             ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
148             0</#if> ,
149               "exclusiveMinimum": true,
150               "maximum": 100
151             },
152             "CpuOverSubscriptionRatio": {
153               "type": "string",
154               "enum": [
155                 "1:1",
156                 "4:1",
157                 "16:1"
158               ],
159               "default": "4:1"
160             },
161             "MemoryRAM": {
162               "type": "string",
163               "enum": [
164                 "2 GB",
165                 "4 GB",
166                 "8 GB"
167               ],
168               "default": "2 GB"
169             }
170           },
171           "additionalProperties": false
172         },
173         "guestOS": {
174           "type": "object",
175           "properties": {
176             "name": {
177               "type": "string",
178               "maxLength": 50
179             },
180             "bitSize": {
181               "type": "number",
182               "enum": [
183                 64,
184                 32
185               ],
186               "default": 64
187             },
188             "tools": {
189               "type": "string"
190             }
191           },
192           "additionalProperties": false
193         }
194       },
195       "additionalProperties": false
196     },
197     "highAvailabilityAndLoadBalancing": {
198       "type": "object",
199       "properties": {
200         "isComponentMandatory": {
201           "type": "string",
202           "enum": ["","YES", "NO"],
203           "default": ""
204         },
205         "highAvailabilityMode": {
206           "type": "string",
207           "enum": ["","geo-activeactive", "geo-activestandby", "local-activeactive", "local-activestandby"],
208           "default": ""
209         },
210         "failureLoadDistribution": {
211           "type": "string",
212           "maxLength": 1000
213         },
214         "nkModelImplementation": {
215           "type": "string",
216           "maxLength": 1000
217         },
218         "architectureChoice": {
219           "type": "string",
220           "maxLength": 1000
221         },
222         "slaRequirements": {
223           "type": "string",
224           "maxLength": 1000
225         },
226         "horizontalScaling": {
227           "type": "string",
228           "maxLength": 1000
229         },
230         "loadDistributionMechanism": {
231           "type": "string",
232           "maxLength": 1000
233         }
234       },
235       "additionalProperties": false
236     },
237     "network": {
238       "type": "object",
239       "properties": {
240         "networkCapacity": {
241           "type": "object",
242           "properties": {
243             "protocolWithHighestTrafficProfileAcrossAllNICs": {
244               "type": "string",
245               "enum": [
246                 "",
247                 "TCP",
248                 "UDP",
249                 "SCTP",
250                 "IPsec"
251               ],
252               "default": ""
253             },
254             "networkTransactionsPerSecond": {
255               "type": "number"
256             }
257           },
258           "additionalProperties": false
259         }
260       },
261       "additionalProperties": false
262     },
263     "storage": {
264       "type": "object",
265       "properties": {
266         "backup": {
267           "type": "object",
268           "properties": {
269             "backupType": {
270               "type": "string",
271               "enum": [
272                 "On Site",
273                 "Off Site"
274               ],
275               "default": "On Site"
276             },
277             "backupStorageSize": {
278               "type": "number"
279             },
280             "backupSolution": {
281               "type": "string"
282             },
283             "backupNIC": {
284               "type": "string",
285               "enum": [
286                 ""<#if nicNames??><#list nicNames as nicName>
287                 , "${nicName}"</#list></#if>
288               ],
289               "default": ""
290             }
291           },
292           "additionalProperties": false
293         },
294         "snapshotBackup": {
295           "type": "object",
296           "properties": {
297             "snapshotFrequency": {
298               "type": "number",
299               "default": 24,
300               "minimum": 1,
301               "exclusiveMinimum": true
302             }
303           },
304           "additionalProperties": false
305         },
306         "logBackup": {
307           "type": "object",
308           "properties": {
309             "sizeOfLogFiles": {
310               "type": "number",
311               "maximum": 5,
312               "exclusiveMaximum": true
313             },
314             "logBackupFrequency": {
315               "type": "number",
316               "maximum": 4,
317               "exclusiveMaximum": true
318             },
319             "logRetentionPeriod": {
320               "type": "number",
321               "maximum": 15,
322               "exclusiveMaximum": true
323             },
324             "logFileLocation": {
325               "type": "string",
326               "maxLength": 300
327             }
328           },
329           "additionalProperties": false
330         }
331       },
332       "additionalProperties": false
333     }
334   },
335   "additionalProperties": false
336 }