[SDC] Onboarding 1710 rebase.
[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             "providedBy": {
36               "type": "string",
37               "enum": [
38                 "Vendor"
39               ],
40               "default": "Vendor"
41             }
42           },
43           "additionalProperties": false
44         },
45         "disk": {
46           "type": "object" ,
47           "properties": {
48               "bootDiskSizePerVM": {
49                 "type": "number",
50                 "maximum": 100
51               },
52              "ephemeralDiskSizePerVM": {
53                "type": "number",
54                "maximum": 400
55               }
56            },
57            "additionalProperties": false
58          },
59         "recovery": {
60           "type": "object",
61           "properties": {
62             "pointObjective": {
63               "type": "number",
64               "minimum": 0,
65               "exclusiveMinimum": true,
66               "maximum": 15,
67               "exclusiveMaximum ": true
68             },
69             "timeObjective": {
70               "type": "number",
71               "minimum": 0,
72               "exclusiveMinimum": true,
73               "maximum": 300,
74               "exclusiveMaximum ": true
75             },
76             "vmProcessFailuresHandling": {
77               "type": "string"
78             }
79           },
80           "additionalProperties": false
81         },
82         "dnsConfiguration": {
83           "type": "string"
84         },
85         "vmCloneUsage": {
86           "type": "string",
87           "maxLength": 300
88         }
89       },
90       "additionalProperties": false
91     },
92     "compute": {
93       "type": "object",
94       "properties": {
95         "numOfVMs": {
96           "type": "object",
97           "properties": {
98             "minimum": {
99               "type": "number",
100               "minimum": 0,
101               "maximum": 100
102             },
103             "maximum": {
104               "type": "number",
105             "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)??
106             && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
107             && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
108             && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
109             ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
110             0</#if> ,
111               "exclusiveMinimum": true,
112               "maximum": 100
113             }
114           },
115           "additionalProperties": false
116         },
117         "guestOS": {
118           "type": "object",
119           "properties": {
120             "name": {
121               "type": "string",
122               "maxLength": 50
123             },
124             "bitSize": {
125               "type": "number",
126               "enum": [
127                 64,
128                 32
129               ],
130               "default": 64
131
132             },
133             "tools": {
134               "type": "string"
135             }
136           },
137           "additionalProperties": false
138         }
139       },
140       "additionalProperties": false
141     },
142     "highAvailabilityAndLoadBalancing": {
143       "type": "object",
144       "properties": {
145         "isComponentMandatory": {
146           "type": "string",
147           "enum": ["","YES", "NO"],
148           "default": ""
149         },
150         "highAvailabilityMode": {
151           "type": "string",
152           "enum": ["","geo-activeactive", "geo-activestandby", "local-activeactive", "local-activestandby"],
153           "default": ""
154         },
155         "failureLoadDistribution": {
156           "type": "string",
157           "maxLength": 1000
158         },
159         "nkModelImplementation": {
160           "type": "string",
161           "maxLength": 1000
162         },
163         "architectureChoice": {
164           "type": "string",
165           "maxLength": 1000
166         },
167         "slaRequirements": {
168           "type": "string",
169           "maxLength": 1000
170         },
171         "horizontalScaling": {
172           "type": "string",
173           "maxLength": 1000
174         },
175         "loadDistributionMechanism": {
176           "type": "string",
177           "maxLength": 1000
178         }
179       },
180       "additionalProperties": false
181     },
182     "network": {
183       "type": "object",
184       "properties": {
185         "networkCapacity": {
186           "type": "object",
187           "properties": {
188             "protocolWithHighestTrafficProfileAcrossAllNICs": {
189               "type": "string",
190               "enum": [
191                 "",
192                 "TCP",
193                 "UDP",
194                 "SCTP",
195                 "IPsec"
196               ],
197               "default": ""
198             },
199             "networkTransactionsPerSecond": {
200               "type": "number"
201             }
202           },
203           "additionalProperties": false
204         }
205       },
206       "additionalProperties": false
207     },
208     "storage": {
209       "type": "object",
210       "properties": {
211         "backup": {
212           "type": "object",
213           "properties": {
214             "backupType": {
215               "type": "string",
216               "enum": [
217                 "On Site",
218                 "Off Site"
219               ],
220               "default": "On Site"
221             },
222             "backupStorageSize": {
223               "type": "number"
224             },
225             "backupSolution": {
226               "type": "string"
227             },
228             "backupNIC": {
229               "type": "string",
230               "enum": [
231                 ""<#if nicNames??><#list nicNames as nicName>
232                 , "${nicName}"</#list></#if>
233               ],
234               "default": ""
235             }
236           },
237           "additionalProperties": false
238         },
239         "snapshotBackup": {
240           "type": "object",
241           "properties": {
242             "snapshotFrequency": {
243               "type": "number",
244               "default": 24,
245               "minimum": 1,
246               "exclusiveMinimum": true
247             }
248           },
249           "additionalProperties": false
250         },
251         "logBackup": {
252           "type": "object",
253           "properties": {
254             "sizeOfLogFiles": {
255               "type": "number",
256               "maximum": 5,
257               "exclusiveMaximum": true
258             },
259             "logBackupFrequency": {
260               "type": "number",
261               "maximum": 4,
262               "exclusiveMaximum": true
263             },
264             "logRetentionPeriod": {
265               "type": "number",
266               "maximum": 15,
267               "exclusiveMaximum": true
268             },
269             "logFileLocation": {
270               "type": "string",
271               "maxLength": 300
272             }
273           },
274           "additionalProperties": false
275         }
276       },
277       "additionalProperties": false
278     }
279   },
280   "additionalProperties": false
281 }