stacker_bee 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.travis.yml +9 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +112 -0
  9. data/Rakefile +6 -0
  10. data/bin/stacker_bee +97 -0
  11. data/config.default.yml +3 -0
  12. data/config/4.2.json +67126 -0
  13. data/lib/stacker_bee.rb +16 -0
  14. data/lib/stacker_bee/api.rb +44 -0
  15. data/lib/stacker_bee/body_parser.rb +23 -0
  16. data/lib/stacker_bee/client.rb +105 -0
  17. data/lib/stacker_bee/configuration.rb +6 -0
  18. data/lib/stacker_bee/connection.rb +31 -0
  19. data/lib/stacker_bee/middleware/logger.rb +48 -0
  20. data/lib/stacker_bee/middleware/signed_query.rb +29 -0
  21. data/lib/stacker_bee/rash.rb +95 -0
  22. data/lib/stacker_bee/request.rb +41 -0
  23. data/lib/stacker_bee/request_error.rb +39 -0
  24. data/lib/stacker_bee/response.rb +29 -0
  25. data/lib/stacker_bee/utilities.rb +18 -0
  26. data/lib/stacker_bee/version.rb +3 -0
  27. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/.yml +33 -0
  28. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_nil_request_parameter/properly_executes_the_request.yml +33 -0
  29. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml +35 -0
  30. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_and_empty_string/properly_executes_the_request.yml +33 -0
  31. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml +37 -0
  32. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml +37 -0
  33. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml +33 -0
  34. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml +33 -0
  35. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml +33 -0
  36. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml +33 -0
  37. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml +33 -0
  38. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml +33 -0
  39. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/space_character_in_a_request_parameter/properly_signs_the_request.yml +32 -0
  40. data/spec/fixtures/4.2.json +67126 -0
  41. data/spec/fixtures/simple.json +871 -0
  42. data/spec/integration/request_spec.rb +116 -0
  43. data/spec/spec_helper.rb +58 -0
  44. data/spec/units/stacker_bee/api_spec.rb +24 -0
  45. data/spec/units/stacker_bee/client_spec.rb +181 -0
  46. data/spec/units/stacker_bee/configuration_spec.rb +7 -0
  47. data/spec/units/stacker_bee/connection_spec.rb +45 -0
  48. data/spec/units/stacker_bee/middleware/logger_spec.rb +55 -0
  49. data/spec/units/stacker_bee/rash_spec.rb +87 -0
  50. data/spec/units/stacker_bee/request_error_spec.rb +44 -0
  51. data/spec/units/stacker_bee/request_spec.rb +49 -0
  52. data/spec/units/stacker_bee/response_spec.rb +79 -0
  53. data/spec/units/stacker_bee/utilities_spec.rb +25 -0
  54. data/spec/units/stacker_bee_spec.rb +6 -0
  55. data/stacker_bee.gemspec +30 -0
  56. metadata +225 -0
