blob: 062bf55928553bd6095f71d187533aac7798053a [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": {
Michael Landof5f13c42017-02-19 12:35:04 +020035 "providedBy": {
36 "type": "string",
37 "enum": [
38 "Vendor"
39 ],
40 "default": "Vendor"
Michael Landof5f13c42017-02-19 12:35:04 +020041 }
42 },
43 "additionalProperties": false
44 },
Avi Zivb8e2faf2017-07-18 19:45:38 +030045 "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 },
Michael Landof5f13c42017-02-19 12:35:04 +020059 "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",
AviZi280f8012017-06-09 02:39:56 +030087 "maxLength": 300
Michael Landof5f13c42017-02-19 12:35:04 +020088 }
89 },
90 "additionalProperties": false
91 },
92 "compute": {
93 "type": "object",
94 "properties": {
Michael Landof5f13c42017-02-19 12:35:04 +020095 "numOfVMs": {
96 "type": "object",
97 "properties": {
98 "minimum": {
99 "type": "number",
100 "minimum": 0,
Michael Landof5f13c42017-02-19 12:35:04 +0200101 "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
Michael Landof5f13c42017-02-19 12:35:04 +0200113 }
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
Avi Zivb8e2faf2017-07-18 19:45:38 +0300131
Michael Landof5f13c42017-02-19 12:35:04 +0200132 },
133 "tools": {
134 "type": "string"
135 }
136 },
137 "additionalProperties": false
138 }
139 },
140 "additionalProperties": false
141 },
142 "highAvailabilityAndLoadBalancing": {
143 "type": "object",
144 "properties": {
AviZi280f8012017-06-09 02:39:56 +0300145 "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 },
Michael Landof5f13c42017-02-19 12:35:04 +0200155 "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": [
AviZi280f8012017-06-09 02:39:56 +0300231 ""<#if nicNames??><#list nicNames as nicName>
232 , "${nicName}"</#list></#if>
Michael Landof5f13c42017-02-19 12:35:04 +0200233 ],
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
AviZi280f8012017-06-09 02:39:56 +0300281}