skytap-yf 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.DS_Store +0 -0
- data/Gemfile +4 -0
- data/README.md +0 -0
- data/README.rdoc +6 -0
- data/api_schema.yaml +1016 -0
- data/bin/skytap +4 -0
- data/ca-bundle.crt +3721 -0
- data/data/.DS_Store +0 -0
- data/lib/skytap/api_schema.rb +11 -0
- data/lib/skytap/command_line.rb +145 -0
- data/lib/skytap/commands/base.rb +294 -0
- data/lib/skytap/commands/help.rb +82 -0
- data/lib/skytap/commands/http.rb +196 -0
- data/lib/skytap/commands/root.rb +79 -0
- data/lib/skytap/commands.rb +9 -0
- data/lib/skytap/core_ext.rb +8 -0
- data/lib/skytap/error.rb +4 -0
- data/lib/skytap/help_templates/help.erb +52 -0
- data/lib/skytap/ip_address.rb +63 -0
- data/lib/skytap/logger.rb +52 -0
- data/lib/skytap/plugins/vm_copy_to_region.rb +200 -0
- data/lib/skytap/plugins/vm_download.rb +431 -0
- data/lib/skytap/plugins/vm_upload.rb +401 -0
- data/lib/skytap/requester.rb +134 -0
- data/lib/skytap/response.rb +61 -0
- data/lib/skytap/skytaprc.rb +28 -0
- data/lib/skytap/subnet.rb +92 -0
- data/lib/skytap/templates.rb +216 -0
- data/lib/skytap/version.rb +5 -0
- data/lib/skytap.rb +149 -0
- data/skytap.gemspec +25 -0
- data/skytap.rdoc +5 -0
- metadata +143 -0
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
|