@@ -0,0 +1,871 @@
1
+ {
2
+ "listapisresponse": {
3
+ "count": 1,
4
+ "api": [
5
+ {
6
+ "name": "getVMPassword",
7
+ "description": "Returns an encrypted password for the VM",
8
+ "isasync": false,
9
+ "related": "",
10
+ "params": [
11
+ {
12
+ "name": "id",
13
+ "description": "The ID of the virtual machine",
14
+ "type": "uuid",
15
+ "length": 255,
16
+ "required": true,
17
+ "related": "revertToVMSnapshot,removeNicFromVirtualMachine,deployVirtualMachine,migrateVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,startVirtualMachine,changeServiceForVirtualMachine,recoverVirtualMachine,listVirtualMachines,updateVMAffinityGroup,migrateVirtualMachineWithVolume,attachIso,restoreVirtualMachine,updateDefaultNicForVirtualMachine,detachIso,assignVirtualMachine,resetSSHKeyForVirtualMachine,destroyVirtualMachine,updateVirtualMachine,stopVirtualMachine"
18
+ }
19
+ ],
20
+ "response": [
21
+ {
22
+ "name": "encryptedpassword",
23
+ "description": "The encrypted password of the VM",
24
+ "type": "string"
25
+ }
26
+ ]
27
+ },
28
+ {
29
+ "name": "listVirtualMachines",
30
+ "description": "List the virtual machines owned by the account.",
31
+ "isasync": false,
32
+ "related": "",
33
+ "params": [
34
+ {
35
+ "name": "zoneid",
36
+ "description": "the availability zone ID",
37
+ "type": "uuid",
38
+ "length": 255,
39
+ "required": false,
40
+ "related": ""
41
+ },
42
+ {
43
+ "name": "state",
44
+ "description": "state of the virtual machine",
45
+ "type": "string",
46
+ "length": 255,
47
+ "required": false
48
+ },
49
+ {
50
+ "name": "name",
51
+ "description": "name of the virtual machine",
52
+ "type": "string",
53
+ "length": 255,
54
+ "required": false
55
+ },
56
+ {
57
+ "name": "account",
58
+ "description": "list resources by account. Must be used with the domainId parameter.",
59
+ "type": "string",
60
+ "length": 255,
61
+ "required": false
62
+ },
63
+ {
64
+ "name": "isoid",
65
+ "description": "list vms by iso",
66
+ "type": "uuid",
67
+ "length": 255,
68
+ "required": false
69
+ },
70
+ {
71
+ "name": "groupid",
72
+ "description": "the group ID",
73
+ "type": "uuid",
74
+ "length": 255,
75
+ "required": false,
76
+ "related": ""
77
+ },
78
+ {
79
+ "name": "page",
80
+ "description": "",
81
+ "type": "integer",
82
+ "length": 255,
83
+ "required": false
84
+ },
85
+ {
86
+ "name": "details",
87
+ "description": "comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all",
88
+ "type": "list",
89
+ "length": 255,
90
+ "required": false
91
+ },
92
+ {
93
+ "name": "forvirtualnetwork",
94
+ "description": "list by network type; true if need to list vms using Virtual Network, false otherwise",
95
+ "type": "boolean",
96
+ "length": 255,
97
+ "required": false
98
+ },
99
+ {
100
+ "name": "podid",
101
+ "description": "the pod ID",
102
+ "type": "uuid",
103
+ "length": 255,
104
+ "required": false,
105
+ "related": "updatePod"
106
+ },
107
+ {
108
+ "name": "hypervisor",
109
+ "description": "the target hypervisor for the template",
110
+ "type": "string",
111
+ "length": 255,
112
+ "required": false
113
+ },
114
+ {
115
+ "name": "tags",
116
+ "description": "List resources by tags (key/value pairs)",
117
+ "type": "map",
118
+ "length": 255,
119
+ "required": false
120
+ },
121
+ {
122
+ "name": "pagesize",
123
+ "description": "",
124
+ "type": "integer",
125
+ "length": 255,
126
+ "required": false
127
+ },
128
+ {
129
+ "name": "vpcid",
130
+ "description": "list vms by vpc",
131
+ "type": "uuid",
132
+ "length": 255,
133
+ "required": false,
134
+ "related": "restartVPC"
135
+ },
136
+ {
137
+ "name": "storageid",
138
+ "description": "the storage ID where vm's volumes belong to",
139
+ "type": "uuid",
140
+ "length": 255,
141
+ "required": false,
142
+ "related": "findStoragePoolsForMigration"
143
+ },
144
+ {
145
+ "name": "domainid",
146
+ "description": "list only resources belonging to the domain specified",
147
+ "type": "uuid",
148
+ "length": 255,
149
+ "required": false,
150
+ "related": ""
151
+ },
152
+ {
153
+ "name": "affinitygroupid",
154
+ "description": "list vms by affinity group",
155
+ "type": "uuid",
156
+ "length": 255,
157
+ "required": false,
158
+ "related": ""
159
+ },
160
+ {
161
+ "name": "isrecursive",
162
+ "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
163
+ "type": "boolean",
164
+ "length": 255,
165
+ "required": false
166
+ },
167
+ {
168
+ "name": "listall",
169
+ "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
170
+ "type": "boolean",
171
+ "length": 255,
172
+ "required": false
173
+ },
174
+ {
175
+ "name": "projectid",
176
+ "description": "list objects by project",
177
+ "type": "uuid",
178
+ "length": 255,
179
+ "required": false,
180
+ "related": ""
181
+ },
182
+ {
183
+ "name": "keyword",
184
+ "description": "List by keyword",
185
+ "type": "string",
186
+ "length": 255,
187
+ "required": false
188
+ },
189
+ {
190
+ "name": "id",
191
+ "description": "the ID of the virtual machine",
192
+ "type": "uuid",
193
+ "length": 255,
194
+ "required": false,
195
+ "related": "listVirtualMachines"
196
+ },
197
+ {
198
+ "name": "networkid",
199
+ "description": "list by network id",
200
+ "type": "uuid",
201
+ "length": 255,
202
+ "required": false,
203
+ "related": ""
204
+ },
205
+ {
206
+ "name": "hostid",
207
+ "description": "the host ID",
208
+ "type": "uuid",
209
+ "length": 255,
210
+ "required": false,
211
+ "related": "listHosts"
212
+ },
213
+ {
214
+ "name": "templateid",
215
+ "description": "list vms by template",
216
+ "type": "uuid",
217
+ "length": 255,
218
+ "required": false,
219
+ "related": "listIsos"
220
+ }
221
+ ],
222
+ "response": [
223
+ {
224
+ "name": "networkkbsread",
225
+ "description": "the incoming network traffic on the vm",
226
+ "type": "long"
227
+ },
228
+ {
229
+ "name": "networkkbswrite",
230
+ "description": "the outgoing network traffic on the host",
231
+ "type": "long"
232
+ },
233
+ {
234
+ "name": "hostid",
235
+ "description": "the ID of the host for the virtual machine",
236
+ "type": "string"
237
+ },
238
+ {
239
+ "name": "templatedisplaytext",
240
+ "description": " an alternate display text of the template for the virtual machine",
241
+ "type": "string"
242
+ },
243
+ {
244
+ "name": "rootdeviceid",
245
+ "description": "device ID of the root volume",
246
+ "type": "long"
247
+ },
248
+ {
249
+ "name": "memory",
250
+ "description": "the memory allocated for the virtual machine",
251
+ "type": "integer"
252
+ },
253
+ {
254
+ "name": "password",
255
+ "description": "the password (if exists) of the virtual machine",
256
+ "type": "string"
257
+ },
258
+ {
259
+ "name": "tags",
260
+ "description": "the list of resource tags associated with vm",
261
+ "type": "set",
262
+ "response": [
263
+ {
264
+ "name": "account",
265
+ "description": "the account associated with the tag",
266
+ "type": "string"
267
+ },
268
+ {
269
+ "name": "key",
270
+ "description": "tag key name",
271
+ "type": "string"
272
+ },
273
+ {
274
+ "name": "resourceid",
275
+ "description": "id of the resource",
276
+ "type": "string"
277
+ },
278
+ {
279
+ "name": "customer",
280
+ "description": "customer associated with the tag",
281
+ "type": "string"
282
+ },
283
+ {
284
+ "name": "domainid",
285
+ "description": "the ID of the domain associated with the tag",
286
+ "type": "string"
287
+ },
288
+ {
289
+ "name": "resourcetype",
290
+ "description": "resource type",
291
+ "type": "string"
292
+ },
293
+ {
294
+ "name": "domain",
295
+ "description": "the domain associated with the tag",
296
+ "type": "string"
297
+ },
298
+ {
299
+ "name": "project",
300
+ "description": "the project name where tag belongs to",
301
+ "type": "string"
302
+ },
303
+ {
304
+ "name": "projectid",
305
+ "description": "the project id the tag belongs to",
306
+ "type": "string"
307
+ },
308
+ {
309
+ "name": "value",
310
+ "description": "tag value",
311
+ "type": "string"
312
+ }
313
+ ]
314
+ },
315
+ {
316
+ "name": "instancename",
317
+ "description": "instance name of the user vm; this parameter is returned to the ROOT admin only",
318
+ "type": "string"
319
+ },
320
+ {
321
+ "name": "securitygroup",
322
+ "description": "list of security groups associated with the virtual machine",
323
+ "type": "set",
324
+ "response": [
325
+ {
326
+ "name": "account",
327
+ "description": "the account owning the security group",
328
+ "type": "string"
329
+ },
330
+ {
331
+ "name": "name",
332
+ "description": "the name of the security group",
333
+ "type": "string"
334
+ },
335
+ {
336
+ "name": "egressrule",
337
+ "description": "the list of egress rules associated with the security group",
338
+ "type": "set",
339
+ "response": [
340
+ {
341
+ "name": "endport",
342
+ "description": "the ending IP of the security group rule ",
343
+ "type": "integer"
344
+ },
345
+ {
346
+ "name": "protocol",
347
+ "description": "the protocol of the security group rule",
348
+ "type": "string"
349
+ },
350
+ {
351
+ "name": "securitygroupname",
352
+ "description": "security group name",
353
+ "type": "string"
354
+ },
355
+ {
356
+ "name": "startport",
357
+ "description": "the starting IP of the security group rule",
358
+ "type": "integer"
359
+ },
360
+ {
361
+ "name": "ruleid",
362
+ "description": "the id of the security group rule",
363
+ "type": "string"
364
+ },
365
+ {
366
+ "name": "icmpcode",
367
+ "description": "the code for the ICMP message response",
368
+ "type": "integer"
369
+ },
370
+ {
371
+ "name": "account",
372
+ "description": "account owning the security group rule",
373
+ "type": "string"
374
+ },
375
+ {
376
+ "name": "icmptype",
377
+ "description": "the type of the ICMP message response",
378
+ "type": "integer"
379
+ },
380
+ {
381
+ "name": "cidr",
382
+ "description": "the CIDR notation for the base IP address of the security group rule",
383
+ "type": "string"
384
+ }
385
+ ]
386
+ },
387
+ {
388
+ "name": "project",
389
+ "description": "the project name of the group",
390
+ "type": "string"
391
+ },
392
+ {
393
+ "name": "projectid",
394
+ "description": "the project id of the group",
395
+ "type": "string"
396
+ },
397
+ {
398
+ "name": "tags",
399
+ "description": "the list of resource tags associated with the rule",
400
+ "type": "set",
401
+ "response": [
402
+ {
403
+ "name": "domainid",
404
+ "description": "the ID of the domain associated with the tag",
405
+ "type": "string"
406
+ },
407
+ {
408
+ "name": "resourceid",
409
+ "description": "id of the resource",
410
+ "type": "string"
411
+ },
412
+ {
413
+ "name": "resourcetype",
414
+ "description": "resource type",
415
+ "type": "string"
416
+ },
417
+ {
418
+ "name": "value",
419
+ "description": "tag value",
420
+ "type": "string"
421
+ },
422
+ {
423
+ "name": "customer",
424
+ "description": "customer associated with the tag",
425
+ "type": "string"
426
+ },
427
+ {
428
+ "name": "project",
429
+ "description": "the project name where tag belongs to",
430
+ "type": "string"
431
+ },
432
+ {
433
+ "name": "key",
434
+ "description": "tag key name",
435
+ "type": "string"
436
+ },
437
+ {
438
+ "name": "domain",
439
+ "description": "the domain associated with the tag",
440
+ "type": "string"
441
+ },
442
+ {
443
+ "name": "projectid",
444
+ "description": "the project id the tag belongs to",
445
+ "type": "string"
446
+ },
447
+ {
448
+ "name": "account",
449
+ "description": "the account associated with the tag",
450
+ "type": "string"
451
+ }
452
+ ]
453
+ },
454
+ {
455
+ "name": "domain",
456
+ "description": "the domain name of the security group",
457
+ "type": "string"
458
+ },
459
+ {
460
+ "name": "domainid",
461
+ "description": "the domain ID of the security group",
462
+ "type": "string"
463
+ },
464
+ {
465
+ "name": "description",
466
+ "description": "the description of the security group",
467
+ "type": "string"
468
+ },
469
+ {
470
+ "name": "ingressrule",
471
+ "description": "the list of ingress rules associated with the security group",
472
+ "type": "set",
473
+ "response": [
474
+ {
475
+ "name": "protocol",
476
+ "description": "the protocol of the security group rule",
477
+ "type": "string"
478
+ },
479
+ {
480
+ "name": "endport",
481
+ "description": "the ending IP of the security group rule ",
482
+ "type": "integer"
483
+ },
484
+ {
485
+ "name": "startport",
486
+ "description": "the starting IP of the security group rule",
487
+ "type": "integer"
488
+ },
489
+ {
490
+ "name": "ruleid",
491
+ "description": "the id of the security group rule",
492
+ "type": "string"
493
+ },
494
+ {
495
+ "name": "securitygroupname",
496
+ "description": "security group name",
497
+ "type": "string"
498
+ },
499
+ {
500
+ "name": "cidr",
501
+ "description": "the CIDR notation for the base IP address of the security group rule",
502
+ "type": "string"
503
+ },
504
+ {
505
+ "name": "account",
506
+ "description": "account owning the security group rule",
507
+ "type": "string"
508
+ },
509
+ {
510
+ "name": "icmptype",
511
+ "description": "the type of the ICMP message response",
512
+ "type": "integer"
513
+ },
514
+ {
515
+ "name": "icmpcode",
516
+ "description": "the code for the ICMP message response",
517
+ "type": "integer"
518
+ }
519
+ ]
520
+ },
521
+ {
522
+ "name": "id",
523
+ "description": "the ID of the security group",
524
+ "type": "string"
525
+ }
526
+ ]
527
+ },
528
+ {
529
+ "name": "displayvm",
530
+ "description": "an optional field whether to the display the vm to the end user or not.",
531
+ "type": "boolean"
532
+ },
533
+ {
534
+ "name": "zoneid",
535
+ "description": "the ID of the availablility zone for the virtual machine",
536
+ "type": "string"
537
+ },
538
+ {
539
+ "name": "hypervisor",
540
+ "description": "the hypervisor on which the template runs",
541
+ "type": "string"
542
+ },
543
+ {
544
+ "name": "serviceofferingid",
545
+ "description": "the ID of the service offering of the virtual machine",
546
+ "type": "string"
547
+ },
548
+ {
549
+ "name": "created",
550
+ "description": "the date when this virtual machine was created",
551
+ "type": "date"
552
+ },
553
+ {
554
+ "name": "templateid",
555
+ "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.",
556
+ "type": "string"
557
+ },
558
+ {
559
+ "name": "cpunumber",
560
+ "description": "the number of cpu this virtual machine is running with",
561
+ "type": "integer"
562
+ },
563
+ {
564
+ "name": "serviceofferingname",
565
+ "description": "the name of the service offering of the virtual machine",
566
+ "type": "string"
567
+ },
568
+ {
569
+ "name": "keypair",
570
+ "description": "ssh key-pair",
571
+ "type": "string"
572
+ },
573
+ {
574
+ "name": "id",
575
+ "description": "the ID of the virtual machine",
576
+ "type": "string"
577
+ },
578
+ {
579
+ "name": "displayname",
580
+ "description": "user generated name. The name of the virtual machine is returned if no displayname exists.",
581
+ "type": "string"
582
+ },
583
+ {
584
+ "name": "forvirtualnetwork",
585
+ "description": "the virtual network for the service offering",
586
+ "type": "boolean"
587
+ },
588
+ {
589
+ "name": "nic",
590
+ "description": "the list of nics associated with vm",
591
+ "type": "set",
592
+ "response": [
593
+ {
594
+ "name": "networkname",
595
+ "description": "the name of the corresponding network",
596
+ "type": "string"
597
+ },
598
+ {
599
+ "name": "traffictype",
600
+ "description": "the traffic type of the nic",
601
+ "type": "string"
602
+ },
603
+ {
604
+ "name": "ip6gateway",
605
+ "description": "the gateway of IPv6 network",
606
+ "type": "string"
607
+ },
608
+ {
609
+ "name": "ip6address",
610
+ "description": "the IPv6 address of network",
611
+ "type": "string"
612
+ },
613
+ {
614
+ "name": "isdefault",
615
+ "description": "true if nic is default, false otherwise",
616
+ "type": "boolean"
617
+ },
618
+ {
619
+ "name": "isolationuri",
620
+ "description": "the isolation uri of the nic",
621
+ "type": "string"
622
+ },
623
+ {
624
+ "name": "secondaryip",
625
+ "description": "the Secondary ipv4 addr of nic",
626
+ "type": "list"
627
+ },
628
+ {
629
+ "name": "macaddress",
630
+ "description": "true if nic is default, false otherwise",
631
+ "type": "string"
632
+ },
633
+ {
634
+ "name": "broadcasturi",
635
+ "description": "the broadcast uri of the nic",
636
+ "type": "string"
637
+ },
638
+ {
639
+ "name": "id",
640
+ "description": "the ID of the nic",
641
+ "type": "string"
642
+ },
643
+ {
644
+ "name": "ip6cidr",
645
+ "description": "the cidr of IPv6 network",
646
+ "type": "string"
647
+ },
648
+ {
649
+ "name": "netmask",
650
+ "description": "the netmask of the nic",
651
+ "type": "string"
652
+ },
653
+ {
654
+ "name": "networkid",
655
+ "description": "the ID of the corresponding network",
656
+ "type": "string"
657
+ },
658
+ {
659
+ "name": "ipaddress",
660
+ "description": "the ip address of the nic",
661
+ "type": "string"
662
+ },
663
+ {
664
+ "name": "gateway",
665
+ "description": "the gateway of the nic",
666
+ "type": "string"
667
+ },
668
+ {
669
+ "name": "type",
670
+ "description": "the type of the nic",
671
+ "type": "string"
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "name": "name",
677
+ "description": "the name of the virtual machine",
678
+ "type": "string"
679
+ },
680
+ {
681
+ "name": "passwordenabled",
682
+ "description": "true if the password rest feature is enabled, false otherwise",
683
+ "type": "boolean"
684
+ },
685
+ {
686
+ "name": "domainid",
687
+ "description": "the ID of the domain in which the virtual machine exists",
688
+ "type": "string"
689
+ },
690
+ {
691
+ "name": "diskiowrite",
692
+ "description": "the write (io) of disk on the vm",
693
+ "type": "long"
694
+ },
695
+ {
696
+ "name": "templatename",
697
+ "description": "the name of the template for the virtual machine",
698
+ "type": "string"
699
+ },
700
+ {
701
+ "name": "diskkbswrite",
702
+ "description": "the write (bytes) of disk on the vm",
703
+ "type": "long"
704
+ },
705
+ {
706
+ "name": "isoname",
707
+ "description": "the name of the ISO attached to the virtual machine",
708
+ "type": "string"
709
+ },
710
+ {
711
+ "name": "isoid",
712
+ "description": "the ID of the ISO attached to the virtual machine",
713
+ "type": "string"
714
+ },
715
+ {
716
+ "name": "account",
717
+ "description": "the account associated with the virtual machine",
718
+ "type": "string"
719
+ },
720
+ {
721
+ "name": "domain",
722
+ "description": "the name of the domain in which the virtual machine exists",
723
+ "type": "string"
724
+ },
725
+ {
726
+ "name": "rootdevicetype",
727
+ "description": "device type of the root volume",
728
+ "type": "string"
729
+ },
730
+ {
731
+ "name": "groupid",
732
+ "description": "the group ID of the virtual machine",
733
+ "type": "string"
734
+ },
735
+ {
736
+ "name": "project",
737
+ "description": "the project name of the vm",
738
+ "type": "string"
739
+ },
740
+ {
741
+ "name": "zonename",
742
+ "description": "the name of the availability zone for the virtual machine",
743
+ "type": "string"
744
+ },
745
+ {
746
+ "name": "diskioread",
747
+ "description": "the read (io) of disk on the vm",
748
+ "type": "long"
749
+ },
750
+ {
751
+ "name": "group",
752
+ "description": "the group name of the virtual machine",
753
+ "type": "string"
754
+ },
755
+ {
756
+ "name": "isdynamicallyscalable",
757
+ "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.",
758
+ "type": "boolean"
759
+ },
760
+ {
761
+ "name": "publicipid",
762
+ "description": "public IP address id associated with vm via Static nat rule",
763
+ "type": "string"
764
+ },
765
+ {
766
+ "name": "hostname",
767
+ "description": "the name of the host for the virtual machine",
768
+ "type": "string"
769
+ },
770
+ {
771
+ "name": "servicestate",
772
+ "description": "State of the Service from LB rule",
773
+ "type": "string"
774
+ },
775
+ {
776
+ "name": "state",
777
+ "description": "the state of the virtual machine",
778
+ "type": "string"
779
+ },
780
+ {
781
+ "name": "haenable",
782
+ "description": "true if high-availability is enabled, false otherwise",
783
+ "type": "boolean"
784
+ },
785
+ {
786
+ "name": "cpuspeed",
787
+ "description": "the speed of each cpu",
788
+ "type": "integer"
789
+ },
790
+ {
791
+ "name": "diskkbsread",
792
+ "description": "the read (bytes) of disk on the vm",
793
+ "type": "long"
794
+ },
795
+ {
796
+ "name": "guestosid",
797
+ "description": "Os type ID of the virtual machine",
798
+ "type": "string"
799
+ },
800
+ {
801
+ "name": "publicip",
802
+ "description": "public IP address id associated with vm via Static nat rule",
803
+ "type": "string"
804
+ },
805
+ {
806
+ "name": "projectid",
807
+ "description": "the project id of the vm",
808
+ "type": "string"
809
+ },
810
+ {
811
+ "name": "cpuused",
812
+ "description": "the amount of the vm's CPU currently used",
813
+ "type": "string"
814
+ },
815
+ {
816
+ "name": "affinitygroup",
817
+ "description": "list of affinity groups associated with the virtual machine",
818
+ "type": "set",
819
+ "response": [
820
+ {
821
+ "name": "type",
822
+ "description": "the type of the affinity group",
823
+ "type": "string"
824
+ },
825
+ {
826
+ "name": "domainid",
827
+ "description": "the domain ID of the affinity group",
828
+ "type": "string"
829
+ },
830
+ {
831
+ "name": "description",
832
+ "description": "the description of the affinity group",
833
+ "type": "string"
834
+ },
835
+ {
836
+ "name": "name",
837
+ "description": "the name of the affinity group",
838
+ "type": "string"
839
+ },
840
+ {
841
+ "name": "domain",
842
+ "description": "the domain name of the affinity group",
843
+ "type": "string"
844
+ },
845
+ {
846
+ "name": "account",
847
+ "description": "the account owning the affinity group",
848
+ "type": "string"
849
+ },
850
+ {
851
+ "name": "id",
852
+ "description": "the ID of the affinity group",
853
+ "type": "string"
854
+ },
855
+ {
856
+ "name": "virtualmachineIds",
857
+ "description": "virtual machine Ids associated with this affinity group ",
858
+ "type": "list"
859
+ }
860
+ ]
861
+ },
862
+ {
863
+ "name": "isodisplaytext",
864
+ "description": "an alternate display text of the ISO attached to the virtual machine",
865
+ "type": "string"
866
+ }
867
+ ]
868
+ }
869
+ ]
870
+ }
871
+ }