blob: 4857db9d70fc5507247c9e5ad6a2f5a7b6cd23d1 [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": {
sheetalm67e400c2018-06-12 17:32:56 +05308 "nfcNamingCode": {
9 "type": "string",
10 "maxLength": 1000<#if componentDisplayName??>,
11 "default": "${componentDisplayName}"</#if>
siddharth09052028a722018-06-29 17:37:21 +053012 },
sheetalm67e400c2018-06-12 17:32:56 +053013 "nfcFunction": {
14 "type": "string"
15 },
Michael Landof5f13c42017-02-19 12:35:04 +020016 "hypervisor": {
17 "type": "object",
18 "properties": {
19 "hypervisor": {
20 "type": "string",
21 "enum": [
22 "KVM",
23 "VMWare ESXi"
24 ],
25 "default": "KVM"
26 },
27 "drivers": {
28 "type": "string",
29 "maxLength": 300,
30 "pattern": "^[A-Za-z0-9_,-]*$"
31 },
32 "containerFeaturesDescription": {
33 "type": "string",
34 "maxLength": 1000,
35 "pattern": "^[A-Za-z0-9_, -]*$"
36 }
37 },
38 "additionalProperties": false
39 },
40 "image": {
41 "type": "object",
42 "properties": {
Michael Landof5f13c42017-02-19 12:35:04 +020043 "providedBy": {
44 "type": "string",
45 "enum": [
Avi Zivcd8265c2017-10-16 08:23:13 +030046 "AIC",
Michael Landof5f13c42017-02-19 12:35:04 +020047 "Vendor"
48 ],
Avi Zivcd8265c2017-10-16 08:23:13 +030049 "default": "AIC"
Michael Landof5f13c42017-02-19 12:35:04 +020050 }
51 },
52 "additionalProperties": false
53 },
Avi Zivb8e2faf2017-07-18 19:45:38 +030054 "disk": {
55 "type": "object" ,
56 "properties": {
57 "bootDiskSizePerVM": {
58 "type": "number",
talig4d0dbee2018-05-30 16:15:50 +030059 "minimum": 0,
Avi Zivb8e2faf2017-07-18 19:45:38 +030060 "maximum": 100
61 },
62 "ephemeralDiskSizePerVM": {
63 "type": "number",
talig4d0dbee2018-05-30 16:15:50 +030064 "minimum": 0,
Avi Zivb8e2faf2017-07-18 19:45:38 +030065 "maximum": 400
66 }
67 },
68 "additionalProperties": false
69 },
Michael Landof5f13c42017-02-19 12:35:04 +020070 "recovery": {
71 "type": "object",
72 "properties": {
73 "pointObjective": {
74 "type": "number",
75 "minimum": 0,
76 "exclusiveMinimum": true,
77 "maximum": 15,
78 "exclusiveMaximum ": true
79 },
80 "timeObjective": {
81 "type": "number",
82 "minimum": 0,
83 "exclusiveMinimum": true,
84 "maximum": 300,
85 "exclusiveMaximum ": true
86 },
87 "vmProcessFailuresHandling": {
88 "type": "string"
89 }
90 },
91 "additionalProperties": false
92 },
93 "dnsConfiguration": {
94 "type": "string"
95 },
96 "vmCloneUsage": {
97 "type": "string",
AviZi280f8012017-06-09 02:39:56 +030098 "maxLength": 300
Michael Landof5f13c42017-02-19 12:35:04 +020099 }
100 },
101 "additionalProperties": false
102 },
103 "compute": {
104 "type": "object",
105 "properties": {
Michael Landof5f13c42017-02-19 12:35:04 +0200106 "numOfVMs": {
107 "type": "object",
108 "properties": {
109 "minimum": {
110 "type": "number",
111 "minimum": 0,
Michael Landof5f13c42017-02-19 12:35:04 +0200112 "maximum": 100
113 },
114 "maximum": {
115 "type": "number",
116 "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)??
talig4d0dbee2018-05-30 16:15:50 +0300117&& (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
118&& ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
119&& (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
120 ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
Michael Landof5f13c42017-02-19 12:35:04 +0200121 0</#if> ,
122 "exclusiveMinimum": true,
123 "maximum": 100
Michael Landof5f13c42017-02-19 12:35:04 +0200124 }
125 },
126 "additionalProperties": false
127 },
128 "guestOS": {
129 "type": "object",
130 "properties": {
131 "name": {
132 "type": "string",
133 "maxLength": 50
134 },
135 "bitSize": {
136 "type": "number",
137 "enum": [
138 64,
139 32
140 ],
141 "default": 64
Avi Zivb8e2faf2017-07-18 19:45:38 +0300142
Michael Landof5f13c42017-02-19 12:35:04 +0200143 },
144 "tools": {
145 "type": "string"
146 }
147 },
148 "additionalProperties": false
149 }
150 },
151 "additionalProperties": false
152 },
153 "highAvailabilityAndLoadBalancing": {
154 "type": "object",
155 "properties": {
AviZi280f8012017-06-09 02:39:56 +0300156 "isComponentMandatory": {
157 "type": "string",
158 "enum": ["","YES", "NO"],
159 "default": ""
160 },
161 "highAvailabilityMode": {
162 "type": "string",
163 "enum": ["","geo-activeactive", "geo-activestandby", "local-activeactive", "local-activestandby"],
164 "default": ""
165 },
Michael Landof5f13c42017-02-19 12:35:04 +0200166 "failureLoadDistribution": {
167 "type": "string",
168 "maxLength": 1000
169 },
170 "nkModelImplementation": {
171 "type": "string",
172 "maxLength": 1000
173 },
174 "architectureChoice": {
175 "type": "string",
176 "maxLength": 1000
177 },
178 "slaRequirements": {
179 "type": "string",
180 "maxLength": 1000
181 },
182 "horizontalScaling": {
183 "type": "string",
184 "maxLength": 1000
185 },
186 "loadDistributionMechanism": {
187 "type": "string",
188 "maxLength": 1000
189 }
190 },
191 "additionalProperties": false
192 },
193 "network": {
194 "type": "object",
195 "properties": {
196 "networkCapacity": {
197 "type": "object",
198 "properties": {
199 "protocolWithHighestTrafficProfileAcrossAllNICs": {
200 "type": "string",
201 "enum": [
202 "",
203 "TCP",
204 "UDP",
205 "SCTP",
206 "IPsec"
207 ],
208 "default": ""
209 },
210 "networkTransactionsPerSecond": {
talig4d0dbee2018-05-30 16:15:50 +0300211 "type": "number",
212 "minimum": 0
Michael Landof5f13c42017-02-19 12:35:04 +0200213 }
214 },
215 "additionalProperties": false
216 }
217 },
218 "additionalProperties": false
219 },
220 "storage": {
221 "type": "object",
222 "properties": {
223 "backup": {
224 "type": "object",
225 "properties": {
226 "backupType": {
227 "type": "string",
228 "enum": [
229 "On Site",
230 "Off Site"
231 ],
232 "default": "On Site"
233 },
234 "backupStorageSize": {
talig4d0dbee2018-05-30 16:15:50 +0300235 "type": "number",
236 "minimum": 0
Michael Landof5f13c42017-02-19 12:35:04 +0200237 },
238 "backupSolution": {
239 "type": "string"
240 },
241 "backupNIC": {
242 "type": "string",
243 "enum": [
AviZi280f8012017-06-09 02:39:56 +0300244 ""<#if nicNames??><#list nicNames as nicName>
245 , "${nicName}"</#list></#if>
Michael Landof5f13c42017-02-19 12:35:04 +0200246 ],
247 "default": ""
248 }
249 },
250 "additionalProperties": false
251 },
252 "snapshotBackup": {
253 "type": "object",
254 "properties": {
255 "snapshotFrequency": {
256 "type": "number",
257 "default": 24,
258 "minimum": 1,
259 "exclusiveMinimum": true
260 }
261 },
262 "additionalProperties": false
263 },
264 "logBackup": {
265 "type": "object",
266 "properties": {
267 "sizeOfLogFiles": {
talig4d0dbee2018-05-30 16:15:50 +0300268 "type": "integer",
269 "minimum": 0,
Michael Landof5f13c42017-02-19 12:35:04 +0200270 "maximum": 5,
271 "exclusiveMaximum": true
272 },
273 "logBackupFrequency": {
talig4d0dbee2018-05-30 16:15:50 +0300274 "type": "integer",
275 "minimum": 0,
Michael Landof5f13c42017-02-19 12:35:04 +0200276 "maximum": 4,
277 "exclusiveMaximum": true
278 },
279 "logRetentionPeriod": {
talig4d0dbee2018-05-30 16:15:50 +0300280 "type": "integer",
281 "minimum": 0,
Michael Landof5f13c42017-02-19 12:35:04 +0200282 "maximum": 15,
283 "exclusiveMaximum": true
284 },
285 "logFileLocation": {
286 "type": "string",
287 "maxLength": 300
288 }
289 },
290 "additionalProperties": false
291 }
292 },
293 "additionalProperties": false
294 }
295 },
296 "additionalProperties": false
AviZi280f8012017-06-09 02:39:56 +0300297}