aws-sdk-ec2 1.285.0 → 1.417.0

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.
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