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