skytap-yf 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/api_schema.yaml ADDED
@@ -0,0 +1,1016 @@
1
+ #TODO:NLA Resources to document:
2
+ #
3
+ # label
4
+ # schedule
5
+ # quota
6
+ # report
7
+ # account
8
+ # ip_range
9
+ # access_policy
10
+ # activation
11
+ # notification_rule
12
+ # user_notificiation_rule
13
+ # password_reset
14
+ # share
15
+ # sso_policy
16
+ # validation
17
+ # share
18
+ # project
19
+ # group
20
+
21
+ asset:
22
+ description: |
23
+ An asset is a file you upload to support your work in Skytap Cloud.
24
+
25
+ Assets may include nightly builds, ISOs, test data, training manuals or
26
+ any other files. Skytap Cloud also provides a set of public assets.
27
+ actions:
28
+ update:
29
+ id_required: true
30
+ params:
31
+ - name:
32
+ description: human-readable name for the asset
33
+ skip_actions:
34
+ - create
35
+
36
+ credential:
37
+ parent_resources:
38
+ - vm
39
+ description: |
40
+ A credential belongs to a VM and represents security credentials such as passwords.
41
+
42
+ Credentials can take any arbitrary text value. They are shown when using
43
+ SmartClient to view a VM.
44
+ actions:
45
+ create:
46
+ params:
47
+ - text:
48
+ description: username, password, or other contents of this credential
49
+ required: true
50
+ examples:
51
+ - "root/password123"
52
+ - "clever password"
53
+ skip_actions:
54
+ - show
55
+ - update
56
+
57
+ configuration:
58
+ description: |
59
+ A configuration is a virtual workspace that contains one or more virtual
60
+ machines (VM), one or more networks, and network connections.
61
+
62
+ A configuration also defines how VMs leverage the public internet and/or
63
+ secure access via VPN access to a corporate data center. A configuration
64
+ may be running, suspended, stopped or powered off. You may save the exact
65
+ state of a configuration as a template.
66
+ actions:
67
+ create:
68
+ description: |
69
+ Create a configuration based on the specified template.
70
+ params:
71
+ - template_id:
72
+ description: ID of the template to copy
73
+ required: true
74
+ - name:
75
+ description: human-readable name of the configuration; defaults to the name of the template specified
76
+ - vm_ids:
77
+ description: comma-separated sequence of the template VMs to include; must be flanked by square brackets and not include whitespace
78
+ examples:
79
+ - "[123,456,78]"
80
+ - "[36]"
81
+ update:
82
+ id_required: true
83
+ params:
84
+ - name:
85
+ description: human-readable name of the configuration
86
+ - runstate:
87
+ description: "the runtime state to bring the configuration to; one of the following: \"running\", \"suspended\", \"stopped\" (using shut down), \"halted\" (using power off)"
88
+ examples:
89
+ - "running"
90
+ - "suspended"
91
+ - template_id:
92
+ description: ID of the template to copy into the configuration
93
+ - vm_ids:
94
+ description: comma-separated sequence of VMs to include; must be flanked by square brackets and not contain whitespace; provide only with template_id
95
+ examples:
96
+ - "[123,456,78]"
97
+ - "[36]"
98
+ - suspend_on_idle:
99
+ description: number of seconds after the configuration was last viewed before it should be auto-suspended
100
+ - owner:
101
+ description: ID of the user to assign the configuration to
102
+ - routable:
103
+ description: whether to allow all traffic between networks in the configuration
104
+ - disable_internet:
105
+ description: whether to disable outbound Internet traffic for VMs in the configuration
106
+
107
+ export:
108
+ description: |
109
+ An export job represents the process of preparing a Skytap template VM to
110
+ be downloaded to the local filesystem
111
+ actions:
112
+ create:
113
+ description: |
114
+ Create an export job, allowing Skytap VMs to be downloaded locally.
115
+
116
+ The VM must be part of a template and must be powered off.
117
+
118
+ Once Skytap has finished processing the VM, the export job's status
119
+ will be "complete." You may then download the VM file using FTP.
120
+
121
+ The name of the downloadable file is "vm.7z," a compressed file in
122
+ 7-Zip format. Once extracted, your VM disk will be present as
123
+ "session.vmdk" and your VM configuration file will be present as
124
+ "session.vmx." Depending on the configuration of your VM, there may be
125
+ other file types.
126
+
127
+ See the following page for more information:
128
+ https://cloud.skytap.com/docs/index.php/Importing_and_Exporting_Virtual_Machines#How_to_Export_VMs_Out_of_Skytap
129
+ params:
130
+ - vm_id:
131
+ description: ID of the template VM to export
132
+ required: true
133
+
134
+ import:
135
+ description: |
136
+ An import job represents the process of creating a Skytap template from a
137
+ local VM file.
138
+ actions:
139
+ create:
140
+ params:
141
+ - template_name:
142
+ description: human-readable name of the template to create
143
+ required: true
144
+ - template_description:
145
+ description: human-readable description of the template to create
146
+ required: true
147
+ - network_domain:
148
+ description: domain name of the new template's network
149
+ required: true
150
+ examples:
151
+ - "test.net"
152
+ - network_subnet:
153
+ description: subnet of the new template's network
154
+ required: true
155
+ examples:
156
+ - "10.0.0.0/24"
157
+ - "192.168.0.0/16"
158
+ - interface_ip:
159
+ description: IP address of the new VM
160
+ required: true
161
+ examples:
162
+ - "10.0.0.1"
163
+ - "192.168.0.1"
164
+ - interface_hostname:
165
+ description: hostname of the new VM
166
+ required: true
167
+ examples:
168
+ - "host"
169
+ - "db-node"
170
+ - credentials:
171
+ description: login credentials for the new VM
172
+ examples:
173
+ - "root/password123"
174
+ - "clever password"
175
+ - region:
176
+ description: region into which to import the VM; defaults to US-West
177
+ examples:
178
+ - "US-West"
179
+ - "US-East"
180
+ update:
181
+ description: |
182
+ Update attributes of the specified import.
183
+ id_required: true
184
+ params:
185
+ - status:
186
+ description: set to "processing" to start the import process
187
+ examples:
188
+ - "processing"
189
+ - template_name:
190
+ description: human-readable name of the template to create
191
+ - template_description:
192
+ description: human-readable description of the template to create
193
+ - network_domain:
194
+ description: domain name of the new template's network
195
+ examples:
196
+ - "test.net"
197
+ - network_subnet:
198
+ description: subnet of the new template's network
199
+ examples:
200
+ - "10.0.0.0/24"
201
+ - "192.168.0.0/16"
202
+ - interface_ip:
203
+ description: IP address of the new VM
204
+ examples:
205
+ - "10.0.0.1"
206
+ - "192.168.0.1"
207
+ - interface_hostname:
208
+ description: hostname of the new VM
209
+ examples:
210
+ - "host"
211
+ - "db-node"
212
+ - credentials:
213
+ description: login credentials for the new VM
214
+ examples:
215
+ - "root/password123"
216
+ - "clever password"
217
+
218
+ ip:
219
+ description: |
220
+ A public IP is a publicly-accessible IP address that can be attached to a VM or VPN.
221
+
222
+ Unlike a published service, a public IP address exposes all of the VM's
223
+ ports to the public Internet, and does so without remapping them.
224
+ actions:
225
+ create:
226
+ description: |
227
+ Attaches a public IP to the specified VM interface
228
+
229
+ The IP address must be in your company's public IP pool. Use the
230
+ "acquire" command to aquire one.
231
+ params:
232
+ - vm_id:
233
+ description: ID of the VM to which this public IP should be attached
234
+ required: true
235
+ - ip:
236
+ description: public IP address to attach
237
+ required: true
238
+ - interface_id:
239
+ description: ID of the VM interface to which to attach the public IP
240
+ required: true
241
+ skip_actions:
242
+ - show
243
+ - update
244
+ - destroy
245
+
246
+ #TODO:NLA Uncomment after parent resources can be specified.
247
+ interface:
248
+ parent_resources:
249
+ - configuration
250
+ - vm
251
+ description: |
252
+ An interface consists of a virtualized network adapter in a VM.
253
+
254
+ It is a component of a virtual machine, so operations on network
255
+ interfaces are implicitly operations on the containing configuration. At
256
+ the same time, the interface is attached to a virtual network.
257
+ actions:
258
+ create:
259
+ params:
260
+ - vm_id:
261
+ description: ID of the VM to which this interface should belong
262
+ required: true
263
+ - nic_type:
264
+ description: |
265
+ the NIC type of the interface; must be one of the following:
266
+ pcnet32, vmxnet, vmxnet3, e1000, e1000e; note that not all
267
+ operating systems support all NIC types; for more details see
268
+ https://cloud.skytap.com/docs/index.php/Can_I_attach_more_than_one_Network_Adapter_(NIC)_to_my_VM%3F_What_different_types_of_NICs_does_Skytap_support%3F
269
+ update:
270
+ description: |
271
+ Connects the interface to a network, or disconnects from a network
272
+ id_required: true
273
+ params:
274
+ - vm_id:
275
+ description: ID of the interface's VM
276
+ required: true
277
+ - network_id:
278
+ description: |
279
+ ID of the network to connect the interface to; if the value
280
+ is null, then the interface will be disconnected from the current
281
+ network
282
+
283
+ #TODO:NLA Uncomment after parent resources can be specified.
284
+ #
285
+ # network:
286
+ # description: |
287
+ # A network is a virtual subnet that connects some or all VMs in a configuration.
288
+
289
+ # Skytap Cloud allows you to create two types of networks for your
290
+ # configurations: automatic and manual. Automatic networks are configured
291
+ # by Skytap Cloud to give you full networking functionality, including
292
+ # DHCP, DNS, and access to the public Internet from any VM in the
293
+ # configuration. Manual networks are not configured by Skytap Cloud, and
294
+ # require the user to specify the network's parameters. As such, manual
295
+ # networks should be reserved for advanced use cases.
296
+
297
+ # For more information, see https://cloud.skytap.com/docs/index.php/Networking
298
+ # actions:
299
+ # create:
300
+ # params:
301
+ # - configuration_id:
302
+ # description: ID of the configuration to which the new network will belong
303
+ # required: true
304
+ # - name:
305
+ # description: human-readable name of the network
306
+ # required: true
307
+ # - network_type:
308
+ # description: |
309
+ # type of network, either "automatic" or "manual"; if not
310
+ # provided, will be automatic; automatic networks include DHCP,
311
+ # DNS, and access to the public Internet; manual networks are not
312
+ # configured by Skytap Cloud
313
+ # - subnet_addr:
314
+ # description: address of the subnet, in IPv4 form (X.X.X.X)
315
+ # required: true
316
+ # examples:
317
+ # - "10.0.0.0"
318
+ # - "192.168.0.0"
319
+ # - subnet_size:
320
+ # description: size of the subnet mask as an integer between 16 and 29, inclusive
321
+ # required: true
322
+ # - gateway:
323
+ # description: |
324
+ # the IP address of the gateway, in IPv4 form (X.X.X.X); required
325
+ # for manual networks; not allowed for automatic networks; if
326
+ # provided, must be included in the subnet; if not provided, the
327
+ # gateway will be the penultimate address of the subnet
328
+ # required: true
329
+ # examples:
330
+ # - "10.2.3.254"
331
+ # - domain_name:
332
+ # description: domain name of the network; required for automatic networks; not allowed for manual networks
333
+ # required: true
334
+ # examples:
335
+ # - "test.net"
336
+ # - tunnelable:
337
+ # description: whether other networks can create ICNR tunnels to this network
338
+ # - primary_nameserver:
339
+ # description: primary IP address of a custom DNS server for this network; not allowed for manual networks
340
+ # examples:
341
+ # - "12.34.56.78"
342
+ # - secondary_nameserver:
343
+ # description: secondary IP address of a custom DNS server for this network, for redundancy; must also provide primary_nameserver
344
+ # examples:
345
+ # - "12.34.60.80"
346
+ # update:
347
+ # id_required: true
348
+ # params:
349
+ # - configuration_id:
350
+ # description: ID of this network's configuration or template
351
+ # required: true
352
+ # - name:
353
+ # description: human-readable name of the network
354
+ # - subnet_addr:
355
+ # description: address of the subnet, in IPv4 form (X.X.X.X)
356
+ # examples:
357
+ # - "10.0.0.0"
358
+ # - "192.168.0.0"
359
+ # - subnet_size:
360
+ # description: size of the subnet mask as an integer between 16 and 29, inclusive
361
+ # - gateway:
362
+ # description: |
363
+ # the IP address of the gateway, in IPv4 form (X.X.X.X); required
364
+ # for manual networks; not allowed for automatic networks; if
365
+ # provided, must be included in the subnet; if not provided, the
366
+ # gateway will be the penultimate address of the subnet
367
+ # examples:
368
+ # - "10.2.3.254"
369
+ # - domain_name:
370
+ # description: domain name of the network; required for automatic networks; not allowed for manual networks
371
+ # examples:
372
+ # - "test.net"
373
+ # - tunnelable:
374
+ # description: whether other networks can create ICNR tunnels to this network
375
+ # - primary_nameserver:
376
+ # description: primary IP address of a custom DNS server for this network; not allowed for manual networks
377
+ # examples:
378
+ # - "12.34.56.78"
379
+ # - secondary_nameserver:
380
+ # description: secondary IP address of a custom DNS server for this network, for redundancy; must also provide primary_nameserver
381
+ # examples:
382
+ # - "12.34.60.80"
383
+ # skip_actions:
384
+ # - create
385
+
386
+ # network_vpn:
387
+ # description: |
388
+ # A network-VPN attachment represents the state of a configuration network
389
+ # being attached and possibly connected to a VPN.
390
+
391
+ # Editing or creating attached networks allows you to manage the network
392
+ # connections of a VPN. An attached network resource will be contained in
393
+ # the representation of a VPN resource under a field named
394
+ # "attached_networks."
395
+ # actions:
396
+ # create:
397
+ # description: Attach a network to a VPN
398
+ # params:
399
+ # - vpn_id:
400
+ # description: ID of the VPN to which the network will be attached
401
+ # required: true
402
+ # - network_id:
403
+ # description: ID of the network to be attached to the VPN
404
+ # required: true
405
+ # update:
406
+ # description: Connect the attached network to the VPN so that traffic will flow over the VPN tunnel, or disconnect.
407
+ # id_required: true
408
+ # params:
409
+ # - vpn_id:
410
+ # description: ID of the VPN to which the network is attached
411
+ # required: true
412
+ # - network_id:
413
+ # description: ID of the attached network
414
+ # required: true
415
+ # - connected:
416
+ # description: whether the network-VPN attachment should be connected; if false, then it will be disconnected
417
+ # required: true
418
+ # show:
419
+ # id_required: false
420
+ # params:
421
+ # - vpn_id:
422
+ # description: ID of the VPN to which the network is attached
423
+ # required: true
424
+ # - network_id:
425
+ # description: ID of the attached network
426
+ # required: true
427
+ # destroy:
428
+ # id_required: false
429
+ # description: Detach the network from the VPN
430
+ # params:
431
+ # - vpn_id:
432
+ # description: ID of the VPN to which the network is attached
433
+ # required: true
434
+ # - network_id:
435
+ # description: ID of the attached network
436
+ # required: true
437
+
438
+ # note:
439
+ # description: |
440
+ # A note is a chunk of human-readable text associated with a configuration.
441
+ # actions:
442
+ # index:
443
+ # params:
444
+ # #TODO:NLA Need a better way to express that one resource is nested inside another.
445
+ # - configuration_id:
446
+ # description: ID of the configuration
447
+ # required: true
448
+ # create:
449
+ # params:
450
+ # - configuration_id:
451
+ # description: ID of the configuration to which to attach the note
452
+ # required: true
453
+ # - text:
454
+ # description: human-readable text
455
+ # required: true
456
+ # skip_actions:
457
+ # - update
458
+ # - index
459
+
460
+
461
+ #TODO:NLA Uncomment after parent resources can be specified.
462
+
463
+ publish_set:
464
+ parent_resources:
465
+ - configuration
466
+ description: |
467
+ A published set (also called a published URL) is used to share access to
468
+ one or more VMs in a configuration with people who may not have Skytap
469
+ accounts.
470
+
471
+ Published sets come in "single-URL" or "multiple-URL" varieties. A
472
+ single-URL published set contains a single URL mapped to a set of VMs,
473
+ whereas a multiple-URL published set generates a unique URL for each VM
474
+ in the set.
475
+
476
+ For each VM belonging to a published set, you can determine whether a
477
+ user can view, run, or run and suspend it.
478
+ actions:
479
+ create:
480
+ description: Create a published set for the specified configuration.
481
+ params:
482
+ - configuration_id:
483
+ description: ID of this published set's configuration
484
+ required: true
485
+ - name:
486
+ description: human-readable name of the published set
487
+ required: true
488
+ - publish_set_type:
489
+ description: |
490
+ type of the published set; specify "single_url" if you want
491
+ only one URL mapped to the set of VMs, or else "multiple_url" if
492
+ there should be a unique URL for each VM in the set
493
+ required: true
494
+ - vms:
495
+ description: |
496
+ array of VM descriptors, each containing the following fields:
497
+ "vm_ref" - the ID or URL of the VM to include in the set
498
+ "access" - specifies how the VM may be accessed, either "view_only", "use", or "run_and_use"
499
+ examples:
500
+ - "[{\"vm_ref\": 123, \"access\": \"use\"}] (in JSON)"
501
+ - "<vms><vm><vm-ref>123</vm-ref><access>use</access></vm></vms> (in XML)"
502
+ - password:
503
+ description: |
504
+ access password for the new published set; if provided, then
505
+ this password must be supplied by the user upon accessing the URL
506
+ - start_time:
507
+ description: |
508
+ start of the allowed daily access window for the published
509
+ set, expressed in HH:MM format, for hours 0:23 and minutes 0:59;
510
+ if provided, you must also provide end_time; to delete an access
511
+ window, specify empty strings for the start_time and end_time
512
+ examples:
513
+ - "09:00"
514
+ - "17:30"
515
+ - end_time:
516
+ description: |
517
+ end of the allowed daily access window for the published set,
518
+ expressed in HH:MM format, for hours 0:23 and minutes 0:59; if
519
+ provided, you must also provide start_time; to delete an access
520
+ window, specify empty strings for the start_time and end_time
521
+ examples:
522
+ - "09:00"
523
+ - "17:30"
524
+ - time_zone:
525
+ description: |
526
+ time zone specified to quality the allowed daily access window;
527
+ if provided, you must also specify start_time and end_time; if
528
+ this is not provided, the API caller’s default time zone is used
529
+ examples:
530
+ - "Pacific Time (US & Canada)"
531
+ - "Eastern Time (US & Canada)"
532
+ - "UTC"
533
+ - "New Delhi"
534
+ update:
535
+ id_required: true
536
+ params:
537
+ - name:
538
+ description: human-readable name of the published set
539
+ required: true
540
+ - publish_set_type:
541
+ description: |
542
+ type of the published set; specify "single_url" if you want
543
+ only one URL mapped to the set of VMs, or else "multiple_url" if
544
+ there should be a unique URL for each VM in the set
545
+ required: true
546
+ - vms:
547
+ description: |
548
+ array of VM descriptors, each containing the following fields:
549
+ "vm_ref" - the ID or URL of the VM to include in the set
550
+ "access" - specifies how the VM may be accessed, either "view_only", "use", or "run_and_use"
551
+ examples:
552
+ - "[{\"vm_ref\": 123, \"access\": \"use\"}] (in JSON)"
553
+ - "<vms><vm><vm-ref>123</vm-ref><access>use</access></vm></vms> (in XML)"
554
+ - password:
555
+ description: |
556
+ access password for the published set; if provided, then this
557
+ password must be supplied by the user upon accessing the URL
558
+ - start_time:
559
+ description: |
560
+ start of the allowed daily access window for the published
561
+ set, expressed in HH:MM format, for hours 0:23 and minutes 0:59;
562
+ if provided, you must also provide end_time; to delete an access
563
+ window, specify empty strings for the start_time and end_time
564
+ examples:
565
+ - "09:00"
566
+ - "17:30"
567
+ - end_time:
568
+ description: |
569
+ end of the allowed daily access window for the published set,
570
+ expressed in HH:MM format, for hours 0:23 and minutes 0:59; if
571
+ provided, you must also provide start_time; to delete an access
572
+ window, specify empty strings for the start_time and end_time
573
+ examples:
574
+ - "09:00"
575
+ - "17:30"
576
+ - time_zone:
577
+ description: |
578
+ time zone specified to quality the allowed daily access window;
579
+ if provided, you must also specify start_time and end_time; if
580
+ this is not provided, the API caller’s default time zone is used
581
+ examples:
582
+ - "Pacific Time (US & Canada)"
583
+ - "Eastern Time (US & Canada)"
584
+ - "UTC"
585
+ - "New Delhi"
586
+
587
+ schedule:
588
+ description: The schedule resource represents a set of one or more automated actions applied to a configuration or template.
589
+ actions:
590
+ create:
591
+ params:
592
+ - title:
593
+ description: name of the schedule
594
+ required: true
595
+ - configuration_id:
596
+ description: configuration ID
597
+ - template_id:
598
+ description: template ID
599
+ - start_at:
600
+ description: |
601
+ A string specifying when the schedule will execute. 
602
+ The format for the time is YYYY/MM/DD hh:mm, where YYYY is a four-­‐digit year, 
603
+ MM is a two-­‐digit month, DD is a two-­‐digit day, hh is a two-­‐digit hour 
604
+ and mm is a two-­‐digit minute.
605
+ required: true
606
+ examples:
607
+ - 2012/07/28 11:09
608
+ - end_at:
609
+ description: A string specifying the end_date of a schedule, only relevant if the schedule is set to recur.
610
+ - delete_at_end:
611
+ description: if end_at is set, this boolean determines whether the schedule's configuration will be deleted when the time specified at end_at is reached.
612
+ - notify_user:
613
+ description: This boolean determines whether the schedules owner recieves an email after the completion of a successful action.
614
+ - executions:
615
+ description: An array of objects that collectively represent an action performed when a schedule is run.
616
+ - actions:
617
+ description: scheduled actions
618
+ - recurring_days:
619
+ description: an array of days on which the schedule wil occur.
620
+ - time_zone:
621
+ description: |
622
+ A string specifying the time zone in which the scheduled action will run.
623
+ These are entered as English strings.
624
+ examples:
625
+ - Pacific Time (US & Canada)
626
+ required: true
627
+
628
+ - user:
629
+ description: A list of key-value pairs representing the owner of the schedule, with the following fields
630
+ examples:
631
+ - id
632
+ - url
633
+ - login_name
634
+ - first_name
635
+ - last_name
636
+ - email
637
+
638
+ project:
639
+ description: |
640
+ Projects are an access permissions model used to share configurations, templates, and assets among different
641
+ users. The project resource is a top-level element in the API data model.
642
+ actions:
643
+ create:
644
+ params:
645
+ - name:
646
+ description: human friendly name
647
+ - summary:
648
+ description: user-defined description of project
649
+ - show_project_members:
650
+ description: Determines if projects members can view list of other project members
651
+ - auto_add_role_name:
652
+ description: Defines "automatic role" for project
653
+ update:
654
+ id_required: true
655
+ params:
656
+ - name:
657
+ description: human friendly name
658
+ required: true
659
+ - summary:
660
+ description: user-defined description of project
661
+ - show_project_members:
662
+ description: Determines if projects members can view list of other project members
663
+ - auto_add_role_name:
664
+ description: Defines "automatic role" for project
665
+
666
+
667
+
668
+ service:
669
+ parent_resources:
670
+ - configuration
671
+ - vm
672
+ - interface
673
+ description: |
674
+ A published service represents a binding of a port on a VM's virtual network interface to an IP and port that is routable and accessible from the public Internet.
675
+
676
+ This mechanism is used to selectively expose ports on the VM to the public Internet.
677
+ actions:
678
+ create:
679
+ params:
680
+ - vm_id:
681
+ description: ID of the VM that owns the network interface
682
+ required: true
683
+ - interface_id:
684
+ description: ID of the interface to which the published service should be bound
685
+ required: true
686
+ - internal_port:
687
+ description: |
688
+ port on the VM to expose to the Internet; for instance, port 22
689
+ for a standard SSH server or port 80 for a standard web server
690
+ required: true
691
+ skip_actions:
692
+ - update
693
+
694
+ #TODO:NLA Uncomment after parent resources can be specified.
695
+ # subnet:
696
+ # description: |
697
+ # A subnet resource represents a remote subnet associated with a VPN.
698
+
699
+ # These will take the form of "included" subnets (subnet ranges to which
700
+ # traffic from Skytap Cloud will be routed) and "excluded" subnets (subnets
701
+ # expressly prevented from connecting to Skytap Cloud).
702
+ # actions:
703
+ # create:
704
+ # params:
705
+ # - vpn_id:
706
+ # description: ID of the VPN with which to associate this subnet
707
+ # required: true
708
+ # - cidr_block:
709
+ # description: IP range of the subnet, in CIDR block notation
710
+ # required: true
711
+ # examples:
712
+ # - "10.0.0.0/24"
713
+ # - "77.77.0.0/16"
714
+ # - excluded:
715
+ # description: whether the subnet is excluded, that is, expressly prevented from connecting to Skytap Cloud; defaults to false
716
+ # skip_actions:
717
+ # - update
718
+
719
+ template:
720
+ description: |
721
+ A template is a read-only definition of a complete virtual data center.
722
+
723
+ Templates may be simple, containing only a single VM or quite complex
724
+ containing hundreds of VMs spanning multiple networks. Configurations are
725
+ created from templates. Skytap provides public templates which you can
726
+ use to get started. You can also create your own templates by importing
727
+ existing virtual machines.
728
+ actions:
729
+ create:
730
+ description: |
731
+ Create a template based on the specified configuration.
732
+ params:
733
+ - configuration_id:
734
+ description: ID of the configuration to copy
735
+ required: true
736
+ - name:
737
+ description: human-readable name of the template; defaults to the name of the source configuration
738
+ - description:
739
+ description: human-readable description of the template
740
+ - vm_instance_multiselect:
741
+ description: comma-separated sequence of the configuration VMs to include; must be flanked by square brackets and not include whitespace
742
+ examples:
743
+ - "[123,456,78]"
744
+ - "[36]"
745
+ - network_multiselect:
746
+ description: comma-separated sequence of the configuration networks to include; must be flanked by square brackets and not include whitespace
747
+ examples:
748
+ - "[123,456,78]"
749
+ - "[36]"
750
+ - publish_sets:
751
+ description: whether published sets in the source configuration should be copied to the template; defaults to true
752
+ update:
753
+ id_required: true
754
+ params:
755
+ - name:
756
+ description: human-readable name of the template
757
+ - description:
758
+ description: human-readable description of the template
759
+ - owner:
760
+ description: ID of the user to which this template should be reassigned; requires admin privileges
761
+ - reassign_context:
762
+ description: ID of the project to add this template to when reassigning; must provide "owner" param
763
+ - tags:
764
+ description: comma-separated sequence of tags to assign to the template, replacing all existing tags
765
+ examples:
766
+ - "one, two, three"
767
+
768
+ #TODO:NLA Uncomment after parent resources can be specified.
769
+ # tunnel:
770
+ # description: |
771
+ # A tunnel represents a route between two networks in different configurations (ICNR).
772
+ # actions:
773
+ # create:
774
+ # description: Create a tunnel between two networks so traffic may be routed between them.
775
+ # params:
776
+ # - source_network_id:
777
+ # description: ID of the source network
778
+ # required: true
779
+ # - target_network_id:
780
+ # description: ID of the target network; this network must have a true value for the "tunnelable" attribute
781
+ # required: true
782
+ # skip_actions:
783
+ # - update
784
+
785
+ user:
786
+ description: |
787
+ A user is an account created for an individual who uses Skytap.
788
+
789
+ Apart from user information and login data, the user account is assigned
790
+ a user role, which defines the access permissions of the account. Users
791
+ have access to resources they own (e.g. templates, configurations, and
792
+ assets) or to resources that are part of a project they belong to.
793
+ actions:
794
+ create:
795
+ params:
796
+ - login_name:
797
+ description: user's login name
798
+ required: true
799
+ - email:
800
+ description: user's email address
801
+ required: true
802
+ - first_name:
803
+ description: user's first name
804
+ required: true
805
+ - last_name:
806
+ description: user's last name
807
+ required: true
808
+ - title:
809
+ description: user's job title
810
+ - login_password:
811
+ description: user's password; if omitted, the user will be asked to enter a password during activation
812
+ - verify_password:
813
+ description: confirmation of the login password; must be provided if login_password is present
814
+ - time_zone:
815
+ description: user's time zone; defaults to "Pacific Time (US & Canada)"
816
+ examples:
817
+ - "Pacific Time (US & Canada)"
818
+ - "Eastern Time (US & Canada)"
819
+ - "UTC"
820
+ - "New Delhi"
821
+ - wants_email:
822
+ description: whether the user can be notified by Skytap of product marketing updates and feedback requests
823
+ - has_public_library:
824
+ description: whether the user is able to access Skytap public templates and public assets
825
+ - can_import:
826
+ description: whether the user can import VMs into Skytap
827
+ - can_export:
828
+ description: whether the user can export VMs from Skytap
829
+ - account_role:
830
+ description: "user's role; one of the following: \"admin\", \"user_manager\", \"standard_user\" (default), \"restricted_user\""
831
+ destroy:
832
+ id_required: true
833
+ params:
834
+ - transfer_user_id:
835
+ description: When deleting a user, a transfer_user_id must be specified
836
+ update:
837
+ id_required: true
838
+ params:
839
+ - first_name:
840
+ description: user's first name
841
+ - last_name:
842
+ description: user's last name
843
+ - title:
844
+ description: user's job title
845
+ - login_name:
846
+ description: user's login name
847
+ - email:
848
+ description: user's email address
849
+ - login_password:
850
+ description: user's new password (if using JSON); must also provide verify_password
851
+ - verify_password:
852
+ description: user's new password (if using JSON); only provide if setting verify_password
853
+ - password:
854
+ description: user's new password (if using XML)
855
+ - time_zone:
856
+ description: user's time zone
857
+ examples:
858
+ - "Pacific Time (US & Canada)"
859
+ - "Eastern Time (US & Canada)"
860
+ - "UTC"
861
+ - "New Delhi"
862
+ - wants_email:
863
+ description: whether the user can be notified by Skytap of product marketing updates and feedback requests
864
+ - has_public_library:
865
+ description: whether the user is able to access Skytap public templates and public assets
866
+ - can_import:
867
+ description: whether the user can import VMs into Skytap
868
+ - can_export:
869
+ description: whether the user can export VMs from Skytap
870
+ - account_role:
871
+ description: "user's role; one of the following: \"admin\", \"user_manager\", \"standard_user\" (default), \"restricted_user\""
872
+
873
+ vm:
874
+ description: |
875
+ A VM (virtual machine) is a full computer, which runs an operating
876
+ system and applications.
877
+
878
+ VMs have their own virtual resources including CPU, RAM, file system
879
+ storage, CD/DVD drive, and network interfaces. These resources are all
880
+ configurable allowing you to create VMs that mirror your production
881
+ machines easily. The "power" of a VM is measured as Skytap Virtual
882
+ Machine (SVM) units.
883
+ actions:
884
+ update:
885
+ id_required: true
886
+ params:
887
+ - name:
888
+ description: human-readable name of the VM
889
+ - runstate:
890
+ description: |
891
+ Perform an operation on the VM to bring its state to the
892
+ specified value. Must be one of: "running"; "suspended";
893
+ "stopped" (perform a graceful shutdown of the VM, notifying the
894
+ OS); "halted" (power off the VM without notifying the OS)
895
+ - asset_id:
896
+ description: the ID of the asset to insert into the VM as a CD (ISO)
897
+ #TODO:NLA Implement this.
898
+ # - hardware:
899
+ # description:
900
+ skip_actions:
901
+ - create
902
+ #TODO:NLA Remove this once parent resource paths are implemented.
903
+ - index
904
+
905
+ vpn:
906
+ description: |
907
+ A VPN (virtual private network) refers to an IPsec network tunnel
908
+ connecting a Skytap configuration to an outside server (such as a
909
+ corporate intranet).
910
+
911
+ A VPN resource connects to one logical external endpoint. There may be
912
+ many Skytap configurations connected simultaneously to one VPN, as long
913
+ as the network subnets of any two running configurations do not overlap.
914
+ Additionally, you may create multiple VPN resources if you want to
915
+ connect your configurations to more than one external endpoint.
916
+
917
+ For more details see
918
+ https://cloud.skytap.com/docs/index.php/Connecting_Your_Corporate_Network_to_Skytap_Cloud
919
+ actions:
920
+ create:
921
+ params:
922
+ - name:
923
+ description: human-readable name of the VPN
924
+ required: true
925
+ - remote_peer_ip:
926
+ description: public IP associated with external endpoint
927
+ required: true
928
+ - local_peer_ip:
929
+ description: |
930
+ public IP associated with Skytap Cloud endpoint; the IP address
931
+ must be in your company's public IP pool; use the "acquire"
932
+ command to aquire one
933
+ required: true
934
+ - local_subnet:
935
+ description: range of Skytap configuration IP addresses routed through VPN to external endpoint
936
+ required: true
937
+ - phase_1_encryption_algorithm:
938
+ description: name of phase 1 encryption algorithm; must be one of "3des", "aes", "aes 256"
939
+ required: true
940
+ - phase_1_hash_algorithm:
941
+ description: name of phase 1 hash algorithm; must be one of "md5", "sha1"
942
+ required: true
943
+ - phase_1_pre_shared_key:
944
+ description: phase 1 pre-shared key; must be a string whose length is between 1 and 128, inclusive
945
+ required: true
946
+ - phase_1_sa_lifetime:
947
+ description: value of phase 1 SA lifetime, in seconds, between 1 and 2^31-1, inclusive
948
+ required: true
949
+ - phase_1_dh_group:
950
+ description: name of phase 1 Diffie-Hellman group; must be one of "modp768", "modp1024", "modp1536"
951
+ required: true
952
+ - phase_2_encryption_algorithm:
953
+ description: name of phase 2 encryption algorithm; must be one of "3des", "aes", "aes 256"
954
+ required: true
955
+ - phase_2_authentication_algorithm:
956
+ description: name of phase 2 authentication algorithm; must be one of "hmac_md5", "hmac_sha1"
957
+ required: true
958
+ - phase_2_perfect_forward_secrecy:
959
+ description: whether perfect forward secrecy (PFS) should be used
960
+ required: true
961
+ - phase_2_pfs_group:
962
+ description: name of PFS group; must be provided if and only if phase_2_perfect_forward_secrecy is provided, and one of "modp768" (group 1), "modp1024" (group 2), "modp1536" (group 5)
963
+ required: true
964
+ - phase_2_sa_lifetime:
965
+ description: value of phase 2 SA lifetime, in seconds, between 1 and 2^31-1, inclusive
966
+ required: true
967
+ - sa_policy_level:
968
+ description: name of security policy level; must be one of "use", "require", "unique"
969
+ required: true
970
+ - dpd_enabled:
971
+ description: whether dead peer detection is enabled
972
+ required: true
973
+ - maximum_segment_size:
974
+ description: maximum segment size (MSS); if provided, must be between 536 and 1460, inclusive
975
+ update:
976
+ id_required: true
977
+ params:
978
+ - enabled:
979
+ description: whether the VPN is enabled; if the VPN is not enabled, then even if Skytap configurations are connected to it, traffic will not flow over the VPN tunnel to the external endpoint
980
+ - name:
981
+ description: human-readable name of the VPN
982
+ - remote_peer_ip:
983
+ description: public IP associated with external endpoint
984
+ - local_peer_ip:
985
+ description: |
986
+ public IP associated with Skytap Cloud endpoint; the IP address
987
+ must be in your company's public IP pool; use the "acquire"
988
+ command to aquire one
989
+ - local_subnet:
990
+ description: range of Skytap configuration IP addresses routed through VPN to external endpoint
991
+ - phase_1_encryption_algorithm:
992
+ description: name of phase 1 encryption algorithm; must be one of "3des", "aes", "aes 256"
993
+ - phase_1_hash_algorithm:
994
+ description: name of phase 1 hash algorithm; must be one of "md5", "sha1"
995
+ - phase_1_pre_shared_key:
996
+ description: phase 1 pre-shared key; must be a string whose length is between 1 and 128, inclusive
997
+ - phase_1_sa_lifetime:
998
+ description: value of phase 1 SA lifetime, in seconds, between 1 and 2^31-1, inclusive
999
+ - phase_1_dh_group:
1000
+ description: name of phase 1 Diffie-Hellman group; must be one of "modp768", "modp1024", "modp1536"
1001
+ - phase_2_encryption_algorithm:
1002
+ description: name of phase 2 encryption algorithm; must be one of "3des", "aes", "aes 256"
1003
+ - phase_2_authentication_algorithm:
1004
+ description: name of phase 2 authentication algorithm; must be one of "hmac_md5", "hmac_sha1"
1005
+ - phase_2_perfect_forward_secrecy:
1006
+ description: whether perfect forward secrecy (PFS) should be used
1007
+ - phase_2_pfs_group:
1008
+ description: name of PFS group; must be provided if and only if phase_2_perfect_forward_secrecy is provided, and one of "modp768" (group 1), "modp1024" (group 2), "modp1536" (group 5)
1009
+ - phase_2_sa_lifetime:
1010
+ description: value of phase 2 SA lifetime, in seconds, between 1 and 2^31-1, inclusive
1011
+ - sa_policy_level:
1012
+ description: name of security policy level; must be one of "use", "require", "unique"
1013
+ - dpd_enabled:
1014
+ description: whether dead peer detection is enabled
1015
+ - maximum_segment_size:
1016
+ description: maximum segment size (MSS); if provided, must be between 536 and 1460, inclusive