blob: 6e588eb22ab92a3935ddb2c2bbdbc376815c9b13 [file] [log] [blame]
Michael Landof5f13c42017-02-19 12:35:04 +02001{
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",
AviZi280f8012017-06-09 02:39:56 +030096 "maxLength": 300
Michael Landof5f13c42017-02-19 12:35:04 +020097 }
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": {
AviZi280f8012017-06-09 02:39:56 +0300201 "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 },
Michael Landof5f13c42017-02-19 12:35:04 +0200211 "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": [
AviZi280f8012017-06-09 02:39:56 +0300287 ""<#if nicNames??><#list nicNames as nicName>
288 , "${nicName}"</#list></#if>
Michael Landof5f13c42017-02-19 12:35:04 +0200289 ],
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
AviZi280f8012017-06-09 02:39:56 +0300337}