aws-sdk-ec2 1.285.0 → 1.417.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +663 -1
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-ec2/classic_address.rb +33 -36
  5. data/lib/aws-sdk-ec2/client.rb +13859 -2170
  6. data/lib/aws-sdk-ec2/client_api.rb +4203 -86
  7. data/lib/aws-sdk-ec2/customizations/instance.rb +3 -1
  8. data/lib/aws-sdk-ec2/customizations/resource.rb +3 -1
  9. data/lib/aws-sdk-ec2/dhcp_options.rb +19 -7
  10. data/lib/aws-sdk-ec2/endpoint_parameters.rb +66 -0
  11. data/lib/aws-sdk-ec2/endpoint_provider.rb +57 -0
  12. data/lib/aws-sdk-ec2/endpoints.rb +8444 -0
  13. data/lib/aws-sdk-ec2/image.rb +96 -22
  14. data/lib/aws-sdk-ec2/instance.rb +232 -95
  15. data/lib/aws-sdk-ec2/internet_gateway.rb +21 -7
  16. data/lib/aws-sdk-ec2/key_pair.rb +13 -4
  17. data/lib/aws-sdk-ec2/key_pair_info.rb +32 -4
  18. data/lib/aws-sdk-ec2/nat_gateway.rb +22 -12
  19. data/lib/aws-sdk-ec2/network_acl.rb +28 -10
  20. data/lib/aws-sdk-ec2/network_interface.rb +76 -17
  21. data/lib/aws-sdk-ec2/network_interface_association.rb +11 -5
  22. data/lib/aws-sdk-ec2/placement_group.rb +198 -33
  23. data/lib/aws-sdk-ec2/plugins/copy_encrypted_snapshot.rb +17 -12
  24. data/lib/aws-sdk-ec2/plugins/endpoints.rb +1272 -0
  25. data/lib/aws-sdk-ec2/plugins/region_validation.rb +1 -1
  26. data/lib/aws-sdk-ec2/resource.rb +793 -282
  27. data/lib/aws-sdk-ec2/route.rb +9 -3
  28. data/lib/aws-sdk-ec2/route_table.rb +21 -7
  29. data/lib/aws-sdk-ec2/route_table_association.rb +9 -3
  30. data/lib/aws-sdk-ec2/security_group.rb +74 -57
  31. data/lib/aws-sdk-ec2/snapshot.rb +38 -12
  32. data/lib/aws-sdk-ec2/subnet.rb +394 -137
  33. data/lib/aws-sdk-ec2/tag.rb +12 -4
  34. data/lib/aws-sdk-ec2/types.rb +15645 -13412
  35. data/lib/aws-sdk-ec2/volume.rb +65 -34
  36. data/lib/aws-sdk-ec2/vpc.rb +368 -123
  37. data/lib/aws-sdk-ec2/vpc_address.rb +29 -34
  38. data/lib/aws-sdk-ec2/vpc_peering_connection.rb +18 -6
  39. data/lib/aws-sdk-ec2/waiters.rb +184 -0
  40. data/lib/aws-sdk-ec2.rb +6 -2
  41. metadata +8 -4
@@ -68,7 +68,9 @@ module Aws::EC2
68
68
  #
69
69
  # @return [self]
70
70
  def load
71
- resp = @client.describe_internet_gateways(internet_gateway_ids: [@id])
71
+ resp = Aws::Plugins::UserAgent.feature('resource') do
72
+ @client.describe_internet_gateways(internet_gateway_ids: [@id])
73
+ end
72
74
  @data = resp.internet_gateways[0]
73
75
  self
74
76
  end
@@ -183,7 +185,9 @@ module Aws::EC2
183
185
  :retry
184
186
  end
185
187
  end
186
- Aws::Waiters::Waiter.new(options).wait({})
188
+ Aws::Plugins::UserAgent.feature('resource') do
189
+ Aws::Waiters::Waiter.new(options).wait({})
190
+ end
187
191
  end
188
192
 
189
193
  # @!group Actions
@@ -205,7 +209,9 @@ module Aws::EC2
205
209
  # @return [EmptyStructure]
206
210
  def attach_to_vpc(options = {})
207
211
  options = options.merge(internet_gateway_id: @id)
208
- resp = @client.attach_internet_gateway(options)
212
+ resp = Aws::Plugins::UserAgent.feature('resource') do
213
+ @client.attach_internet_gateway(options)
214
+ end
209
215
  resp.data
