aws-sdk-ec2 1.0.0.rc1
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.
- checksums.yaml +7 -0
- data/lib/aws-sdk-ec2.rb +70 -0
- data/lib/aws-sdk-ec2/classic_address.rb +227 -0
- data/lib/aws-sdk-ec2/client.rb +14254 -0
- data/lib/aws-sdk-ec2/client_api.rb +6182 -0
- data/lib/aws-sdk-ec2/customizations.rb +21 -0
- data/lib/aws-sdk-ec2/customizations/instance.rb +29 -0
- data/lib/aws-sdk-ec2/customizations/resource.rb +18 -0
- data/lib/aws-sdk-ec2/dhcp_options.rb +183 -0
- data/lib/aws-sdk-ec2/errors.rb +23 -0
- data/lib/aws-sdk-ec2/image.rb +462 -0
- data/lib/aws-sdk-ec2/instance.rb +1570 -0
- data/lib/aws-sdk-ec2/internet_gateway.rb +204 -0
- data/lib/aws-sdk-ec2/key_pair.rb +120 -0
- data/lib/aws-sdk-ec2/key_pair_info.rb +122 -0
- data/lib/aws-sdk-ec2/network_acl.rb +341 -0
- data/lib/aws-sdk-ec2/network_interface.rb +474 -0
- data/lib/aws-sdk-ec2/network_interface_association.rb +151 -0
- data/lib/aws-sdk-ec2/placement_group.rb +426 -0
- data/lib/aws-sdk-ec2/plugins/copy_encrypted_snapshot.rb +59 -0
- data/lib/aws-sdk-ec2/plugins/region_validation.rb +19 -0
- data/lib/aws-sdk-ec2/resource.rb +2684 -0
- data/lib/aws-sdk-ec2/route.rb +243 -0
- data/lib/aws-sdk-ec2/route_table.rb +277 -0
- data/lib/aws-sdk-ec2/route_table_association.rb +177 -0
- data/lib/aws-sdk-ec2/security_group.rb +530 -0
- data/lib/aws-sdk-ec2/snapshot.rb +478 -0
- data/lib/aws-sdk-ec2/subnet.rb +972 -0
- data/lib/aws-sdk-ec2/tag.rb +223 -0
- data/lib/aws-sdk-ec2/types.rb +20124 -0
- data/lib/aws-sdk-ec2/volume.rb +555 -0
- data/lib/aws-sdk-ec2/vpc.rb +1698 -0
- data/lib/aws-sdk-ec2/vpc_address.rb +219 -0
- data/lib/aws-sdk-ec2/vpc_peering_connection.rb +265 -0
- data/lib/aws-sdk-ec2/waiters.rb +1334 -0
- metadata +107 -0
@@ -0,0 +1,1570 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
module Aws
|
9
|
+
module EC2
|
10
|
+
class Instance
|
11
|
+
|
12
|
+
extend Aws::Deprecations
|
13
|
+
|
14
|
+
# @overload def initialize(id, options = {})
|
15
|
+
# @param [String] id
|
16
|
+
# @option options [Client] :client
|
17
|
+
# @overload def initialize(options = {})
|
18
|
+
# @option options [required, String] :id
|
19
|
+
# @option options [Client] :client
|
20
|
+
def initialize(*args)
|
21
|
+
options = Hash === args.last ? args.pop.dup : {}
|
22
|
+
@id = extract_id(args, options)
|
23
|
+
@data = options.delete(:data)
|
24
|
+
@client = options.delete(:client) || Client.new(options)
|
25
|
+
end
|
26
|
+
|
27
|
+
# @!group Read-Only Attributes
|
28
|
+
|
29
|
+
# @return [String]
|
30
|
+
def id
|
31
|
+
@id
|
32
|
+
end
|
33
|
+
alias :instance_id :id
|
34
|
+
|
35
|
+
# The ID of the AMI used to launch the instance.
|
36
|
+
# @return [String]
|
37
|
+
def image_id
|
38
|
+
data.image_id
|
39
|
+
end
|
40
|
+
|
41
|
+
# The current state of the instance.
|
42
|
+
# @return [Types::InstanceState]
|
43
|
+
def state
|
44
|
+
data.state
|
45
|
+
end
|
46
|
+
|
47
|
+
# The private DNS name assigned to the instance. This DNS name can only
|
48
|
+
# be used inside the Amazon EC2 network. This name is not available
|
49
|
+
# until the instance enters the `running` state. For EC2-VPC, this name
|
50
|
+
# is only available if you've enabled DNS hostnames for your VPC.
|
51
|
+
# @return [String]
|
52
|
+
def private_dns_name
|
53
|
+
data.private_dns_name
|
54
|
+
end
|
55
|
+
|
56
|
+
# The public DNS name assigned to the instance. This name is not
|
57
|
+
# available until the instance enters the `running` state. For EC2-VPC,
|
58
|
+
# this name is only available if you've enabled DNS hostnames for your
|
59
|
+
# VPC.
|
60
|
+
# @return [String]
|
61
|
+
def public_dns_name
|
62
|
+
data.public_dns_name
|
63
|
+
end
|
64
|
+
|
65
|
+
# The reason for the most recent state transition. This might be an
|
66
|
+
# empty string.
|
67
|
+
# @return [String]
|
68
|
+
def state_transition_reason
|
69
|
+
data.state_transition_reason
|
70
|
+
end
|
71
|
+
|
72
|
+
# The name of the key pair, if this instance was launched with an
|
73
|
+
# associated key pair.
|
74
|
+
# @return [String]
|
75
|
+
def key_name
|
76
|
+
data.key_name
|
77
|
+
end
|
78
|
+
|
79
|
+
# The AMI launch index, which can be used to find this instance in the
|
80
|
+
# launch group.
|
81
|
+
# @return [Integer]
|
82
|
+
def ami_launch_index
|
83
|
+
data.ami_launch_index
|
84
|
+
end
|
85
|
+
|
86
|
+
# The product codes attached to this instance, if applicable.
|
87
|
+
# @return [Array<Types::ProductCode>]
|
88
|
+
def product_codes
|
89
|
+
data.product_codes
|
90
|
+
end
|
91
|
+
|
92
|
+
# The instance type.
|
93
|
+
# @return [String]
|
94
|
+
def instance_type
|
95
|
+
data.instance_type
|
96
|
+
end
|
97
|
+
|
98
|
+
# The time the instance was launched.
|
99
|
+
# @return [Time]
|
100
|
+
def launch_time
|
101
|
+
data.launch_time
|
102
|
+
end
|
103
|
+
|
104
|
+
# The location where the instance launched, if applicable.
|
105
|
+
# @return [Types::Placement]
|
106
|
+
def placement
|
107
|
+
data.placement
|
108
|
+
end
|
109
|
+
|
110
|
+
# The kernel associated with this instance, if applicable.
|
111
|
+
# @return [String]
|
112
|
+
def kernel_id
|
113
|
+
data.kernel_id
|
114
|
+
end
|
115
|
+
|
116
|
+
# The RAM disk associated with this instance, if applicable.
|
117
|
+
# @return [String]
|
118
|
+
def ramdisk_id
|
119
|
+
data.ramdisk_id
|
120
|
+
end
|
121
|
+
|
122
|
+
# The value is `Windows` for Windows instances; otherwise blank.
|
123
|
+
# @return [String]
|
124
|
+
def platform
|
125
|
+
data.platform
|
126
|
+
end
|
127
|
+
|
128
|
+
# The monitoring information for the instance.
|
129
|
+
# @return [Types::Monitoring]
|
130
|
+
def monitoring
|
131
|
+
data.monitoring
|
132
|
+
end
|
133
|
+
|
134
|
+
# \[EC2-VPC\] The ID of the subnet in which the instance is running.
|
135
|
+
# @return [String]
|
136
|
+
def subnet_id
|
137
|
+
data.subnet_id
|
138
|
+
end
|
139
|
+
|
140
|
+
# \[EC2-VPC\] The ID of the VPC in which the instance is running.
|
141
|
+
# @return [String]
|
142
|
+
def vpc_id
|
143
|
+
data.vpc_id
|
144
|
+
end
|
145
|
+
|
146
|
+
# The private IP address assigned to the instance.
|
147
|
+
# @return [String]
|
148
|
+
def private_ip_address
|
149
|
+
data.private_ip_address
|
150
|
+
end
|
151
|
+
|
152
|
+
# The public IP address assigned to the instance, if applicable.
|
153
|
+
# @return [String]
|
154
|
+
def public_ip_address
|
155
|
+
data.public_ip_address
|
156
|
+
end
|
157
|
+
|
158
|
+
# The reason for the most recent state transition.
|
159
|
+
# @return [Types::StateReason]
|
160
|
+
def state_reason
|
161
|
+
data.state_reason
|
162
|
+
end
|
163
|
+
|
164
|
+
# The architecture of the image.
|
165
|
+
# @return [String]
|
166
|
+
def architecture
|
167
|
+
data.architecture
|
168
|
+
end
|
169
|
+
|
170
|
+
# The root device type used by the AMI. The AMI can use an EBS volume or
|
171
|
+
# an instance store volume.
|
172
|
+
# @return [String]
|
173
|
+
def root_device_type
|
174
|
+
data.root_device_type
|
175
|
+
end
|
176
|
+
|
177
|
+
# The root device name (for example, `/dev/sda1` or `/dev/xvda`).
|
178
|
+
# @return [String]
|
179
|
+
def root_device_name
|
180
|
+
data.root_device_name
|
181
|
+
end
|
182
|
+
|
183
|
+
# Any block device mapping entries for the instance.
|
184
|
+
# @return [Array<Types::InstanceBlockDeviceMapping>]
|
185
|
+
def block_device_mappings
|
186
|
+
data.block_device_mappings
|
187
|
+
end
|
188
|
+
|
189
|
+
# The virtualization type of the instance.
|
190
|
+
# @return [String]
|
191
|
+
def virtualization_type
|
192
|
+
data.virtualization_type
|
193
|
+
end
|
194
|
+
|
195
|
+
# Indicates whether this is a Spot instance or a Scheduled Instance.
|
196
|
+
# @return [String]
|
197
|
+
def instance_lifecycle
|
198
|
+
data.instance_lifecycle
|
199
|
+
end
|
200
|
+
|
201
|
+
# If the request is a Spot instance request, the ID of the request.
|
202
|
+
# @return [String]
|
203
|
+
def spot_instance_request_id
|
204
|
+
data.spot_instance_request_id
|
205
|
+
end
|
206
|
+
|
207
|
+
# The idempotency token you provided when you launched the instance, if
|
208
|
+
# applicable.
|
209
|
+
# @return [String]
|
210
|
+
def client_token
|
211
|
+
data.client_token
|
212
|
+
end
|
213
|
+
|
214
|
+
# Any tags assigned to the instance.
|
215
|
+
# @return [Array<Types::Tag>]
|
216
|
+
def tags
|
217
|
+
data.tags
|
218
|
+
end
|
219
|
+
|
220
|
+
# One or more security groups for the instance.
|
221
|
+
# @return [Array<Types::GroupIdentifier>]
|
222
|
+
def security_groups
|
223
|
+
data.security_groups
|
224
|
+
end
|
225
|
+
|
226
|
+
# Specifies whether to enable an instance launched in a VPC to perform
|
227
|
+
# NAT. This controls whether source/destination checking is enabled on
|
228
|
+
# the instance. A value of `true` means checking is enabled, and `false`
|
229
|
+
# means checking is disabled. The value must be `false` for the instance
|
230
|
+
# to perform NAT. For more information, see [NAT Instances][1] in the
|
231
|
+
# *Amazon Virtual Private Cloud User Guide*.
|
232
|
+
#
|
233
|
+
#
|
234
|
+
#
|
235
|
+
# [1]: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html
|
236
|
+
# @return [Boolean]
|
237
|
+
def source_dest_check
|
238
|
+
data.source_dest_check
|
239
|
+
end
|
240
|
+
|
241
|
+
# The hypervisor type of the instance.
|
242
|
+
# @return [String]
|
243
|
+
def hypervisor
|
244
|
+
data.hypervisor
|
245
|
+
end
|
246
|
+
|
247
|
+
# The IAM instance profile associated with the instance, if applicable.
|
248
|
+
# @return [Types::IamInstanceProfile]
|
249
|
+
def iam_instance_profile
|
250
|
+
data.iam_instance_profile
|
251
|
+
end
|
252
|
+
|
253
|
+
# Indicates whether the instance is optimized for EBS I/O. This
|
254
|
+
# optimization provides dedicated throughput to Amazon EBS and an
|
255
|
+
# optimized configuration stack to provide optimal I/O performance. This
|
256
|
+
# optimization isn't available with all instance types. Additional
|
257
|
+
# usage charges apply when using an EBS Optimized instance.
|
258
|
+
# @return [Boolean]
|
259
|
+
def ebs_optimized
|
260
|
+
data.ebs_optimized
|
261
|
+
end
|
262
|
+
|
263
|
+
# Specifies whether enhanced networking with the Intel 82599 Virtual
|
264
|
+
# Function interface is enabled.
|
265
|
+
# @return [String]
|
266
|
+
def sriov_net_support
|
267
|
+
data.sriov_net_support
|
268
|
+
end
|
269
|
+
|
270
|
+
# Specifies whether enhanced networking with ENA is enabled.
|
271
|
+
# @return [Boolean]
|
272
|
+
def ena_support
|
273
|
+
data.ena_support
|
274
|
+
end
|
275
|
+
|
276
|
+
# @!endgroup
|
277
|
+
|
278
|
+
# @return [Client]
|
279
|
+
def client
|
280
|
+
@client
|
281
|
+
end
|
282
|
+
|
283
|
+
# Loads, or reloads {#data} for the current {Instance}.
|
284
|
+
# Returns `self` making it possible to chain methods.
|
285
|
+
#
|
286
|
+
# instance.reload.data
|
287
|
+
#
|
288
|
+
# @return [self]
|
289
|
+
def load
|
290
|
+
resp = @client.describe_instances(instance_ids: [@id])
|
291
|
+
@data = resp.reservations[0].instances[0]
|
292
|
+
self
|
293
|
+
end
|
294
|
+
alias :reload :load
|
295
|
+
|
296
|
+
# @return [Types::Instance]
|
297
|
+
# Returns the data for this {Instance}. Calls
|
298
|
+
# {Client#describe_instances} if {#data_loaded?} is `false`.
|
299
|
+
def data
|
300
|
+
load unless @data
|
301
|
+
@data
|
302
|
+
end
|
303
|
+
|
304
|
+
# @return [Boolean]
|
305
|
+
# Returns `true` if this resource is loaded. Accessing attributes or
|
306
|
+
# {#data} on an unloaded resource will trigger a call to {#load}.
|
307
|
+
def data_loaded?
|
308
|
+
!!@data
|
309
|
+
end
|
310
|
+
|
311
|
+
# @param [Hash] options ({})
|
312
|
+
# @return [Boolean]
|
313
|
+
# Returns `true` if the Instance exists.
|
314
|
+
def exists?(options = {})
|
315
|
+
begin
|
316
|
+
wait_until_exists(options.merge(max_attempts: 1))
|
317
|
+
true
|
318
|
+
rescue Aws::Waiters::Errors::UnexpectedError => e
|
319
|
+
raise e.error
|
320
|
+
rescue Aws::Waiters::Errors::WaiterFailed
|
321
|
+
false
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
# @param [Hash] options ({})
|
326
|
+
# @option options [Integer] :max_attempts (40)
|
327
|
+
# @option options [Float] :delay (5)
|
328
|
+
# @option options [Proc] :before_attempt
|
329
|
+
# @option options [Proc] :before_wait
|
330
|
+
# @return [Instance]
|
331
|
+
def wait_until_exists(options = {})
|
332
|
+
options, params = separate_params_and_options(options)
|
333
|
+
waiter = Waiters::InstanceExists.new(options)
|
334
|
+
yield_waiter_and_warn(waiter, &Proc.new) if block_given?
|
335
|
+
resp = waiter.wait(params.merge(instance_ids: [@id]))
|
336
|
+
Instance.new({
|
337
|
+
id: @id,
|
338
|
+
data: resp.data.reservations[0].instances[0],
|
339
|
+
client: @client
|
340
|
+
})
|
341
|
+
end
|
342
|
+
|
343
|
+
# @param [Hash] options ({})
|
344
|
+
# @option options [Integer] :max_attempts (40)
|
345
|
+
# @option options [Float] :delay (15)
|
346
|
+
# @option options [Proc] :before_attempt
|
347
|
+
# @option options [Proc] :before_wait
|
348
|
+
# @return [Instance]
|
349
|
+
def wait_until_running(options = {})
|
350
|
+
options, params = separate_params_and_options(options)
|
351
|
+
waiter = Waiters::InstanceRunning.new(options)
|
352
|
+
yield_waiter_and_warn(waiter, &Proc.new) if block_given?
|
353
|
+
resp = waiter.wait(params.merge(instance_ids: [@id]))
|
354
|
+
Instance.new({
|
355
|
+
id: @id,
|
356
|
+
data: resp.data.reservations[0].instances[0],
|
357
|
+
client: @client
|
358
|
+
})
|
359
|
+
end
|
360
|
+
|
361
|
+
# @param [Hash] options ({})
|
362
|
+
# @option options [Integer] :max_attempts (40)
|
363
|
+
# @option options [Float] :delay (15)
|
364
|
+
# @option options [Proc] :before_attempt
|
365
|
+
# @option options [Proc] :before_wait
|
366
|
+
# @return [Instance]
|
367
|
+
def wait_until_stopped(options = {})
|
368
|
+
options, params = separate_params_and_options(options)
|
369
|
+
waiter = Waiters::InstanceStopped.new(options)
|
370
|
+
yield_waiter_and_warn(waiter, &Proc.new) if block_given?
|
371
|
+
resp = waiter.wait(params.merge(instance_ids: [@id]))
|
372
|
+
Instance.new({
|
373
|
+
id: @id,
|
374
|
+
data: resp.data.reservations[0].instances[0],
|
375
|
+
client: @client
|
376
|
+
})
|
377
|
+
end
|
378
|
+
|
379
|
+
# @param [Hash] options ({})
|
380
|
+
# @option options [Integer] :max_attempts (40)
|
381
|
+
# @option options [Float] :delay (15)
|
382
|
+
# @option options [Proc] :before_attempt
|
383
|
+
# @option options [Proc] :before_wait
|
384
|
+
# @return [Instance]
|
385
|
+
def wait_until_terminated(options = {})
|
386
|
+
options, params = separate_params_and_options(options)
|
387
|
+
waiter = Waiters::InstanceTerminated.new(options)
|
388
|
+
yield_waiter_and_warn(waiter, &Proc.new) if block_given?
|
389
|
+
resp = waiter.wait(params.merge(instance_ids: [@id]))
|
390
|
+
Instance.new({
|
391
|
+
id: @id,
|
392
|
+
data: resp.data.reservations[0].instances[0],
|
393
|
+
client: @client
|
394
|
+
})
|
395
|
+
end
|
396
|
+
|
397
|
+
# @!group Actions
|
398
|
+
|
399
|
+
# @example Request syntax with placeholder values
|
400
|
+
#
|
401
|
+
# instance.attach_classic_link_vpc({
|
402
|
+
# dry_run: false,
|
403
|
+
# vpc_id: "String", # required
|
404
|
+
# groups: ["String"], # required
|
405
|
+
# })
|
406
|
+
# @param [Hash] options ({})
|
407
|
+
# @option options [Boolean] :dry_run
|
408
|
+
# Checks whether you have the required permissions for the action,
|
409
|
+
# without actually making the request, and provides an error response.
|
410
|
+
# If you have the required permissions, the error response is
|
411
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
412
|
+
# @option options [required, String] :vpc_id
|
413
|
+
# The ID of a ClassicLink-enabled VPC.
|
414
|
+
# @option options [required, Array<String>] :groups
|
415
|
+
# The ID of one or more of the VPC's security groups. You cannot
|
416
|
+
# specify security groups from a different VPC.
|
417
|
+
# @return [Types::AttachClassicLinkVpcResult]
|
418
|
+
def attach_classic_link_vpc(options = {})
|
419
|
+
options = options.merge(instance_id: @id)
|
420
|
+
resp = @client.attach_classic_link_vpc(options)
|
421
|
+
resp.data
|
422
|
+
end
|
423
|
+
|
424
|
+
# @example Request syntax with placeholder values
|
425
|
+
#
|
426
|
+
# instance.attach_volume({
|
427
|
+
# dry_run: false,
|
428
|
+
# volume_id: "String", # required
|
429
|
+
# device: "String", # required
|
430
|
+
# })
|
431
|
+
# @param [Hash] options ({})
|
432
|
+
# @option options [Boolean] :dry_run
|
433
|
+
# Checks whether you have the required permissions for the action,
|
434
|
+
# without actually making the request, and provides an error response.
|
435
|
+
# If you have the required permissions, the error response is
|
436
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
437
|
+
# @option options [required, String] :volume_id
|
438
|
+
# The ID of the EBS volume. The volume and instance must be within the
|
439
|
+
# same Availability Zone.
|
440
|
+
# @option options [required, String] :device
|
441
|
+
# The device name to expose to the instance (for example, `/dev/sdh` or
|
442
|
+
# `xvdh`).
|
443
|
+
# @return [Types::VolumeAttachment]
|
444
|
+
def attach_volume(options = {})
|
445
|
+
options = options.merge(instance_id: @id)
|
446
|
+
resp = @client.attach_volume(options)
|
447
|
+
resp.data
|
448
|
+
end
|
449
|
+
|
450
|
+
# @example Request syntax with placeholder values
|
451
|
+
#
|
452
|
+
# instance.console_output({
|
453
|
+
# dry_run: false,
|
454
|
+
# })
|
455
|
+
# @param [Hash] options ({})
|
456
|
+
# @option options [Boolean] :dry_run
|
457
|
+
# Checks whether you have the required permissions for the action,
|
458
|
+
# without actually making the request, and provides an error response.
|
459
|
+
# If you have the required permissions, the error response is
|
460
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
461
|
+
# @return [Types::GetConsoleOutputResult]
|
462
|
+
def console_output(options = {})
|
463
|
+
options = options.merge(instance_id: @id)
|
464
|
+
resp = @client.get_console_output(options)
|
465
|
+
resp.data
|
466
|
+
end
|
467
|
+
|
468
|
+
# @example Request syntax with placeholder values
|
469
|
+
#
|
470
|
+
# image = instance.create_image({
|
471
|
+
# dry_run: false,
|
472
|
+
# name: "String", # required
|
473
|
+
# description: "String",
|
474
|
+
# no_reboot: false,
|
475
|
+
# block_device_mappings: [
|
476
|
+
# {
|
477
|
+
# virtual_name: "String",
|
478
|
+
# device_name: "String",
|
479
|
+
# ebs: {
|
480
|
+
# snapshot_id: "String",
|
481
|
+
# volume_size: 1,
|
482
|
+
# delete_on_termination: false,
|
483
|
+
# volume_type: "standard", # accepts standard, io1, gp2, sc1, st1
|
484
|
+
# iops: 1,
|
485
|
+
# encrypted: false,
|
486
|
+
# },
|
487
|
+
# no_device: "String",
|
488
|
+
# },
|
489
|
+
# ],
|
490
|
+
# })
|
491
|
+
# @param [Hash] options ({})
|
492
|
+
# @option options [Boolean] :dry_run
|
493
|
+
# Checks whether you have the required permissions for the action,
|
494
|
+
# without actually making the request, and provides an error response.
|
495
|
+
# If you have the required permissions, the error response is
|
496
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
497
|
+
# @option options [required, String] :name
|
498
|
+
# A name for the new image.
|
499
|
+
#
|
500
|
+
# Constraints: 3-128 alphanumeric characters, parentheses (()), square
|
501
|
+
# brackets (\[\]), spaces ( ), periods (.), slashes (/), dashes (-),
|
502
|
+
# single quotes ('), at-signs (@), or underscores(\_)
|
503
|
+
# @option options [String] :description
|
504
|
+
# A description for the new image.
|
505
|
+
# @option options [Boolean] :no_reboot
|
506
|
+
# By default, Amazon EC2 attempts to shut down and reboot the instance
|
507
|
+
# before creating the image. If the 'No Reboot' option is set, Amazon
|
508
|
+
# EC2 doesn't shut down the instance before creating the image. When
|
509
|
+
# this option is used, file system integrity on the created image can't
|
510
|
+
# be guaranteed.
|
511
|
+
# @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
|
512
|
+
# Information about one or more block device mappings.
|
513
|
+
# @return [Image]
|
514
|
+
def create_image(options = {})
|
515
|
+
options = options.merge(instance_id: @id)
|
516
|
+
resp = @client.create_image(options)
|
517
|
+
Image.new(
|
518
|
+
id: resp.data.image_id,
|
519
|
+
client: @client
|
520
|
+
)
|
521
|
+
end
|
522
|
+
|
523
|
+
# @example Request syntax with placeholder values
|
524
|
+
#
|
525
|
+
# tag = instance.create_tags({
|
526
|
+
# dry_run: false,
|
527
|
+
# tags: [ # required
|
528
|
+
# {
|
529
|
+
# key: "String",
|
530
|
+
# value: "String",
|
531
|
+
# },
|
532
|
+
# ],
|
533
|
+
# })
|
534
|
+
# @param [Hash] options ({})
|
535
|
+
# @option options [Boolean] :dry_run
|
536
|
+
# Checks whether you have the required permissions for the action,
|
537
|
+
# without actually making the request, and provides an error response.
|
538
|
+
# If you have the required permissions, the error response is
|
539
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
540
|
+
# @option options [required, Array<Types::Tag>] :tags
|
541
|
+
# One or more tags. The `value` parameter is required, but if you don't
|
542
|
+
# want the tag to have a value, specify the parameter with no value, and
|
543
|
+
# we set the value to an empty string.
|
544
|
+
# @return [Tag::Collection]
|
545
|
+
def create_tags(options = {})
|
546
|
+
batch = []
|
547
|
+
options = Aws::Util.deep_merge(options, resources: [@id])
|
548
|
+
resp = @client.create_tags(options)
|
549
|
+
options[:tags].each do |t|
|
550
|
+
batch << Tag.new(
|
551
|
+
resource_id: @id,
|
552
|
+
key: t[:key],
|
553
|
+
value: t[:value],
|
554
|
+
client: @client
|
555
|
+
)
|
556
|
+
end
|
557
|
+
Tag::Collection.new([batch], size: batch.size)
|
558
|
+
end
|
559
|
+
|
560
|
+
# @example Request syntax with placeholder values
|
561
|
+
#
|
562
|
+
# instance.describe_attribute({
|
563
|
+
# dry_run: false,
|
564
|
+
# attribute: "instanceType", # required, accepts instanceType, kernel, ramdisk, userData, disableApiTermination, instanceInitiatedShutdownBehavior, rootDeviceName, blockDeviceMapping, productCodes, sourceDestCheck, groupSet, ebsOptimized, sriovNetSupport, enaSupport
|
565
|
+
# })
|
566
|
+
# @param [Hash] options ({})
|
567
|
+
# @option options [Boolean] :dry_run
|
568
|
+
# Checks whether you have the required permissions for the action,
|
569
|
+
# without actually making the request, and provides an error response.
|
570
|
+
# If you have the required permissions, the error response is
|
571
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
572
|
+
# @option options [required, String] :attribute
|
573
|
+
# The instance attribute.
|
574
|
+
#
|
575
|
+
# Note: The `enaSupport` attribute is not supported at this time.
|
576
|
+
# @return [Types::InstanceAttribute]
|
577
|
+
def describe_attribute(options = {})
|
578
|
+
options = options.merge(instance_id: @id)
|
579
|
+
resp = @client.describe_instance_attribute(options)
|
580
|
+
resp.data
|
581
|
+
end
|
582
|
+
|
583
|
+
# @example Request syntax with placeholder values
|
584
|
+
#
|
585
|
+
# instance.detach_classic_link_vpc({
|
586
|
+
# dry_run: false,
|
587
|
+
# vpc_id: "String", # required
|
588
|
+
# })
|
589
|
+
# @param [Hash] options ({})
|
590
|
+
# @option options [Boolean] :dry_run
|
591
|
+
# Checks whether you have the required permissions for the action,
|
592
|
+
# without actually making the request, and provides an error response.
|
593
|
+
# If you have the required permissions, the error response is
|
594
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
595
|
+
# @option options [required, String] :vpc_id
|
596
|
+
# The ID of the VPC to which the instance is linked.
|
597
|
+
# @return [Types::DetachClassicLinkVpcResult]
|
598
|
+
def detach_classic_link_vpc(options = {})
|
599
|
+
options = options.merge(instance_id: @id)
|
600
|
+
resp = @client.detach_classic_link_vpc(options)
|
601
|
+
resp.data
|
602
|
+
end
|
603
|
+
|
604
|
+
# @example Request syntax with placeholder values
|
605
|
+
#
|
606
|
+
# instance.detach_volume({
|
607
|
+
# dry_run: false,
|
608
|
+
# volume_id: "String", # required
|
609
|
+
# device: "String",
|
610
|
+
# force: false,
|
611
|
+
# })
|
612
|
+
# @param [Hash] options ({})
|
613
|
+
# @option options [Boolean] :dry_run
|
614
|
+
# Checks whether you have the required permissions for the action,
|
615
|
+
# without actually making the request, and provides an error response.
|
616
|
+
# If you have the required permissions, the error response is
|
617
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
618
|
+
# @option options [required, String] :volume_id
|
619
|
+
# The ID of the volume.
|
620
|
+
# @option options [String] :device
|
621
|
+
# The device name.
|
622
|
+
# @option options [Boolean] :force
|
623
|
+
# Forces detachment if the previous detachment attempt did not occur
|
624
|
+
# cleanly (for example, logging into an instance, unmounting the volume,
|
625
|
+
# and detaching normally). This option can lead to data loss or a
|
626
|
+
# corrupted file system. Use this option only as a last resort to detach
|
627
|
+
# a volume from a failed instance. The instance won't have an
|
628
|
+
# opportunity to flush file system caches or file system metadata. If
|
629
|
+
# you use this option, you must perform file system check and repair
|
630
|
+
# procedures.
|
631
|
+
# @return [Types::VolumeAttachment]
|
632
|
+
def detach_volume(options = {})
|
633
|
+
options = options.merge(instance_id: @id)
|
634
|
+
resp = @client.detach_volume(options)
|
635
|
+
resp.data
|
636
|
+
end
|
637
|
+
|
638
|
+
# @example Request syntax with placeholder values
|
639
|
+
#
|
640
|
+
# instance.modify_attribute({
|
641
|
+
# dry_run: false,
|
642
|
+
# attribute: "instanceType", # accepts instanceType, kernel, ramdisk, userData, disableApiTermination, instanceInitiatedShutdownBehavior, rootDeviceName, blockDeviceMapping, productCodes, sourceDestCheck, groupSet, ebsOptimized, sriovNetSupport, enaSupport
|
643
|
+
# value: "String",
|
644
|
+
# block_device_mappings: [
|
645
|
+
# {
|
646
|
+
# device_name: "String",
|
647
|
+
# ebs: {
|
648
|
+
# volume_id: "String",
|
649
|
+
# delete_on_termination: false,
|
650
|
+
# },
|
651
|
+
# virtual_name: "String",
|
652
|
+
# no_device: "String",
|
653
|
+
# },
|
654
|
+
# ],
|
655
|
+
# source_dest_check: {
|
656
|
+
# value: false,
|
657
|
+
# },
|
658
|
+
# disable_api_termination: {
|
659
|
+
# value: false,
|
660
|
+
# },
|
661
|
+
# instance_type: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
|
662
|
+
# kernel: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
|
663
|
+
# ramdisk: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
|
664
|
+
# user_data: {
|
665
|
+
# value: "data",
|
666
|
+
# },
|
667
|
+
# instance_initiated_shutdown_behavior: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
|
668
|
+
# groups: ["String"],
|
669
|
+
# ebs_optimized: {
|
670
|
+
# value: false,
|
671
|
+
# },
|
672
|
+
# sriov_net_support: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
|
673
|
+
# ena_support: {
|
674
|
+
# value: false,
|
675
|
+
# },
|
676
|
+
# })
|
677
|
+
# @param [Hash] options ({})
|
678
|
+
# @option options [Boolean] :dry_run
|
679
|
+
# Checks whether you have the required permissions for the action,
|
680
|
+
# without actually making the request, and provides an error response.
|
681
|
+
# If you have the required permissions, the error response is
|
682
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
683
|
+
# @option options [String] :attribute
|
684
|
+
# The name of the attribute.
|
685
|
+
# @option options [String] :value
|
686
|
+
# A new value for the attribute. Use only with the `kernel`, `ramdisk`,
|
687
|
+
# `userData`, `disableApiTermination`, or
|
688
|
+
# `instanceInitiatedShutdownBehavior` attribute.
|
689
|
+
# @option options [Array<Types::InstanceBlockDeviceMappingSpecification>] :block_device_mappings
|
690
|
+
# Modifies the `DeleteOnTermination` attribute for volumes that are
|
691
|
+
# currently attached. The volume must be owned by the caller. If no
|
692
|
+
# value is specified for `DeleteOnTermination`, the default is `true`
|
693
|
+
# and the volume is deleted when the instance is terminated.
|
694
|
+
#
|
695
|
+
# To add instance store volumes to an Amazon EBS-backed instance, you
|
696
|
+
# must add them when you launch the instance. For more information, see
|
697
|
+
# [Updating the Block Device Mapping when Launching an Instance][1] in
|
698
|
+
# the *Amazon Elastic Compute Cloud User Guide*.
|
699
|
+
#
|
700
|
+
#
|
701
|
+
#
|
702
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM
|
703
|
+
# @option options [Types::AttributeBooleanValue] :source_dest_check
|
704
|
+
# Specifies whether source/destination checking is enabled. A value of
|
705
|
+
# `true` means that checking is enabled, and `false` means checking is
|
706
|
+
# disabled. This value must be `false` for a NAT instance to perform
|
707
|
+
# NAT.
|
708
|
+
# @option options [Types::AttributeBooleanValue] :disable_api_termination
|
709
|
+
# If the value is `true`, you can't terminate the instance using the
|
710
|
+
# Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use
|
711
|
+
# this paramater for Spot Instances.
|
712
|
+
# @option options [Types::AttributeValue] :instance_type
|
713
|
+
# Changes the instance type to the specified value. For more
|
714
|
+
# information, see [Instance Types][1]. If the instance type is not
|
715
|
+
# valid, the error returned is `InvalidInstanceAttributeValue`.
|
716
|
+
#
|
717
|
+
#
|
718
|
+
#
|
719
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
|
720
|
+
# @option options [Types::AttributeValue] :kernel
|
721
|
+
# Changes the instance's kernel to the specified value. We recommend
|
722
|
+
# that you use PV-GRUB instead of kernels and RAM disks. For more
|
723
|
+
# information, see [PV-GRUB][1].
|
724
|
+
#
|
725
|
+
#
|
726
|
+
#
|
727
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html
|
728
|
+
# @option options [Types::AttributeValue] :ramdisk
|
729
|
+
# Changes the instance's RAM disk to the specified value. We recommend
|
730
|
+
# that you use PV-GRUB instead of kernels and RAM disks. For more
|
731
|
+
# information, see [PV-GRUB][1].
|
732
|
+
#
|
733
|
+
#
|
734
|
+
#
|
735
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html
|
736
|
+
# @option options [Types::BlobAttributeValue] :user_data
|
737
|
+
# Changes the instance's user data to the specified value. If you are
|
738
|
+
# using an AWS SDK or command line tool, Base64-encoding is performed
|
739
|
+
# for you, and you can load the text from a file. Otherwise, you must
|
740
|
+
# provide Base64-encoded text.
|
741
|
+
# @option options [Types::AttributeValue] :instance_initiated_shutdown_behavior
|
742
|
+
# Specifies whether an instance stops or terminates when you initiate
|
743
|
+
# shutdown from the instance (using the operating system command for
|
744
|
+
# system shutdown).
|
745
|
+
# @option options [Array<String>] :groups
|
746
|
+
# \[EC2-VPC\] Changes the security groups of the instance. You must
|
747
|
+
# specify at least one security group, even if it's just the default
|
748
|
+
# security group for the VPC. You must specify the security group ID,
|
749
|
+
# not the security group name.
|
750
|
+
# @option options [Types::AttributeBooleanValue] :ebs_optimized
|
751
|
+
# Specifies whether the instance is optimized for EBS I/O. This
|
752
|
+
# optimization provides dedicated throughput to Amazon EBS and an
|
753
|
+
# optimized configuration stack to provide optimal EBS I/O performance.
|
754
|
+
# This optimization isn't available with all instance types. Additional
|
755
|
+
# usage charges apply when using an EBS Optimized instance.
|
756
|
+
# @option options [Types::AttributeValue] :sriov_net_support
|
757
|
+
# Set to `simple` to enable enhanced networking with the Intel 82599
|
758
|
+
# Virtual Function interface for the instance.
|
759
|
+
#
|
760
|
+
# There is no way to disable enhanced networking with the Intel 82599
|
761
|
+
# Virtual Function interface at this time.
|
762
|
+
#
|
763
|
+
# This option is supported only for HVM instances. Specifying this
|
764
|
+
# option with a PV instance can make it unreachable.
|
765
|
+
# @option options [Types::AttributeBooleanValue] :ena_support
|
766
|
+
# Set to `true` to enable enhanced networking with ENA for the instance.
|
767
|
+
#
|
768
|
+
# This option is supported only for HVM instances. Specifying this
|
769
|
+
# option with a PV instance can make it unreachable.
|
770
|
+
# @return [EmptyStructure]
|
771
|
+
def modify_attribute(options = {})
|
772
|
+
options = options.merge(instance_id: @id)
|
773
|
+
resp = @client.modify_instance_attribute(options)
|
774
|
+
resp.data
|
775
|
+
end
|
776
|
+
|
777
|
+
# @example Request syntax with placeholder values
|
778
|
+
#
|
779
|
+
# instance.monitor({
|
780
|
+
# dry_run: false,
|
781
|
+
# })
|
782
|
+
# @param [Hash] options ({})
|
783
|
+
# @option options [Boolean] :dry_run
|
784
|
+
# Checks whether you have the required permissions for the action,
|
785
|
+
# without actually making the request, and provides an error response.
|
786
|
+
# If you have the required permissions, the error response is
|
787
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
788
|
+
# @return [Types::MonitorInstancesResult]
|
789
|
+
def monitor(options = {})
|
790
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
791
|
+
resp = @client.monitor_instances(options)
|
792
|
+
resp.data
|
793
|
+
end
|
794
|
+
|
795
|
+
# @example Request syntax with placeholder values
|
796
|
+
#
|
797
|
+
# instance.password_data({
|
798
|
+
# dry_run: false,
|
799
|
+
# })
|
800
|
+
# @param [Hash] options ({})
|
801
|
+
# @option options [Boolean] :dry_run
|
802
|
+
# Checks whether you have the required permissions for the action,
|
803
|
+
# without actually making the request, and provides an error response.
|
804
|
+
# If you have the required permissions, the error response is
|
805
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
806
|
+
# @return [Types::GetPasswordDataResult]
|
807
|
+
def password_data(options = {})
|
808
|
+
options = options.merge(instance_id: @id)
|
809
|
+
resp = @client.get_password_data(options)
|
810
|
+
resp.data
|
811
|
+
end
|
812
|
+
|
813
|
+
# @example Request syntax with placeholder values
|
814
|
+
#
|
815
|
+
# instance.reboot({
|
816
|
+
# dry_run: false,
|
817
|
+
# })
|
818
|
+
# @param [Hash] options ({})
|
819
|
+
# @option options [Boolean] :dry_run
|
820
|
+
# Checks whether you have the required permissions for the action,
|
821
|
+
# without actually making the request, and provides an error response.
|
822
|
+
# If you have the required permissions, the error response is
|
823
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
824
|
+
# @return [EmptyStructure]
|
825
|
+
def reboot(options = {})
|
826
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
827
|
+
resp = @client.reboot_instances(options)
|
828
|
+
resp.data
|
829
|
+
end
|
830
|
+
|
831
|
+
# @example Request syntax with placeholder values
|
832
|
+
#
|
833
|
+
# instance.report_status({
|
834
|
+
# dry_run: false,
|
835
|
+
# status: "ok", # required, accepts ok, impaired
|
836
|
+
# start_time: Time.now,
|
837
|
+
# end_time: Time.now,
|
838
|
+
# reason_codes: ["instance-stuck-in-state"], # required, accepts instance-stuck-in-state, unresponsive, not-accepting-credentials, password-not-available, performance-network, performance-instance-store, performance-ebs-volume, performance-other, other
|
839
|
+
# description: "String",
|
840
|
+
# })
|
841
|
+
# @param [Hash] options ({})
|
842
|
+
# @option options [Boolean] :dry_run
|
843
|
+
# Checks whether you have the required permissions for the action,
|
844
|
+
# without actually making the request, and provides an error response.
|
845
|
+
# If you have the required permissions, the error response is
|
846
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
847
|
+
# @option options [required, String] :status
|
848
|
+
# The status of all instances listed.
|
849
|
+
# @option options [Time,DateTime,Date,Integer,String] :start_time
|
850
|
+
# The time at which the reported instance health state began.
|
851
|
+
# @option options [Time,DateTime,Date,Integer,String] :end_time
|
852
|
+
# The time at which the reported instance health state ended.
|
853
|
+
# @option options [required, Array<String>] :reason_codes
|
854
|
+
# One or more reason codes that describes the health state of your
|
855
|
+
# instance.
|
856
|
+
#
|
857
|
+
# * `instance-stuck-in-state`\: My instance is stuck in a state.
|
858
|
+
#
|
859
|
+
# * `unresponsive`\: My instance is unresponsive.
|
860
|
+
#
|
861
|
+
# * `not-accepting-credentials`\: My instance is not accepting my
|
862
|
+
# credentials.
|
863
|
+
#
|
864
|
+
# * `password-not-available`\: A password is not available for my
|
865
|
+
# instance.
|
866
|
+
#
|
867
|
+
# * `performance-network`\: My instance is experiencing performance
|
868
|
+
# problems which I believe are network related.
|
869
|
+
#
|
870
|
+
# * `performance-instance-store`\: My instance is experiencing
|
871
|
+
# performance problems which I believe are related to the instance
|
872
|
+
# stores.
|
873
|
+
#
|
874
|
+
# * `performance-ebs-volume`\: My instance is experiencing performance
|
875
|
+
# problems which I believe are related to an EBS volume.
|
876
|
+
#
|
877
|
+
# * `performance-other`\: My instance is experiencing performance
|
878
|
+
# problems.
|
879
|
+
#
|
880
|
+
# * `other`\: \[explain using the description parameter\]
|
881
|
+
# @option options [String] :description
|
882
|
+
# Descriptive text about the health state of your instance.
|
883
|
+
# @return [EmptyStructure]
|
884
|
+
def report_status(options = {})
|
885
|
+
options = Aws::Util.deep_merge(options, instances: [@id])
|
886
|
+
resp = @client.report_instance_status(options)
|
887
|
+
resp.data
|
888
|
+
end
|
889
|
+
|
890
|
+
# @example Request syntax with placeholder values
|
891
|
+
#
|
892
|
+
# instance.reset_attribute({
|
893
|
+
# dry_run: false,
|
894
|
+
# attribute: "instanceType", # required, accepts instanceType, kernel, ramdisk, userData, disableApiTermination, instanceInitiatedShutdownBehavior, rootDeviceName, blockDeviceMapping, productCodes, sourceDestCheck, groupSet, ebsOptimized, sriovNetSupport, enaSupport
|
895
|
+
# })
|
896
|
+
# @param [Hash] options ({})
|
897
|
+
# @option options [Boolean] :dry_run
|
898
|
+
# Checks whether you have the required permissions for the action,
|
899
|
+
# without actually making the request, and provides an error response.
|
900
|
+
# If you have the required permissions, the error response is
|
901
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
902
|
+
# @option options [required, String] :attribute
|
903
|
+
# The attribute to reset.
|
904
|
+
#
|
905
|
+
# You can only reset the following attributes: `kernel` \| `ramdisk` \|
|
906
|
+
# `sourceDestCheck`. To change an instance attribute, use
|
907
|
+
# ModifyInstanceAttribute.
|
908
|
+
# @return [EmptyStructure]
|
909
|
+
def reset_attribute(options = {})
|
910
|
+
options = options.merge(instance_id: @id)
|
911
|
+
resp = @client.reset_instance_attribute(options)
|
912
|
+
resp.data
|
913
|
+
end
|
914
|
+
|
915
|
+
# @example Request syntax with placeholder values
|
916
|
+
#
|
917
|
+
# instance.reset_kernel({
|
918
|
+
# dry_run: false,
|
919
|
+
# })
|
920
|
+
# @param [Hash] options ({})
|
921
|
+
# @option options [Boolean] :dry_run
|
922
|
+
# Checks whether you have the required permissions for the action,
|
923
|
+
# without actually making the request, and provides an error response.
|
924
|
+
# If you have the required permissions, the error response is
|
925
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
926
|
+
# @return [EmptyStructure]
|
927
|
+
def reset_kernel(options = {})
|
928
|
+
options = options.merge(
|
929
|
+
instance_id: @id,
|
930
|
+
attribute: "kernel"
|
931
|
+
)
|
932
|
+
resp = @client.reset_instance_attribute(options)
|
933
|
+
resp.data
|
934
|
+
end
|
935
|
+
|
936
|
+
# @example Request syntax with placeholder values
|
937
|
+
#
|
938
|
+
# instance.reset_ramdisk({
|
939
|
+
# dry_run: false,
|
940
|
+
# })
|
941
|
+
# @param [Hash] options ({})
|
942
|
+
# @option options [Boolean] :dry_run
|
943
|
+
# Checks whether you have the required permissions for the action,
|
944
|
+
# without actually making the request, and provides an error response.
|
945
|
+
# If you have the required permissions, the error response is
|
946
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
947
|
+
# @return [EmptyStructure]
|
948
|
+
def reset_ramdisk(options = {})
|
949
|
+
options = options.merge(
|
950
|
+
instance_id: @id,
|
951
|
+
attribute: "ramdisk"
|
952
|
+
)
|
953
|
+
resp = @client.reset_instance_attribute(options)
|
954
|
+
resp.data
|
955
|
+
end
|
956
|
+
|
957
|
+
# @example Request syntax with placeholder values
|
958
|
+
#
|
959
|
+
# instance.reset_source_dest_check({
|
960
|
+
# dry_run: false,
|
961
|
+
# })
|
962
|
+
# @param [Hash] options ({})
|
963
|
+
# @option options [Boolean] :dry_run
|
964
|
+
# Checks whether you have the required permissions for the action,
|
965
|
+
# without actually making the request, and provides an error response.
|
966
|
+
# If you have the required permissions, the error response is
|
967
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
968
|
+
# @return [EmptyStructure]
|
969
|
+
def reset_source_dest_check(options = {})
|
970
|
+
options = options.merge(
|
971
|
+
instance_id: @id,
|
972
|
+
attribute: "sourceDestCheck"
|
973
|
+
)
|
974
|
+
resp = @client.reset_instance_attribute(options)
|
975
|
+
resp.data
|
976
|
+
end
|
977
|
+
|
978
|
+
# @example Request syntax with placeholder values
|
979
|
+
#
|
980
|
+
# instance.start({
|
981
|
+
# additional_info: "String",
|
982
|
+
# dry_run: false,
|
983
|
+
# })
|
984
|
+
# @param [Hash] options ({})
|
985
|
+
# @option options [String] :additional_info
|
986
|
+
# Reserved.
|
987
|
+
# @option options [Boolean] :dry_run
|
988
|
+
# Checks whether you have the required permissions for the action,
|
989
|
+
# without actually making the request, and provides an error response.
|
990
|
+
# If you have the required permissions, the error response is
|
991
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
992
|
+
# @return [Types::StartInstancesResult]
|
993
|
+
def start(options = {})
|
994
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
995
|
+
resp = @client.start_instances(options)
|
996
|
+
resp.data
|
997
|
+
end
|
998
|
+
|
999
|
+
# @example Request syntax with placeholder values
|
1000
|
+
#
|
1001
|
+
# instance.stop({
|
1002
|
+
# dry_run: false,
|
1003
|
+
# force: false,
|
1004
|
+
# })
|
1005
|
+
# @param [Hash] options ({})
|
1006
|
+
# @option options [Boolean] :dry_run
|
1007
|
+
# Checks whether you have the required permissions for the action,
|
1008
|
+
# without actually making the request, and provides an error response.
|
1009
|
+
# If you have the required permissions, the error response is
|
1010
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1011
|
+
# @option options [Boolean] :force
|
1012
|
+
# Forces the instances to stop. The instances do not have an opportunity
|
1013
|
+
# to flush file system caches or file system metadata. If you use this
|
1014
|
+
# option, you must perform file system check and repair procedures. This
|
1015
|
+
# option is not recommended for Windows instances.
|
1016
|
+
#
|
1017
|
+
# Default: `false`
|
1018
|
+
# @return [Types::StopInstancesResult]
|
1019
|
+
def stop(options = {})
|
1020
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
1021
|
+
resp = @client.stop_instances(options)
|
1022
|
+
resp.data
|
1023
|
+
end
|
1024
|
+
|
1025
|
+
# @example Request syntax with placeholder values
|
1026
|
+
#
|
1027
|
+
# instance.terminate({
|
1028
|
+
# dry_run: false,
|
1029
|
+
# })
|
1030
|
+
# @param [Hash] options ({})
|
1031
|
+
# @option options [Boolean] :dry_run
|
1032
|
+
# Checks whether you have the required permissions for the action,
|
1033
|
+
# without actually making the request, and provides an error response.
|
1034
|
+
# If you have the required permissions, the error response is
|
1035
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1036
|
+
# @return [Types::TerminateInstancesResult]
|
1037
|
+
def terminate(options = {})
|
1038
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
1039
|
+
resp = @client.terminate_instances(options)
|
1040
|
+
resp.data
|
1041
|
+
end
|
1042
|
+
|
1043
|
+
# @example Request syntax with placeholder values
|
1044
|
+
#
|
1045
|
+
# instance.unmonitor({
|
1046
|
+
# dry_run: false,
|
1047
|
+
# })
|
1048
|
+
# @param [Hash] options ({})
|
1049
|
+
# @option options [Boolean] :dry_run
|
1050
|
+
# Checks whether you have the required permissions for the action,
|
1051
|
+
# without actually making the request, and provides an error response.
|
1052
|
+
# If you have the required permissions, the error response is
|
1053
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1054
|
+
# @return [Types::UnmonitorInstancesResult]
|
1055
|
+
def unmonitor(options = {})
|
1056
|
+
options = Aws::Util.deep_merge(options, instance_ids: [@id])
|
1057
|
+
resp = @client.unmonitor_instances(options)
|
1058
|
+
resp.data
|
1059
|
+
end
|
1060
|
+
|
1061
|
+
# @!group Associations
|
1062
|
+
|
1063
|
+
# @return [ClassicAddress, nil]
|
1064
|
+
def classic_address
|
1065
|
+
if data.public_ip_address
|
1066
|
+
ClassicAddress.new(
|
1067
|
+
public_ip: data.public_ip_address,
|
1068
|
+
client: @client
|
1069
|
+
)
|
1070
|
+
else
|
1071
|
+
nil
|
1072
|
+
end
|
1073
|
+
end
|
1074
|
+
|
1075
|
+
# @return [Image, nil]
|
1076
|
+
def image
|
1077
|
+
if data.image_id
|
1078
|
+
Image.new(
|
1079
|
+
id: data.image_id,
|
1080
|
+
client: @client
|
1081
|
+
)
|
1082
|
+
else
|
1083
|
+
nil
|
1084
|
+
end
|
1085
|
+
end
|
1086
|
+
|
1087
|
+
# @return [KeyPairInfo, nil]
|
1088
|
+
def key_pair
|
1089
|
+
if data.key_name
|
1090
|
+
KeyPairInfo.new(
|
1091
|
+
name: data.key_name,
|
1092
|
+
client: @client
|
1093
|
+
)
|
1094
|
+
else
|
1095
|
+
nil
|
1096
|
+
end
|
1097
|
+
end
|
1098
|
+
|
1099
|
+
# @return [NetworkInterface::Collection]
|
1100
|
+
def network_interfaces
|
1101
|
+
batch = []
|
1102
|
+
data.network_interfaces.each do |n|
|
1103
|
+
batch << NetworkInterface.new(
|
1104
|
+
id: n.network_interface_id,
|
1105
|
+
data: n,
|
1106
|
+
client: @client
|
1107
|
+
)
|
1108
|
+
end
|
1109
|
+
NetworkInterface::Collection.new([batch], size: batch.size)
|
1110
|
+
end
|
1111
|
+
|
1112
|
+
# @return [PlacementGroup, nil]
|
1113
|
+
def placement_group
|
1114
|
+
if data.placement.group_name
|
1115
|
+
PlacementGroup.new(
|
1116
|
+
name: data.placement.group_name,
|
1117
|
+
client: @client
|
1118
|
+
)
|
1119
|
+
else
|
1120
|
+
nil
|
1121
|
+
end
|
1122
|
+
end
|
1123
|
+
|
1124
|
+
# @return [Subnet, nil]
|
1125
|
+
def subnet
|
1126
|
+
if data.subnet_id
|
1127
|
+
Subnet.new(
|
1128
|
+
id: data.subnet_id,
|
1129
|
+
client: @client
|
1130
|
+
)
|
1131
|
+
else
|
1132
|
+
nil
|
1133
|
+
end
|
1134
|
+
end
|
1135
|
+
|
1136
|
+
# @example Request syntax with placeholder values
|
1137
|
+
#
|
1138
|
+
# volumes = instance.volumes({
|
1139
|
+
# dry_run: false,
|
1140
|
+
# volume_ids: ["String"],
|
1141
|
+
# filters: [
|
1142
|
+
# {
|
1143
|
+
# name: "String",
|
1144
|
+
# values: ["String"],
|
1145
|
+
# },
|
1146
|
+
# ],
|
1147
|
+
# })
|
1148
|
+
# @param [Hash] options ({})
|
1149
|
+
# @option options [Boolean] :dry_run
|
1150
|
+
# Checks whether you have the required permissions for the action,
|
1151
|
+
# without actually making the request, and provides an error response.
|
1152
|
+
# If you have the required permissions, the error response is
|
1153
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1154
|
+
# @option options [Array<String>] :volume_ids
|
1155
|
+
# One or more volume IDs.
|
1156
|
+
# @option options [Array<Types::Filter>] :filters
|
1157
|
+
# One or more filters.
|
1158
|
+
#
|
1159
|
+
# * `attachment.attach-time` - The time stamp when the attachment
|
1160
|
+
# initiated.
|
1161
|
+
#
|
1162
|
+
# * `attachment.delete-on-termination` - Whether the volume is deleted
|
1163
|
+
# on instance termination.
|
1164
|
+
#
|
1165
|
+
# * `attachment.device` - The device name that is exposed to the
|
1166
|
+
# instance (for example, `/dev/sda1`).
|
1167
|
+
#
|
1168
|
+
# * `attachment.instance-id` - The ID of the instance the volume is
|
1169
|
+
# attached to.
|
1170
|
+
#
|
1171
|
+
# * `attachment.status` - The attachment state (`attaching` \|
|
1172
|
+
# `attached` \| `detaching` \| `detached`).
|
1173
|
+
#
|
1174
|
+
# * `availability-zone` - The Availability Zone in which the volume was
|
1175
|
+
# created.
|
1176
|
+
#
|
1177
|
+
# * `create-time` - The time stamp when the volume was created.
|
1178
|
+
#
|
1179
|
+
# * `encrypted` - The encryption status of the volume.
|
1180
|
+
#
|
1181
|
+
# * `size` - The size of the volume, in GiB.
|
1182
|
+
#
|
1183
|
+
# * `snapshot-id` - The snapshot from which the volume was created.
|
1184
|
+
#
|
1185
|
+
# * `status` - The status of the volume (`creating` \| `available` \|
|
1186
|
+
# `in-use` \| `deleting` \| `deleted` \| `error`).
|
1187
|
+
#
|
1188
|
+
# * `tag`\:*key*=*value* - The key/value combination of a tag assigned
|
1189
|
+
# to the resource.
|
1190
|
+
#
|
1191
|
+
# * `tag-key` - The key of a tag assigned to the resource. This filter
|
1192
|
+
# is independent of the `tag-value` filter. For example, if you use
|
1193
|
+
# both the filter "tag-key=Purpose" and the filter "tag-value=X",
|
1194
|
+
# you get any resources assigned both the tag key Purpose (regardless
|
1195
|
+
# of what the tag's value is), and the tag value X (regardless of
|
1196
|
+
# what the tag's key is). If you want to list only resources where
|
1197
|
+
# Purpose is X, see the `tag`\:*key*=*value* filter.
|
1198
|
+
#
|
1199
|
+
# * `tag-value` - The value of a tag assigned to the resource. This
|
1200
|
+
# filter is independent of the `tag-key` filter.
|
1201
|
+
#
|
1202
|
+
# * `volume-id` - The volume ID.
|
1203
|
+
#
|
1204
|
+
# * `volume-type` - The Amazon EBS volume type. This can be `gp2` for
|
1205
|
+
# General Purpose SSD, `io1` for Provisioned IOPS SSD, `st1` for
|
1206
|
+
# Throughput Optimized HDD, `sc1` for Cold HDD, or `standard` for
|
1207
|
+
# Magnetic volumes.
|
1208
|
+
# @return [Volume::Collection]
|
1209
|
+
def volumes(options = {})
|
1210
|
+
batches = Enumerator.new do |y|
|
1211
|
+
options = Aws::Util.deep_merge(options, filters: [{
|
1212
|
+
name: "attachment.instance-id",
|
1213
|
+
values: [@id]
|
1214
|
+
}])
|
1215
|
+
resp = @client.describe_volumes(options)
|
1216
|
+
resp.each_page do |page|
|
1217
|
+
batch = []
|
1218
|
+
page.data.volumes.each do |v|
|
1219
|
+
batch << Volume.new(
|
1220
|
+
id: v.volume_id,
|
1221
|
+
data: v,
|
1222
|
+
client: @client
|
1223
|
+
)
|
1224
|
+
end
|
1225
|
+
y.yield(batch)
|
1226
|
+
end
|
1227
|
+
end
|
1228
|
+
Volume::Collection.new(batches)
|
1229
|
+
end
|
1230
|
+
|
1231
|
+
# @return [Vpc, nil]
|
1232
|
+
def vpc
|
1233
|
+
if data.vpc_id
|
1234
|
+
Vpc.new(
|
1235
|
+
id: data.vpc_id,
|
1236
|
+
client: @client
|
1237
|
+
)
|
1238
|
+
else
|
1239
|
+
nil
|
1240
|
+
end
|
1241
|
+
end
|
1242
|
+
|
1243
|
+
# @example Request syntax with placeholder values
|
1244
|
+
#
|
1245
|
+
# vpcaddresses = instance.vpc_addresses({
|
1246
|
+
# dry_run: false,
|
1247
|
+
# public_ips: ["String"],
|
1248
|
+
# filters: [
|
1249
|
+
# {
|
1250
|
+
# name: "String",
|
1251
|
+
# values: ["String"],
|
1252
|
+
# },
|
1253
|
+
# ],
|
1254
|
+
# allocation_ids: ["String"],
|
1255
|
+
# })
|
1256
|
+
# @param [Hash] options ({})
|
1257
|
+
# @option options [Boolean] :dry_run
|
1258
|
+
# Checks whether you have the required permissions for the action,
|
1259
|
+
# without actually making the request, and provides an error response.
|
1260
|
+
# If you have the required permissions, the error response is
|
1261
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1262
|
+
# @option options [Array<String>] :public_ips
|
1263
|
+
# \[EC2-Classic\] One or more Elastic IP addresses.
|
1264
|
+
#
|
1265
|
+
# Default: Describes all your Elastic IP addresses.
|
1266
|
+
# @option options [Array<Types::Filter>] :filters
|
1267
|
+
# One or more filters. Filter names and values are case-sensitive.
|
1268
|
+
#
|
1269
|
+
# * `allocation-id` - \[EC2-VPC\] The allocation ID for the address.
|
1270
|
+
#
|
1271
|
+
# * `association-id` - \[EC2-VPC\] The association ID for the address.
|
1272
|
+
#
|
1273
|
+
# * `domain` - Indicates whether the address is for use in EC2-Classic
|
1274
|
+
# (`standard`) or in a VPC (`vpc`).
|
1275
|
+
#
|
1276
|
+
# * `instance-id` - The ID of the instance the address is associated
|
1277
|
+
# with, if any.
|
1278
|
+
#
|
1279
|
+
# * `network-interface-id` - \[EC2-VPC\] The ID of the network interface
|
1280
|
+
# that the address is associated with, if any.
|
1281
|
+
#
|
1282
|
+
# * `network-interface-owner-id` - The AWS account ID of the owner.
|
1283
|
+
#
|
1284
|
+
# * `private-ip-address` - \[EC2-VPC\] The private IP address associated
|
1285
|
+
# with the Elastic IP address.
|
1286
|
+
#
|
1287
|
+
# * `public-ip` - The Elastic IP address.
|
1288
|
+
# @option options [Array<String>] :allocation_ids
|
1289
|
+
# \[EC2-VPC\] One or more allocation IDs.
|
1290
|
+
#
|
1291
|
+
# Default: Describes all your Elastic IP addresses.
|
1292
|
+
# @return [VpcAddress::Collection]
|
1293
|
+
def vpc_addresses(options = {})
|
1294
|
+
batches = Enumerator.new do |y|
|
1295
|
+
batch = []
|
1296
|
+
options = Aws::Util.deep_merge(options, filters: [{
|
1297
|
+
name: "instance-id",
|
1298
|
+
values: [@id]
|
1299
|
+
}])
|
1300
|
+
resp = @client.describe_addresses(options)
|
1301
|
+
resp.data.addresses.each do |a|
|
1302
|
+
batch << VpcAddress.new(
|
1303
|
+
allocation_id: a.allocation_id,
|
1304
|
+
data: a,
|
1305
|
+
client: @client
|
1306
|
+
)
|
1307
|
+
end
|
1308
|
+
y.yield(batch)
|
1309
|
+
end
|
1310
|
+
VpcAddress::Collection.new(batches)
|
1311
|
+
end
|
1312
|
+
|
1313
|
+
# @deprecated
|
1314
|
+
# @api private
|
1315
|
+
def identifiers
|
1316
|
+
{ id: @id }
|
1317
|
+
end
|
1318
|
+
deprecated(:identifiers)
|
1319
|
+
|
1320
|
+
private
|
1321
|
+
|
1322
|
+
def extract_id(args, options)
|
1323
|
+
value = args[0] || options.delete(:id)
|
1324
|
+
case value
|
1325
|
+
when String then value
|
1326
|
+
when nil then raise ArgumentError, "missing required option :id"
|
1327
|
+
else
|
1328
|
+
msg = "expected :id to be a String, got #{value.class}"
|
1329
|
+
raise ArgumentError, msg
|
1330
|
+
end
|
1331
|
+
end
|
1332
|
+
|
1333
|
+
def yield_waiter_and_warn(waiter, &block)
|
1334
|
+
if !@waiter_block_warned
|
1335
|
+
msg = "pass options to configure the waiter; "
|
1336
|
+
msg << "yielding the waiter is deprecated"
|
1337
|
+
warn(msg)
|
1338
|
+
@waiter_block_warned = true
|
1339
|
+
end
|
1340
|
+
yield(waiter.waiter)
|
1341
|
+
end
|
1342
|
+
|
1343
|
+
def separate_params_and_options(options)
|
1344
|
+
opts = Set.new([:client, :max_attempts, :delay, :before_attempt, :before_wait])
|
1345
|
+
waiter_opts = {}
|
1346
|
+
waiter_params = {}
|
1347
|
+
options.each_pair do |key, value|
|
1348
|
+
if opts.include?(key)
|
1349
|
+
waiter_opts[key] = value
|
1350
|
+
else
|
1351
|
+
waiter_params[key] = value
|
1352
|
+
end
|
1353
|
+
end
|
1354
|
+
waiter_opts[:client] ||= @client
|
1355
|
+
[waiter_opts, waiter_params]
|
1356
|
+
end
|
1357
|
+
|
1358
|
+
class Collection < Aws::Resources::Collection
|
1359
|
+
|
1360
|
+
# @!group Batch Actions
|
1361
|
+
|
1362
|
+
# @example Request syntax with placeholder values
|
1363
|
+
#
|
1364
|
+
# instance.batch_create_tags({
|
1365
|
+
# dry_run: false,
|
1366
|
+
# tags: [ # required
|
1367
|
+
# {
|
1368
|
+
# key: "String",
|
1369
|
+
# value: "String",
|
1370
|
+
# },
|
1371
|
+
# ],
|
1372
|
+
# })
|
1373
|
+
# @param options ({})
|
1374
|
+
# @option options [Boolean] :dry_run
|
1375
|
+
# Checks whether you have the required permissions for the action,
|
1376
|
+
# without actually making the request, and provides an error response.
|
1377
|
+
# If you have the required permissions, the error response is
|
1378
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1379
|
+
# @option options [required, Array<Types::Tag>] :tags
|
1380
|
+
# One or more tags. The `value` parameter is required, but if you don't
|
1381
|
+
# want the tag to have a value, specify the parameter with no value, and
|
1382
|
+
# we set the value to an empty string.
|
1383
|
+
# @return [void]
|
1384
|
+
def batch_create_tags(options = {})
|
1385
|
+
batch_enum.each do |batch|
|
1386
|
+
params = Aws::Util.copy_hash(options)
|
1387
|
+
params[:resources] ||= []
|
1388
|
+
batch.each do |item|
|
1389
|
+
params[:resources] << {
|
1390
|
+
id: item.id
|
1391
|
+
}
|
1392
|
+
end
|
1393
|
+
batch[0].client.create_tags(params)
|
1394
|
+
end
|
1395
|
+
nil
|
1396
|
+
end
|
1397
|
+
|
1398
|
+
# @example Request syntax with placeholder values
|
1399
|
+
#
|
1400
|
+
# instance.batch_monitor({
|
1401
|
+
# dry_run: false,
|
1402
|
+
# })
|
1403
|
+
# @param options ({})
|
1404
|
+
# @option options [Boolean] :dry_run
|
1405
|
+
# Checks whether you have the required permissions for the action,
|
1406
|
+
# without actually making the request, and provides an error response.
|
1407
|
+
# If you have the required permissions, the error response is
|
1408
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1409
|
+
# @return [void]
|
1410
|
+
def batch_monitor(options = {})
|
1411
|
+
batch_enum.each do |batch|
|
1412
|
+
params = Aws::Util.copy_hash(options)
|
1413
|
+
params[:instance_ids] ||= []
|
1414
|
+
batch.each do |item|
|
1415
|
+
params[:instance_ids] << {
|
1416
|
+
id: item.id
|
1417
|
+
}
|
1418
|
+
end
|
1419
|
+
batch[0].client.monitor_instances(params)
|
1420
|
+
end
|
1421
|
+
nil
|
1422
|
+
end
|
1423
|
+
|
1424
|
+
# @example Request syntax with placeholder values
|
1425
|
+
#
|
1426
|
+
# instance.batch_reboot({
|
1427
|
+
# dry_run: false,
|
1428
|
+
# })
|
1429
|
+
# @param options ({})
|
1430
|
+
# @option options [Boolean] :dry_run
|
1431
|
+
# Checks whether you have the required permissions for the action,
|
1432
|
+
# without actually making the request, and provides an error response.
|
1433
|
+
# If you have the required permissions, the error response is
|
1434
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1435
|
+
# @return [void]
|
1436
|
+
def batch_reboot(options = {})
|
1437
|
+
batch_enum.each do |batch|
|
1438
|
+
params = Aws::Util.copy_hash(options)
|
1439
|
+
params[:instance_ids] ||= []
|
1440
|
+
batch.each do |item|
|
1441
|
+
params[:instance_ids] << {
|
1442
|
+
id: item.id
|
1443
|
+
}
|
1444
|
+
end
|
1445
|
+
batch[0].client.reboot_instances(params)
|
1446
|
+
end
|
1447
|
+
nil
|
1448
|
+
end
|
1449
|
+
|
1450
|
+
# @example Request syntax with placeholder values
|
1451
|
+
#
|
1452
|
+
# instance.batch_start({
|
1453
|
+
# additional_info: "String",
|
1454
|
+
# dry_run: false,
|
1455
|
+
# })
|
1456
|
+
# @param options ({})
|
1457
|
+
# @option options [String] :additional_info
|
1458
|
+
# Reserved.
|
1459
|
+
# @option options [Boolean] :dry_run
|
1460
|
+
# Checks whether you have the required permissions for the action,
|
1461
|
+
# without actually making the request, and provides an error response.
|
1462
|
+
# If you have the required permissions, the error response is
|
1463
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1464
|
+
# @return [void]
|
1465
|
+
def batch_start(options = {})
|
1466
|
+
batch_enum.each do |batch|
|
1467
|
+
params = Aws::Util.copy_hash(options)
|
1468
|
+
params[:instance_ids] ||= []
|
1469
|
+
batch.each do |item|
|
1470
|
+
params[:instance_ids] << {
|
1471
|
+
id: item.id
|
1472
|
+
}
|
1473
|
+
end
|
1474
|
+
batch[0].client.start_instances(params)
|
1475
|
+
end
|
1476
|
+
nil
|
1477
|
+
end
|
1478
|
+
|
1479
|
+
# @example Request syntax with placeholder values
|
1480
|
+
#
|
1481
|
+
# instance.batch_stop({
|
1482
|
+
# dry_run: false,
|
1483
|
+
# force: false,
|
1484
|
+
# })
|
1485
|
+
# @param options ({})
|
1486
|
+
# @option options [Boolean] :dry_run
|
1487
|
+
# Checks whether you have the required permissions for the action,
|
1488
|
+
# without actually making the request, and provides an error response.
|
1489
|
+
# If you have the required permissions, the error response is
|
1490
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1491
|
+
# @option options [Boolean] :force
|
1492
|
+
# Forces the instances to stop. The instances do not have an opportunity
|
1493
|
+
# to flush file system caches or file system metadata. If you use this
|
1494
|
+
# option, you must perform file system check and repair procedures. This
|
1495
|
+
# option is not recommended for Windows instances.
|
1496
|
+
#
|
1497
|
+
# Default: `false`
|
1498
|
+
# @return [void]
|
1499
|
+
def batch_stop(options = {})
|
1500
|
+
batch_enum.each do |batch|
|
1501
|
+
params = Aws::Util.copy_hash(options)
|
1502
|
+
params[:instance_ids] ||= []
|
1503
|
+
batch.each do |item|
|
1504
|
+
params[:instance_ids] << {
|
1505
|
+
id: item.id
|
1506
|
+
}
|
1507
|
+
end
|
1508
|
+
batch[0].client.stop_instances(params)
|
1509
|
+
end
|
1510
|
+
nil
|
1511
|
+
end
|
1512
|
+
|
1513
|
+
# @example Request syntax with placeholder values
|
1514
|
+
#
|
1515
|
+
# instance.batch_terminate!({
|
1516
|
+
# dry_run: false,
|
1517
|
+
# })
|
1518
|
+
# @param options ({})
|
1519
|
+
# @option options [Boolean] :dry_run
|
1520
|
+
# Checks whether you have the required permissions for the action,
|
1521
|
+
# without actually making the request, and provides an error response.
|
1522
|
+
# If you have the required permissions, the error response is
|
1523
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1524
|
+
# @return [void]
|
1525
|
+
def batch_terminate!(options = {})
|
1526
|
+
batch_enum.each do |batch|
|
1527
|
+
params = Aws::Util.copy_hash(options)
|
1528
|
+
params[:instance_ids] ||= []
|
1529
|
+
batch.each do |item|
|
1530
|
+
params[:instance_ids] << {
|
1531
|
+
id: item.id
|
1532
|
+
}
|
1533
|
+
end
|
1534
|
+
batch[0].client.terminate_instances(params)
|
1535
|
+
end
|
1536
|
+
nil
|
1537
|
+
end
|
1538
|
+
|
1539
|
+
# @example Request syntax with placeholder values
|
1540
|
+
#
|
1541
|
+
# instance.batch_unmonitor({
|
1542
|
+
# dry_run: false,
|
1543
|
+
# })
|
1544
|
+
# @param options ({})
|
1545
|
+
# @option options [Boolean] :dry_run
|
1546
|
+
# Checks whether you have the required permissions for the action,
|
1547
|
+
# without actually making the request, and provides an error response.
|
1548
|
+
# If you have the required permissions, the error response is
|
1549
|
+
# `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
|
1550
|
+
# @return [void]
|
1551
|
+
def batch_unmonitor(options = {})
|
1552
|
+
batch_enum.each do |batch|
|
1553
|
+
params = Aws::Util.copy_hash(options)
|
1554
|
+
params[:instance_ids] ||= []
|
1555
|
+
batch.each do |item|
|
1556
|
+
params[:instance_ids] << {
|
1557
|
+
id: item.id
|
1558
|
+
}
|
1559
|
+
end
|
1560
|
+
batch[0].client.unmonitor_instances(params)
|
1561
|
+
end
|
1562
|
+
nil
|
1563
|
+
end
|
1564
|
+
|
1565
|
+
# @!endgroup
|
1566
|
+
|
1567
|
+
end
|
1568
|
+
end
|
1569
|
+
end
|
1570
|
+
end
|