210
216
  end
211
217
 
@@ -234,7 +240,9 @@ module Aws::EC2
234
240
  def create_tags(options = {})
235
241
  batch = []
236
242
  options = Aws::Util.deep_merge(options, resources: [@id])
237
- resp = @client.create_tags(options)
243
+ resp = Aws::Plugins::UserAgent.feature('resource') do
244
+ @client.create_tags(options)
245
+ end
238
246
  options[:tags].each do |t|
239
247
  batch << Tag.new(
240
248
  resource_id: @id,
@@ -279,7 +287,9 @@ module Aws::EC2
279
287
  def delete_tags(options = {})
280
288
  batch = []
281
289
  options = Aws::Util.deep_merge(options, resources: [@id])
282
- resp = @client.delete_tags(options)
290
+ resp = Aws::Plugins::UserAgent.feature('resource') do
291
+ @client.delete_tags(options)
292
+ end
283
293
  options[:tags].each do |t|
284
294
  batch << Tag.new(
285
295
  resource_id: @id,
@@ -305,7 +315,9 @@ module Aws::EC2
305
315
  # @return [EmptyStructure]
306
316
  def delete(options = {})
307
317
  options = options.merge(internet_gateway_id: @id)
308
- resp = @client.delete_internet_gateway(options)
318
+ resp = Aws::Plugins::UserAgent.feature('resource') do
319
+ @client.delete_internet_gateway(options)
320
+ end
309
321
  resp.data
310
322
  end
311
323
 
@@ -326,7 +338,9 @@ module Aws::EC2
326
338
  # @return [EmptyStructure]
327
339
  def detach_from_vpc(options = {})
328
340
  options = options.merge(internet_gateway_id: @id)
329
- resp = @client.detach_internet_gateway(options)
341
+ resp = Aws::Plugins::UserAgent.feature('resource') do
342
+ @client.detach_internet_gateway(options)
343
+ end
330
344
  resp.data
331
345
  end
332
346
 
@@ -35,7 +35,12 @@ module Aws::EC2
35
35
  end
36
36
  alias :key_name :name
37
37
 
38
- # The SHA-1 digest of the DER encoded private key.
38
+ # * For RSA key pairs, the key fingerprint is the SHA-1 digest of the
39
+ # DER encoded private key.
40
+ #
41
+ # * For ED25519 key pairs, the key fingerprint is the base64-encoded
42
+ # SHA-256 digest, which is the default for OpenSSH, starting with
43
+ # OpenSSH 6.8.
39
44
  # @return [String]
40
45
  def key_fingerprint
41
46
  data[:key_fingerprint]
@@ -183,7 +188,9 @@ module Aws::EC2
183
188
  :retry
184
189
  end
185
190
  end
186
- Aws::Waiters::Waiter.new(options).wait({})
191
+ Aws::Plugins::UserAgent.feature('resource') do
192
+ Aws::Waiters::Waiter.new(options).wait({})
193
+ end
187
194
  end
188
195
 
189
196
  # @!group Actions
@@ -202,10 +209,12 @@ module Aws::EC2
202
209
  # without actually making the request, and provides an error response.
203
210
  # If you have the required permissions, the error response is
204
211
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
205
- # @return [EmptyStructure]
212
+ # @return [Types::DeleteKeyPairResult]
206
213
  def delete(options = {})
207
214
  options = options.merge(key_name: @name)
208
- resp = @client.delete_key_pair(options)
215
+ resp = Aws::Plugins::UserAgent.feature('resource') do
216
+ @client.delete_key_pair(options)
217
+ end
209
218
  resp.data
210
219
  end
211
220
 
@@ -80,6 +80,28 @@ module Aws::EC2
80
80
  data[:tags]
81
81
  end
82
82
 
83
+ # The public key material.
84
+ # @return [String]
85
+ def public_key
86
+ data[:public_key]
87
+ end
88
+
89
+ # If you used Amazon EC2 to create the key pair, this is the date and
90
+ # time when the key was created, in [ISO 8601 date-time format][1], in
91
+ # the UTC time zone.
92
+ #
93
+ # If you imported an existing key pair to Amazon EC2, this is the date
94
+ # and time the key was imported, in [ISO 8601 date-time format][1], in
95
+ # the UTC time zone.
96
+ #
97
+ #
98
+ #
99
+ # [1]: https://www.iso.org/iso-8601-date-and-time-format.html
100
+ # @return [Time]
101
+ def create_time
102
+ data[:create_time]
103
+ end
104
+
83
105
  # @!endgroup
84
106
 
85
107
  # @return [Client]
@@ -94,7 +116,9 @@ module Aws::EC2
94
116
  #
95
117
  # @return [self]
96
118
  def load
97
- resp = @client.describe_key_pairs(key_names: [@name])
119
+ resp = Aws::Plugins::UserAgent.feature('resource') do
120
+ @client.describe_key_pairs(key_names: [@name])
121
+ end
98
122
  @data = resp.key_pairs[0]
99
123
  self
100
124
  end
@@ -209,7 +233,9 @@ module Aws::EC2
209
233
  :retry
210
234
  end
211
235
  end
212
- Aws::Waiters::Waiter.new(options).wait({})
236
+ Aws::Plugins::UserAgent.feature('resource') do
237
+ Aws::Waiters::Waiter.new(options).wait({})
238
+ end
213
239
  end
214
240
 
215
241
  # @!group Actions
@@ -228,10 +254,12 @@ module Aws::EC2
228
254
  # without actually making the request, and provides an error response.
229
255
  # If you have the required permissions, the error response is
230
256
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
231
- # @return [EmptyStructure]
257
+ # @return [Types::DeleteKeyPairResult]
232
258
  def delete(options = {})
233
259
  options = options.merge(key_name: @name)
234
- resp = @client.delete_key_pair(options)
260
+ resp = Aws::Plugins::UserAgent.feature('resource') do
261
+ @client.delete_key_pair(options)
262
+ end
235
263
  resp.data
236
264
  end
237
265
 
@@ -104,20 +104,20 @@ module Aws::EC2
104
104
 
105
105
  # The state of the NAT gateway.
106
106
  #
107
- # * `pending`\: The NAT gateway is being created and is not ready to
107
+ # * `pending`: The NAT gateway is being created and is not ready to
108
108
  # process traffic.
109
109
  #
110
- # * `failed`\: The NAT gateway could not be created. Check the
110
+ # * `failed`: The NAT gateway could not be created. Check the
111
111
  # `failureCode` and `failureMessage` fields for the reason.
112
112
  #
113
- # * `available`\: The NAT gateway is able to process traffic. This
114
- # status remains until you delete the NAT gateway, and does not
115
- # indicate the health of the NAT gateway.
113
+ # * `available`: The NAT gateway is able to process traffic. This status
114
+ # remains until you delete the NAT gateway, and does not indicate the
115
+ # health of the NAT gateway.
116
116
  #
117
- # * `deleting`\: The NAT gateway is in the process of being terminated
117
+ # * `deleting`: The NAT gateway is in the process of being terminated
118
118
  # and may still be processing traffic.
119
119
  #
120
- # * `deleted`\: The NAT gateway has been terminated and is no longer
120
+ # * `deleted`: The NAT gateway has been terminated and is no longer
121
121
  # processing traffic.
122
122
  # @return [String]
123
123
  def state
@@ -163,7 +163,9 @@ module Aws::EC2
163
163
  #
164
164
  # @return [self]
165
165
  def load
166
- resp = @client.describe_nat_gateways(nat_gateway_ids: [@id])
166
+ resp = Aws::Plugins::UserAgent.feature('resource') do
167
+ @client.describe_nat_gateways(nat_gateway_ids: [@id])
168
+ end
167
169
  @data = resp.nat_gateways[0]
168
170
  self
169
171
  end
@@ -278,7 +280,9 @@ module Aws::EC2
278
280
  :retry
279
281
  end
280
282
  end
281
- Aws::Waiters::Waiter.new(options).wait({})
283
+ Aws::Plugins::UserAgent.feature('resource') do
284
+ Aws::Waiters::Waiter.new(options).wait({})
285
+ end
282
286
  end
283
287
 
284
288
  # @!group Actions
@@ -308,7 +312,9 @@ module Aws::EC2
308
312
  def create_tags(options = {})
309
313
  batch = []
310
314
  options = Aws::Util.deep_merge(options, resources: [@id])
311
- resp = @client.create_tags(options)
315
+ resp = Aws::Plugins::UserAgent.feature('resource') do
316
+ @client.create_tags(options)
317
+ end
312
318
  options[:tags].each do |t|
313
319
  batch << Tag.new(
314
320
  resource_id: @id,
@@ -353,7 +359,9 @@ module Aws::EC2
353
359
  def delete_tags(options = {})
354
360
  batch = []
355
361
  options = Aws::Util.deep_merge(options, resources: [@id])
356
- resp = @client.delete_tags(options)
362
+ resp = Aws::Plugins::UserAgent.feature('resource') do
363
+ @client.delete_tags(options)
364
+ end
357
365
  options[:tags].each do |t|
358
366
  batch << Tag.new(
359
367
  resource_id: @id,
@@ -379,7 +387,9 @@ module Aws::EC2
379
387
  # @return [Types::DeleteNatGatewayResult]
380
388
  def delete(options = {})
381
389
  options = options.merge(nat_gateway_id: @id)
382
- resp = @client.delete_nat_gateway(options)
390
+ resp = Aws::Plugins::UserAgent.feature('resource') do
391
+ @client.delete_nat_gateway(options)
392
+ end
383
393
  resp.data
384
394
  end
385
395
 
@@ -41,7 +41,7 @@ module Aws::EC2
41
41
  data[:associations]
42
42
  end
43
43
 
44
- # One or more entries (rules) in the network ACL.
44
+ # The entries (rules) in the network ACL.
45
45
  # @return [Array<Types::NetworkAclEntry>]
46
46
  def entries
47
47
  data[:entries]
@@ -85,7 +85,9 @@ module Aws::EC2
85
85
  #
86
86
  # @return [self]
87
87
  def load
88
- resp = @client.describe_network_acls(network_acl_ids: [@id])
88
+ resp = Aws::Plugins::UserAgent.feature('resource') do
89
+ @client.describe_network_acls(network_acl_ids: [@id])
90
+ end
89
91
  @data = resp.network_acls[0]
90
92
  self
91
93
  end
@@ -200,7 +202,9 @@ module Aws::EC2
200
202
  :retry
201
203
  end
202
204
  end
203
- Aws::Waiters::Waiter.new(options).wait({})
205
+ Aws::Plugins::UserAgent.feature('resource') do
206
+ Aws::Waiters::Waiter.new(options).wait({})
207
+ end
204
208
  end
205
209
 
206
210
  # @!group Actions
@@ -268,7 +272,9 @@ module Aws::EC2
268
272
  # @return [EmptyStructure]
269
273
  def create_entry(options = {})
270
274
  options = options.merge(network_acl_id: @id)
271
- resp = @client.create_network_acl_entry(options)
275
+ resp = Aws::Plugins::UserAgent.feature('resource') do
276
+ @client.create_network_acl_entry(options)
277
+ end
272
278
  resp.data
273
279
  end
274
280
 
@@ -297,7 +303,9 @@ module Aws::EC2
297
303
  def create_tags(options = {})
298
304
  batch = []
299
305
  options = Aws::Util.deep_merge(options, resources: [@id])
300
- resp = @client.create_tags(options)
306
+ resp = Aws::Plugins::UserAgent.feature('resource') do
307
+ @client.create_tags(options)
308
+ end
301
309
  options[:tags].each do |t|
302
310
  batch << Tag.new(
303
311
  resource_id: @id,
@@ -342,7 +350,9 @@ module Aws::EC2
342
350
  def delete_tags(options = {})
343
351
  batch = []
344
352
  options = Aws::Util.deep_merge(options, resources: [@id])
345
- resp = @client.delete_tags(options)
353
+ resp = Aws::Plugins::UserAgent.feature('resource') do
354
+ @client.delete_tags(options)
355
+ end
346
356
  options[:tags].each do |t|
347
357
  batch << Tag.new(
348
358
  resource_id: @id,
@@ -368,7 +378,9 @@ module Aws::EC2
368
378
  # @return [EmptyStructure]
369
379
  def delete(options = {})
370
380
  options = options.merge(network_acl_id: @id)
371
- resp = @client.delete_network_acl(options)
381
+ resp = Aws::Plugins::UserAgent.feature('resource') do
382
+ @client.delete_network_acl(options)
383
+ end
372
384
  resp.data
373
385
  end
374
386
 
@@ -392,7 +404,9 @@ module Aws::EC2
392
404
  # @return [EmptyStructure]
393
405
  def delete_entry(options = {})
394
406
  options = options.merge(network_acl_id: @id)
395
- resp = @client.delete_network_acl_entry(options)
407
+ resp = Aws::Plugins::UserAgent.feature('resource') do
408
+ @client.delete_network_acl_entry(options)
409
+ end
396
410
  resp.data
397
411
  end
398
412
 
@@ -414,7 +428,9 @@ module Aws::EC2
414
428
  # @return [Types::ReplaceNetworkAclAssociationResult]
415
429
  def replace_association(options = {})
416
430
  options = options.merge(network_acl_id: @id)
417
- resp = @client.replace_network_acl_association(options)
431
+ resp = Aws::Plugins::UserAgent.feature('resource') do
432
+ @client.replace_network_acl_association(options)
433
+ end
418
434
  resp.data
419
435
  end
420
436
 
@@ -476,7 +492,9 @@ module Aws::EC2
476
492
  # @return [EmptyStructure]
477
493
  def replace_entry(options = {})
478
494
  options = options.merge(network_acl_id: @id)
479
- resp = @client.replace_network_acl_entry(options)
495
+ resp = Aws::Plugins::UserAgent.feature('resource') do
496
+ @client.replace_network_acl_entry(options)
497
+ end
480
498
  resp.data
481
499
  end
482
500
 
@@ -202,7 +202,9 @@ module Aws::EC2
202
202
  #
203
203
  # @return [self]
204
204
  def load
205
- resp = @client.describe_network_interfaces(network_interface_ids: [@id])
205
+ resp = Aws::Plugins::UserAgent.feature('resource') do
206
+ @client.describe_network_interfaces(network_interface_ids: [@id])
207
+ end
206
208
  @data = resp.network_interfaces[0]
207
209
  self
208
210
  end
@@ -317,7 +319,9 @@ module Aws::EC2
317
319
  :retry
318
320
  end
319
321
  end
320
- Aws::Waiters::Waiter.new(options).wait({})
322
+ Aws::Plugins::UserAgent.feature('resource') do
323
+ Aws::Waiters::Waiter.new(options).wait({})
324
+ end
321
325
  end
322
326
 
323
327
  # @!group Actions
@@ -337,9 +341,9 @@ module Aws::EC2
337
341
  # another network interface or instance to be reassigned to the
338
342
  # specified network interface.
339
343
  # @option options [Array<String>] :private_ip_addresses
340
- # One or more IP addresses to be assigned as a secondary private IP
341
- # address to the network interface. You can't specify this parameter
342
- # when also specifying a number of secondary IP addresses.
344
+ # The IP addresses to be assigned as a secondary private IP address to
345
+ # the network interface. You can't specify this parameter when also
346
+ # specifying a number of secondary IP addresses.
343
347
  #
344
348
  # If you don't specify an IP address, Amazon EC2 automatically selects
345
349
  # an IP address within the subnet range.
@@ -357,7 +361,9 @@ module Aws::EC2
357
361
  # @return [Types::AssignPrivateIpAddressesResult]
358
362
  def assign_private_ip_addresses(options = {})
359
363
  options = options.merge(network_interface_id: @id)
360
- resp = @client.assign_private_ip_addresses(options)
364
+ resp = Aws::Plugins::UserAgent.feature('resource') do
365
+ @client.assign_private_ip_addresses(options)
366
+ end
361
367
  resp.data
362
368
  end
363
369
 
@@ -368,6 +374,12 @@ module Aws::EC2
368
374
  # dry_run: false,
369
375
  # instance_id: "InstanceId", # required
370
376
  # network_card_index: 1,
377
+ # ena_srd_specification: {
378
+ # ena_srd_enabled: false,
379
+ # ena_srd_udp_specification: {
380
+ # ena_srd_udp_enabled: false,
381
+ # },
382
+ # },
371
383
  # })
372
384
  # @param [Hash] options ({})
373
385
  # @option options [required, Integer] :device_index
@@ -383,10 +395,15 @@ module Aws::EC2
383
395
  # The index of the network card. Some instance types support multiple
384
396
  # network cards. The primary network interface must be assigned to
385
397
  # network card index 0. The default is network card index 0.
398
+ # @option options [Types::EnaSrdSpecification] :ena_srd_specification
399
+ # Configures ENA Express for the network interface that this action
400
+ # attaches to the instance.
386
401
  # @return [Types::AttachNetworkInterfaceResult]
387
402
  def attach(options = {})
388
403
  options = options.merge(network_interface_id: @id)
389
- resp = @client.attach_network_interface(options)
404
+ resp = Aws::Plugins::UserAgent.feature('resource') do
405
+ @client.attach_network_interface(options)
406
+ end
390
407
  resp.data
391
408
  end
392
409
 
@@ -415,7 +432,9 @@ module Aws::EC2
415
432
  def create_tags(options = {})
416
433
  batch = []
417
434
  options = Aws::Util.deep_merge(options, resources: [@id])
418
- resp = @client.create_tags(options)
435
+ resp = Aws::Plugins::UserAgent.feature('resource') do
436
+ @client.create_tags(options)
437
+ end
419
438
  options[:tags].each do |t|
420
439
  batch << Tag.new(
421
440
  resource_id: @id,
@@ -460,7 +479,9 @@ module Aws::EC2
460
479
  def delete_tags(options = {})
461
480
  batch = []
462
481
  options = Aws::Util.deep_merge(options, resources: [@id])
463
- resp = @client.delete_tags(options)
482
+ resp = Aws::Plugins::UserAgent.feature('resource') do
483
+ @client.delete_tags(options)
484
+ end
464
485
  options[:tags].each do |t|
465
486
  batch << Tag.new(
466
487
  resource_id: @id,
@@ -486,7 +507,9 @@ module Aws::EC2
486
507
  # @return [EmptyStructure]
487
508
  def delete(options = {})
488
509
  options = options.merge(network_interface_id: @id)
489
- resp = @client.delete_network_interface(options)
510
+ resp = Aws::Plugins::UserAgent.feature('resource') do
511
+ @client.delete_network_interface(options)
512
+ end
490
513
  resp.data
491
514
  end
492
515
 
@@ -507,7 +530,9 @@ module Aws::EC2
507
530
  # @return [Types::DescribeNetworkInterfaceAttributeResult]
508
531
  def describe_attribute(options = {})
509
532
  options = options.merge(network_interface_id: @id)
510
- resp = @client.describe_network_interface_attribute(options)
533
+ resp = Aws::Plugins::UserAgent.feature('resource') do
534
+ @client.describe_network_interface_attribute(options)
535
+ end
511
536
  resp.data
512
537
  end
513
538
 
@@ -548,7 +573,9 @@ module Aws::EC2
548
573
  # @return [EmptyStructure]
549
574
  def detach(options = {})
550
575
  options = options.merge(attachment_id: data[:attachment][:attachment_id])
551
- resp = @client.detach_network_interface(options)
576
+ resp = Aws::Plugins::UserAgent.feature('resource') do
577
+ @client.detach_network_interface(options)
578
+ end
552
579
  resp.data
553
580
  end
554
581
 
@@ -565,11 +592,18 @@ module Aws::EC2
565
592
  # source_dest_check: {
566
593
  # value: false,
567
594
  # },
595
+ # ena_srd_specification: {
596
+ # ena_srd_enabled: false,
597
+ # ena_srd_udp_specification: {
598
+ # ena_srd_udp_enabled: false,
599
+ # },
600
+ # },
601
+ # enable_primary_ipv_6: false,
568
602
  # })
569
603
  # @param [Hash] options ({})
570
604
  # @option options [Types::NetworkInterfaceAttachmentChanges] :attachment
571
- # Information about the interface attachment. If modifying the 'delete
572
- # on termination' attribute, you must specify the ID of the interface
605
+ # Information about the interface attachment. If modifying the `delete
606
+ # on termination` attribute, you must specify the ID of the interface
573
607
  # attachment.
574
608
  # @option options [Types::AttributeValue] :description
575
609
  # A description for the network interface.
@@ -590,10 +624,31 @@ module Aws::EC2
590
624
  # enabled; otherwise, they are disabled. The default value is `true`.
591
625
  # You must disable source/destination checks if the instance runs
592
626
  # services such as network address translation, routing, or firewalls.
627
+ # @option options [Types::EnaSrdSpecification] :ena_srd_specification
628
+ # Updates the ENA Express configuration for the network interface that’s
629
+ # attached to the instance.
630
+ # @option options [Boolean] :enable_primary_ipv_6
631
+ # If you’re modifying a network interface in a dual-stack or IPv6-only
632
+ # subnet, you have the option to assign a primary IPv6 IP address. A
633
+ # primary IPv6 address is an IPv6 GUA address associated with an ENI
634
+ # that you have enabled to use a primary IPv6 address. Use this option
635
+ # if the instance that this ENI will be attached to relies on its IPv6
636
+ # address not changing. Amazon Web Services will automatically assign an
637
+ # IPv6 address associated with the ENI attached to your instance to be
638
+ # the primary IPv6 address. Once you enable an IPv6 GUA address to be a
639
+ # primary IPv6, you cannot disable it. When you enable an IPv6 GUA
640
+ # address to be a primary IPv6, the first IPv6 GUA will be made the
641
+ # primary IPv6 address until the instance is terminated or the network
642
+ # interface is detached. If you have multiple IPv6 addresses associated
643
+ # with an ENI attached to your instance and you enable a primary IPv6
644
+ # address, the first IPv6 GUA address associated with the ENI becomes
645
+ # the primary IPv6 address.
593
646
  # @return [EmptyStructure]
594
647
  def modify_attribute(options = {})
595
648
  options = options.merge(network_interface_id: @id)
596
- resp = @client.modify_network_interface_attribute(options)
649
+ resp = Aws::Plugins::UserAgent.feature('resource') do
650
+ @client.modify_network_interface_attribute(options)
651
+ end
597
652
  resp.data
598
653
  end
599
654
 
@@ -614,7 +669,9 @@ module Aws::EC2
614
669
  # @return [EmptyStructure]
615
670
  def reset_attribute(options = {})
616
671
  options = options.merge(network_interface_id: @id)
617
- resp = @client.reset_network_interface_attribute(options)
672
+ resp = Aws::Plugins::UserAgent.feature('resource') do
673
+ @client.reset_network_interface_attribute(options)
674
+ end
618
675
  resp.data
619
676
  end
620
677
 
@@ -634,7 +691,9 @@ module Aws::EC2
634
691
  # @return [EmptyStructure]
635
692
  def unassign_private_ip_addresses(options = {})
636
693
  options = options.merge(network_interface_id: @id)
637
- resp = @client.unassign_private_ip_addresses(options)
694
+ resp = Aws::Plugins::UserAgent.feature('resource') do
695
+ @client.unassign_private_ip_addresses(options)
696
+ end
638
697
  resp.data
639
698
  end
640
699
 
@@ -79,10 +79,12 @@ module Aws::EC2
79
79
  #
80
80
  # @return [self]
81
81
  def load
82
- resp = @client.describe_network_interfaces(filters: [{
82
+ resp = Aws::Plugins::UserAgent.feature('resource') do
83
+ @client.describe_network_interfaces(filters: [{
83
84
  name: "association.association-id",
84
85
  values: [@id]
85
86
  }])
87
+ end
86
88
  @data = resp.network_interfaces[0].association
87
89
  self
88
90
  end
@@ -197,7 +199,9 @@ module Aws::EC2
197
199
  :retry
198
200
  end
199
201
  end
200
- Aws::Waiters::Waiter.new(options).wait({})
202
+ Aws::Plugins::UserAgent.feature('resource') do
203
+ Aws::Waiters::Waiter.new(options).wait({})
204
+ end
201
205
  end
202
206
 
203
207
  # @!group Actions
@@ -205,12 +209,12 @@ module Aws::EC2
205
209
  # @example Request syntax with placeholder values
206
210
  #
207
211
  # network_interface_association.delete({
208
- # public_ip: "String",
212
+ # public_ip: "EipAllocationPublicIp",
209
213
  # dry_run: false,
210
214
  # })
211
215
  # @param [Hash] options ({})
212
216
  # @option options [String] :public_ip
213
- # \[EC2-Classic\] The Elastic IP address. Required for EC2-Classic.
217
+ # Deprecated.
214
218
  # @option options [Boolean] :dry_run
215
219
  # Checks whether you have the required permissions for the action,
216
220
  # without actually making the request, and provides an error response.
@@ -219,7 +223,9 @@ module Aws::EC2
219
223
  # @return [EmptyStructure]
220
224
  def delete(options = {})
221
225
  options = options.merge(association_id: @id)
222
- resp = @client.disassociate_address(options)
226
+ resp = Aws::Plugins::UserAgent.feature('resource') do
227
+ @client.disassociate_address(options)
228
+ end
223
229
  resp.data
224
230
  end
225
231