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
@@ -182,7 +182,9 @@ module Aws::EC2
182
182
  #
183
183
  # @return [self]
184
184
  def load
185
- resp = @client.describe_subnets(subnet_ids: [@id])
185
+ resp = Aws::Plugins::UserAgent.feature('resource') do
186
+ @client.describe_subnets(subnet_ids: [@id])
187
+ end
186
188
  @data = resp.subnets[0]
187
189
  self
188
190
  end
@@ -297,7 +299,9 @@ module Aws::EC2
297
299
  :retry
298
300
  end
299
301
  end
300
- Aws::Waiters::Waiter.new(options).wait({})
302
+ Aws::Plugins::UserAgent.feature('resource') do
303
+ Aws::Waiters::Waiter.new(options).wait({})
304
+ end
301
305
  end
302
306
 
303
307
  # @!group Actions
@@ -324,11 +328,12 @@ module Aws::EC2
324
328
  # },
325
329
  # ],
326
330
  # image_id: "ImageId",
327
- # instance_type: "t1.micro", # accepts t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge, t3a.nano, t3a.micro, t3a.small, t3a.medium, t3a.large, t3a.xlarge, t3a.2xlarge, t4g.nano, t4g.micro, t4g.small, t4g.medium, t4g.large, t4g.xlarge, t4g.2xlarge, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, r5b.large, r5b.xlarge, r5b.2xlarge, r5b.4xlarge, r5b.8xlarge, r5b.12xlarge, r5b.16xlarge, r5b.24xlarge, r5b.metal, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal, r5ad.large, r5ad.xlarge, r5ad.2xlarge, r5ad.4xlarge, r5ad.8xlarge, r5ad.12xlarge, r5ad.16xlarge, r5ad.24xlarge, r6g.metal, r6g.medium, r6g.large, r6g.xlarge, r6g.2xlarge, r6g.4xlarge, r6g.8xlarge, r6g.12xlarge, r6g.16xlarge, r6gd.metal, r6gd.medium, r6gd.large, r6gd.xlarge, r6gd.2xlarge, r6gd.4xlarge, r6gd.8xlarge, r6gd.12xlarge, r6gd.16xlarge, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, i3en.large, i3en.xlarge, i3en.2xlarge, i3en.3xlarge, i3en.6xlarge, i3en.12xlarge, i3en.24xlarge, i3en.metal, hi1.4xlarge, hs1.8xlarge, c1.medium, c1.xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal, c5a.large, c5a.xlarge, c5a.2xlarge, c5a.4xlarge, c5a.8xlarge, c5a.12xlarge, c5a.16xlarge, c5a.24xlarge, c5ad.large, c5ad.xlarge, c5ad.2xlarge, c5ad.4xlarge, c5ad.8xlarge, c5ad.12xlarge, c5ad.16xlarge, c5ad.24xlarge, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.12xlarge, c5d.18xlarge, c5d.24xlarge, c5d.metal, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, c5n.metal, c6g.metal, c6g.medium, c6g.large, c6g.xlarge, c6g.2xlarge, c6g.4xlarge, c6g.8xlarge, c6g.12xlarge, c6g.16xlarge, c6gd.metal, c6gd.medium, c6gd.large, c6gd.xlarge, c6gd.2xlarge, c6gd.4xlarge, c6gd.8xlarge, c6gd.12xlarge, c6gd.16xlarge, c6gn.medium, c6gn.large, c6gn.xlarge, c6gn.2xlarge, c6gn.4xlarge, c6gn.8xlarge, c6gn.12xlarge, c6gn.16xlarge, c6i.large, c6i.xlarge, c6i.2xlarge, c6i.4xlarge, c6i.8xlarge, c6i.12xlarge, c6i.16xlarge, c6i.24xlarge, c6i.32xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, g4ad.xlarge, g4ad.2xlarge, g4ad.4xlarge, g4ad.8xlarge, g4ad.16xlarge, g4dn.xlarge, g4dn.2xlarge, g4dn.4xlarge, g4dn.8xlarge, g4dn.12xlarge, g4dn.16xlarge, g4dn.metal, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, p4d.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d3.xlarge, d3.2xlarge, d3.4xlarge, d3.8xlarge, d3en.xlarge, d3en.2xlarge, d3en.4xlarge, d3en.6xlarge, d3en.8xlarge, d3en.12xlarge, dl1.24xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.8xlarge, m5d.12xlarge, m5d.16xlarge, m5d.24xlarge, m5d.metal, m5ad.large, m5ad.xlarge, m5ad.2xlarge, m5ad.4xlarge, m5ad.8xlarge, m5ad.12xlarge, m5ad.16xlarge, m5ad.24xlarge, m5zn.large, m5zn.xlarge, m5zn.2xlarge, m5zn.3xlarge, m5zn.6xlarge, m5zn.12xlarge, m5zn.metal, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.56xlarge, u-6tb1.112xlarge, u-9tb1.112xlarge, u-12tb1.112xlarge, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal, m5dn.large, m5dn.xlarge, m5dn.2xlarge, m5dn.4xlarge, m5dn.8xlarge, m5dn.12xlarge, m5dn.16xlarge, m5dn.24xlarge, m5dn.metal, m5n.large, m5n.xlarge, m5n.2xlarge, m5n.4xlarge, m5n.8xlarge, m5n.12xlarge, m5n.16xlarge, m5n.24xlarge, m5n.metal, r5dn.large, r5dn.xlarge, r5dn.2xlarge, r5dn.4xlarge, r5dn.8xlarge, r5dn.12xlarge, r5dn.16xlarge, r5dn.24xlarge, r5dn.metal, r5n.large, r5n.xlarge, r5n.2xlarge, r5n.4xlarge, r5n.8xlarge, r5n.12xlarge, r5n.16xlarge, r5n.24xlarge, r5n.metal, inf1.xlarge, inf1.2xlarge, inf1.6xlarge, inf1.24xlarge, m6g.metal, m6g.medium, m6g.large, m6g.xlarge, m6g.2xlarge, m6g.4xlarge, m6g.8xlarge, m6g.12xlarge, m6g.16xlarge, m6gd.metal, m6gd.medium, m6gd.large, m6gd.xlarge, m6gd.2xlarge, m6gd.4xlarge, m6gd.8xlarge, m6gd.12xlarge, m6gd.16xlarge, m6a.large, m6a.xlarge, m6a.2xlarge, m6a.4xlarge, m6a.8xlarge, m6a.12xlarge, m6a.16xlarge, m6a.24xlarge, m6a.32xlarge, m6a.48xlarge, m6i.large, m6i.xlarge, m6i.2xlarge, m6i.4xlarge, m6i.8xlarge, m6i.12xlarge, m6i.16xlarge, m6i.24xlarge, m6i.32xlarge, mac1.metal, x2gd.medium, x2gd.large, x2gd.xlarge, x2gd.2xlarge, x2gd.4xlarge, x2gd.8xlarge, x2gd.12xlarge, x2gd.16xlarge, x2gd.metal, vt1.3xlarge, vt1.6xlarge, vt1.24xlarge, im4gn.16xlarge, im4gn.2xlarge, im4gn.4xlarge, im4gn.8xlarge, im4gn.large, im4gn.xlarge, is4gen.2xlarge, is4gen.4xlarge, is4gen.8xlarge, is4gen.large, is4gen.medium, is4gen.xlarge, g5g.xlarge, g5g.2xlarge, g5g.4xlarge, g5g.8xlarge, g5g.16xlarge, g5g.metal, g5.xlarge, g5.2xlarge, g5.4xlarge, g5.8xlarge, g5.12xlarge, g5.16xlarge, g5.24xlarge, g5.48xlarge
331
+ # instance_type: "a1.medium", # accepts a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal, c1.medium, c1.xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal, c5a.large, c5a.xlarge, c5a.2xlarge, c5a.4xlarge, c5a.8xlarge, c5a.12xlarge, c5a.16xlarge, c5a.24xlarge, c5ad.large, c5ad.xlarge, c5ad.2xlarge, c5ad.4xlarge, c5ad.8xlarge, c5ad.12xlarge, c5ad.16xlarge, c5ad.24xlarge, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.12xlarge, c5d.18xlarge, c5d.24xlarge, c5d.metal, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, c5n.metal, c6g.medium, c6g.large, c6g.xlarge, c6g.2xlarge, c6g.4xlarge, c6g.8xlarge, c6g.12xlarge, c6g.16xlarge, c6g.metal, c6gd.medium, c6gd.large, c6gd.xlarge, c6gd.2xlarge, c6gd.4xlarge, c6gd.8xlarge, c6gd.12xlarge, c6gd.16xlarge, c6gd.metal, c6gn.medium, c6gn.large, c6gn.xlarge, c6gn.2xlarge, c6gn.4xlarge, c6gn.8xlarge, c6gn.12xlarge, c6gn.16xlarge, c6i.large, c6i.xlarge, c6i.2xlarge, c6i.4xlarge, c6i.8xlarge, c6i.12xlarge, c6i.16xlarge, c6i.24xlarge, c6i.32xlarge, c6i.metal, cc1.4xlarge, cc2.8xlarge, cg1.4xlarge, cr1.8xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d3.xlarge, d3.2xlarge, d3.4xlarge, d3.8xlarge, d3en.xlarge, d3en.2xlarge, d3en.4xlarge, d3en.6xlarge, d3en.8xlarge, d3en.12xlarge, dl1.24xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, g4ad.xlarge, g4ad.2xlarge, g4ad.4xlarge, g4ad.8xlarge, g4ad.16xlarge, g4dn.xlarge, g4dn.2xlarge, g4dn.4xlarge, g4dn.8xlarge, g4dn.12xlarge, g4dn.16xlarge, g4dn.metal, g5.xlarge, g5.2xlarge, g5.4xlarge, g5.8xlarge, g5.12xlarge, g5.16xlarge, g5.24xlarge, g5.48xlarge, g5g.xlarge, g5g.2xlarge, g5g.4xlarge, g5g.8xlarge, g5g.16xlarge, g5g.metal, hi1.4xlarge, hpc6a.48xlarge, hs1.8xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, i3en.large, i3en.xlarge, i3en.2xlarge, i3en.3xlarge, i3en.6xlarge, i3en.12xlarge, i3en.24xlarge, i3en.metal, im4gn.large, im4gn.xlarge, im4gn.2xlarge, im4gn.4xlarge, im4gn.8xlarge, im4gn.16xlarge, inf1.xlarge, inf1.2xlarge, inf1.6xlarge, inf1.24xlarge, is4gen.medium, is4gen.large, is4gen.xlarge, is4gen.2xlarge, is4gen.4xlarge, is4gen.8xlarge, m1.small, m1.medium, m1.large, m1.xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge, m5ad.large, m5ad.xlarge, m5ad.2xlarge, m5ad.4xlarge, m5ad.8xlarge, m5ad.12xlarge, m5ad.16xlarge, m5ad.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.8xlarge, m5d.12xlarge, m5d.16xlarge, m5d.24xlarge, m5d.metal, m5dn.large, m5dn.xlarge, m5dn.2xlarge, m5dn.4xlarge, m5dn.8xlarge, m5dn.12xlarge, m5dn.16xlarge, m5dn.24xlarge, m5dn.metal, m5n.large, m5n.xlarge, m5n.2xlarge, m5n.4xlarge, m5n.8xlarge, m5n.12xlarge, m5n.16xlarge, m5n.24xlarge, m5n.metal, m5zn.large, m5zn.xlarge, m5zn.2xlarge, m5zn.3xlarge, m5zn.6xlarge, m5zn.12xlarge, m5zn.metal, m6a.large, m6a.xlarge, m6a.2xlarge, m6a.4xlarge, m6a.8xlarge, m6a.12xlarge, m6a.16xlarge, m6a.24xlarge, m6a.32xlarge, m6a.48xlarge, m6g.metal, m6g.medium, m6g.large, m6g.xlarge, m6g.2xlarge, m6g.4xlarge, m6g.8xlarge, m6g.12xlarge, m6g.16xlarge, m6gd.metal, m6gd.medium, m6gd.large, m6gd.xlarge, m6gd.2xlarge, m6gd.4xlarge, m6gd.8xlarge, m6gd.12xlarge, m6gd.16xlarge, m6i.large, m6i.xlarge, m6i.2xlarge, m6i.4xlarge, m6i.8xlarge, m6i.12xlarge, m6i.16xlarge, m6i.24xlarge, m6i.32xlarge, m6i.metal, mac1.metal, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, p4d.24xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, r5ad.large, r5ad.xlarge, r5ad.2xlarge, r5ad.4xlarge, r5ad.8xlarge, r5ad.12xlarge, r5ad.16xlarge, r5ad.24xlarge, r5b.large, r5b.xlarge, r5b.2xlarge, r5b.4xlarge, r5b.8xlarge, r5b.12xlarge, r5b.16xlarge, r5b.24xlarge, r5b.metal, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal, r5dn.large, r5dn.xlarge, r5dn.2xlarge, r5dn.4xlarge, r5dn.8xlarge, r5dn.12xlarge, r5dn.16xlarge, r5dn.24xlarge, r5dn.metal, r5n.large, r5n.xlarge, r5n.2xlarge, r5n.4xlarge, r5n.8xlarge, r5n.12xlarge, r5n.16xlarge, r5n.24xlarge, r5n.metal, r6g.medium, r6g.large, r6g.xlarge, r6g.2xlarge, r6g.4xlarge, r6g.8xlarge, r6g.12xlarge, r6g.16xlarge, r6g.metal, r6gd.medium, r6gd.large, r6gd.xlarge, r6gd.2xlarge, r6gd.4xlarge, r6gd.8xlarge, r6gd.12xlarge, r6gd.16xlarge, r6gd.metal, r6i.large, r6i.xlarge, r6i.2xlarge, r6i.4xlarge, r6i.8xlarge, r6i.12xlarge, r6i.16xlarge, r6i.24xlarge, r6i.32xlarge, r6i.metal, t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge, t3a.nano, t3a.micro, t3a.small, t3a.medium, t3a.large, t3a.xlarge, t3a.2xlarge, t4g.nano, t4g.micro, t4g.small, t4g.medium, t4g.large, t4g.xlarge, t4g.2xlarge, u-6tb1.56xlarge, u-6tb1.112xlarge, u-9tb1.112xlarge, u-12tb1.112xlarge, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, vt1.3xlarge, vt1.6xlarge, vt1.24xlarge, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, x2iezn.2xlarge, x2iezn.4xlarge, x2iezn.6xlarge, x2iezn.8xlarge, x2iezn.12xlarge, x2iezn.metal, x2gd.medium, x2gd.large, x2gd.xlarge, x2gd.2xlarge, x2gd.4xlarge, x2gd.8xlarge, x2gd.12xlarge, x2gd.16xlarge, x2gd.metal, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, x2idn.16xlarge, x2idn.24xlarge, x2idn.32xlarge, x2iedn.xlarge, x2iedn.2xlarge, x2iedn.4xlarge, x2iedn.8xlarge, x2iedn.16xlarge, x2iedn.24xlarge, x2iedn.32xlarge, c6a.large, c6a.xlarge, c6a.2xlarge, c6a.4xlarge, c6a.8xlarge, c6a.12xlarge, c6a.16xlarge, c6a.24xlarge, c6a.32xlarge, c6a.48xlarge, c6a.metal, m6a.metal, i4i.large, i4i.xlarge, i4i.2xlarge, i4i.4xlarge, i4i.8xlarge, i4i.16xlarge, i4i.32xlarge, i4i.metal, x2idn.metal, x2iedn.metal, c7g.medium, c7g.large, c7g.xlarge, c7g.2xlarge, c7g.4xlarge, c7g.8xlarge, c7g.12xlarge, c7g.16xlarge, mac2.metal, c6id.large, c6id.xlarge, c6id.2xlarge, c6id.4xlarge, c6id.8xlarge, c6id.12xlarge, c6id.16xlarge, c6id.24xlarge, c6id.32xlarge, c6id.metal, m6id.large, m6id.xlarge, m6id.2xlarge, m6id.4xlarge, m6id.8xlarge, m6id.12xlarge, m6id.16xlarge, m6id.24xlarge, m6id.32xlarge, m6id.metal, r6id.large, r6id.xlarge, r6id.2xlarge, r6id.4xlarge, r6id.8xlarge, r6id.12xlarge, r6id.16xlarge, r6id.24xlarge, r6id.32xlarge, r6id.metal, r6a.large, r6a.xlarge, r6a.2xlarge, r6a.4xlarge, r6a.8xlarge, r6a.12xlarge, r6a.16xlarge, r6a.24xlarge, r6a.32xlarge, r6a.48xlarge, r6a.metal, p4de.24xlarge, u-3tb1.56xlarge, u-18tb1.112xlarge, u-24tb1.112xlarge, trn1.2xlarge, trn1.32xlarge, hpc6id.32xlarge, c6in.large, c6in.xlarge, c6in.2xlarge, c6in.4xlarge, c6in.8xlarge, c6in.12xlarge, c6in.16xlarge, c6in.24xlarge, c6in.32xlarge, m6in.large, m6in.xlarge, m6in.2xlarge, m6in.4xlarge, m6in.8xlarge, m6in.12xlarge, m6in.16xlarge, m6in.24xlarge, m6in.32xlarge, m6idn.large, m6idn.xlarge, m6idn.2xlarge, m6idn.4xlarge, m6idn.8xlarge, m6idn.12xlarge, m6idn.16xlarge, m6idn.24xlarge, m6idn.32xlarge, r6in.large, r6in.xlarge, r6in.2xlarge, r6in.4xlarge, r6in.8xlarge, r6in.12xlarge, r6in.16xlarge, r6in.24xlarge, r6in.32xlarge, r6idn.large, r6idn.xlarge, r6idn.2xlarge, r6idn.4xlarge, r6idn.8xlarge, r6idn.12xlarge, r6idn.16xlarge, r6idn.24xlarge, r6idn.32xlarge, c7g.metal, m7g.medium, m7g.large, m7g.xlarge, m7g.2xlarge, m7g.4xlarge, m7g.8xlarge, m7g.12xlarge, m7g.16xlarge, m7g.metal, r7g.medium, r7g.large, r7g.xlarge, r7g.2xlarge, r7g.4xlarge, r7g.8xlarge, r7g.12xlarge, r7g.16xlarge, r7g.metal, c6in.metal, m6in.metal, m6idn.metal, r6in.metal, r6idn.metal, inf2.xlarge, inf2.8xlarge, inf2.24xlarge, inf2.48xlarge, trn1n.32xlarge, i4g.large, i4g.xlarge, i4g.2xlarge, i4g.4xlarge, i4g.8xlarge, i4g.16xlarge, hpc7g.4xlarge, hpc7g.8xlarge, hpc7g.16xlarge, c7gn.medium, c7gn.large, c7gn.xlarge, c7gn.2xlarge, c7gn.4xlarge, c7gn.8xlarge, c7gn.12xlarge, c7gn.16xlarge, p5.48xlarge, m7i.large, m7i.xlarge, m7i.2xlarge, m7i.4xlarge, m7i.8xlarge, m7i.12xlarge, m7i.16xlarge, m7i.24xlarge, m7i.48xlarge, m7i-flex.large, m7i-flex.xlarge, m7i-flex.2xlarge, m7i-flex.4xlarge, m7i-flex.8xlarge, m7a.medium, m7a.large, m7a.xlarge, m7a.2xlarge, m7a.4xlarge, m7a.8xlarge, m7a.12xlarge, m7a.16xlarge, m7a.24xlarge, m7a.32xlarge, m7a.48xlarge, m7a.metal-48xl, hpc7a.12xlarge, hpc7a.24xlarge, hpc7a.48xlarge, hpc7a.96xlarge, c7gd.medium, c7gd.large, c7gd.xlarge, c7gd.2xlarge, c7gd.4xlarge, c7gd.8xlarge, c7gd.12xlarge, c7gd.16xlarge, m7gd.medium, m7gd.large, m7gd.xlarge, m7gd.2xlarge, m7gd.4xlarge, m7gd.8xlarge, m7gd.12xlarge, m7gd.16xlarge, r7gd.medium, r7gd.large, r7gd.xlarge, r7gd.2xlarge, r7gd.4xlarge, r7gd.8xlarge, r7gd.12xlarge, r7gd.16xlarge, r7a.medium, r7a.large, r7a.xlarge, r7a.2xlarge, r7a.4xlarge, r7a.8xlarge, r7a.12xlarge, r7a.16xlarge, r7a.24xlarge, r7a.32xlarge, r7a.48xlarge, c7i.large, c7i.xlarge, c7i.2xlarge, c7i.4xlarge, c7i.8xlarge, c7i.12xlarge, c7i.16xlarge, c7i.24xlarge, c7i.48xlarge, mac2-m2pro.metal, r7iz.large, r7iz.xlarge, r7iz.2xlarge, r7iz.4xlarge, r7iz.8xlarge, r7iz.12xlarge, r7iz.16xlarge, r7iz.32xlarge, c7a.medium, c7a.large, c7a.xlarge, c7a.2xlarge, c7a.4xlarge, c7a.8xlarge, c7a.12xlarge, c7a.16xlarge, c7a.24xlarge, c7a.32xlarge, c7a.48xlarge, c7a.metal-48xl, r7a.metal-48xl, r7i.large, r7i.xlarge, r7i.2xlarge, r7i.4xlarge, r7i.8xlarge, r7i.12xlarge, r7i.16xlarge, r7i.24xlarge, r7i.48xlarge
328
332
  # ipv_6_address_count: 1,
329
333
  # ipv_6_addresses: [
330
334
  # {
331
335
  # ipv_6_address: "String",
336
+ # is_primary_ipv_6: false,
332
337
  # },
333
338
  # ],
334
339
  # kernel_id: "KernelId",
@@ -347,11 +352,12 @@ module Aws::EC2
347
352
  # tenancy: "default", # accepts default, dedicated, host
348
353
  # spread_domain: "String",
349
354
  # host_resource_group_arn: "String",
355
+ # group_id: "PlacementGroupId",
350
356
  # },
351
357
  # ramdisk_id: "RamdiskId",
352
358
  # security_group_ids: ["SecurityGroupId"],
353
359
  # security_groups: ["SecurityGroupName"],
354
- # user_data: "String",
360
+ # user_data: "RunInstancesUserData",
355
361
  # additional_info: "String",
356
362
  # client_token: "String",
357
363
  # disable_api_termination: false,
@@ -373,6 +379,7 @@ module Aws::EC2
373
379
  # ipv_6_addresses: [
374
380
  # {
375
381
  # ipv_6_address: "String",
382
+ # is_primary_ipv_6: false,
376
383
  # },
377
384
  # ],
378
385
  # network_interface_id: "NetworkInterfaceId",
@@ -400,6 +407,7 @@ module Aws::EC2
400
407
  # },
401
408
  # ],
402
409
  # ipv_6_prefix_count: 1,
410
+ # primary_ipv_6: false,
403
411
  # },
404
412
  # ],
405
413
  # private_ip_address: "String",
@@ -416,7 +424,7 @@ module Aws::EC2
416
424
  # ],
417
425
  # tag_specifications: [
418
426
  # {
419
- # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, dedicated-host, dhcp-options, egress-only-internet-gateway, elastic-ip, elastic-gpu, export-image-task, export-instance-task, fleet, fpga-image, host-reservation, image, import-image-task, import-snapshot-task, instance, instance-event-window, internet-gateway, ipv4pool-ec2, ipv6pool-ec2, key-pair, launch-template, local-gateway, local-gateway-route-table, local-gateway-virtual-interface, local-gateway-virtual-interface-group, local-gateway-route-table-vpc-association, local-gateway-route-table-virtual-interface-group-association, natgateway, network-acl, network-interface, network-insights-analysis, network-insights-path, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-connect-peer, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-endpoint, vpc-endpoint-service, vpc-peering-connection, vpn-connection, vpn-gateway, vpc-flow-log
427
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, dedicated-host, dhcp-options, egress-only-internet-gateway, elastic-ip, elastic-gpu, export-image-task, export-instance-task, fleet, fpga-image, host-reservation, image, import-image-task, import-snapshot-task, instance, instance-event-window, internet-gateway, ipam, ipam-pool, ipam-scope, ipv4pool-ec2, ipv6pool-ec2, key-pair, launch-template, local-gateway, local-gateway-route-table, local-gateway-virtual-interface, local-gateway-virtual-interface-group, local-gateway-route-table-vpc-association, local-gateway-route-table-virtual-interface-group-association, natgateway, network-acl, network-interface, network-insights-analysis, network-insights-path, network-insights-access-scope, network-insights-access-scope-analysis, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, snapshot, spot-fleet-request, spot-instances-request, subnet, subnet-cidr-reservation, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-connect-peer, transit-gateway-multicast-domain, transit-gateway-policy-table, transit-gateway-route-table, transit-gateway-route-table-announcement, volume, vpc, vpc-endpoint, vpc-endpoint-connection, vpc-endpoint-service, vpc-endpoint-service-permission, vpc-peering-connection, vpn-connection, vpn-gateway, vpc-flow-log, capacity-reservation-fleet, traffic-mirror-filter-rule, vpc-endpoint-connection-device-type, verified-access-instance, verified-access-group, verified-access-endpoint, verified-access-policy, verified-access-trust-provider, vpn-connection-device-type, vpc-block-public-access-exclusion, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint
420
428
  # tags: [
421
429
  # {
422
430
  # key: "String",
@@ -431,7 +439,7 @@ module Aws::EC2
431
439
  # version: "String",
432
440
  # },
433
441
  # instance_market_options: {
434
- # market_type: "spot", # accepts spot
442
+ # market_type: "spot", # accepts spot, capacity-block
435
443
  # spot_options: {
436
444
  # max_price: "String",
437
445
  # spot_instance_type: "one-time", # accepts one-time, persistent
@@ -446,6 +454,7 @@ module Aws::EC2
446
454
  # cpu_options: {
447
455
  # core_count: 1,
448
456
  # threads_per_core: 1,
457
+ # amd_sev_snp: "enabled", # accepts enabled, disabled
449
458
  # },
450
459
  # capacity_reservation_specification: {
451
460
  # capacity_reservation_preference: "open", # accepts open, none
@@ -467,6 +476,7 @@ module Aws::EC2
467
476
  # http_put_response_hop_limit: 1,
468
477
  # http_endpoint: "disabled", # accepts disabled, enabled
469
478
  # http_protocol_ipv_6: "disabled", # accepts disabled, enabled
479
+ # instance_metadata_tags: "disabled", # accepts disabled, enabled
470
480
  # },
471
481
  # enclave_options: {
472
482
  # enabled: false,
@@ -476,6 +486,11 @@ module Aws::EC2
476
486
  # enable_resource_name_dns_a_record: false,
477
487
  # enable_resource_name_dns_aaaa_record: false,
478
488
  # },
489
+ # maintenance_options: {
490
+ # auto_recovery: "disabled", # accepts disabled, default
491
+ # },
492
+ # disable_api_stop: false,
493
+ # enable_primary_ipv_6: false,
479
494
  # })
480
495
  # @param [Hash] options ({})
481
496
  # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
@@ -494,27 +509,24 @@ module Aws::EC2
494
509
  # The instance type. For more information, see [Instance types][1] in
495
510
  # the *Amazon EC2 User Guide*.
496
511
  #
497
- # Default: `m1.small`
498
- #
499
512
  #
500
513
  #
501
514
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
502
515
  # @option options [Integer] :ipv_6_address_count
503
- # \[EC2-VPC\] The number of IPv6 addresses to associate with the primary
504
- # network interface. Amazon EC2 chooses the IPv6 addresses from the
505
- # range of your subnet. You cannot specify this option and the option to
506
- # assign specific IPv6 addresses in the same request. You can specify
507
- # this option if you've specified a minimum number of instances to
508
- # launch.
516
+ # The number of IPv6 addresses to associate with the primary network
517
+ # interface. Amazon EC2 chooses the IPv6 addresses from the range of
518
+ # your subnet. You cannot specify this option and the option to assign
519
+ # specific IPv6 addresses in the same request. You can specify this
520
+ # option if you've specified a minimum number of instances to launch.
509
521
  #
510
522
  # You cannot specify this option and the network interfaces option in
511
523
  # the same request.
512
524
  # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
513
- # \[EC2-VPC\] The IPv6 addresses from the range of the subnet to
514
- # associate with the primary network interface. You cannot specify this
515
- # option and the option to assign a number of IPv6 addresses in the same
516
- # request. You cannot specify this option if you've specified a minimum
517
- # number of instances to launch.
525
+ # The IPv6 addresses from the range of the subnet to associate with the
526
+ # primary network interface. You cannot specify this option and the
527
+ # option to assign a number of IPv6 addresses in the same request. You
528
+ # cannot specify this option if you've specified a minimum number of
529
+ # instances to launch.
518
530
  #
519
531
  # You cannot specify this option and the network interfaces option in
520
532
  # the same request.
@@ -594,20 +606,19 @@ module Aws::EC2
594
606
  #
595
607
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html
596
608
  # @option options [Array<String>] :security_groups
597
- # \[EC2-Classic, default VPC\] The names of the security groups. For a
598
- # nondefault VPC, you must use security group IDs instead.
609
+ # \[Default VPC\] The names of the security groups.
599
610
  #
600
611
  # If you specify a network interface, you must specify any security
601
612
  # groups as part of the network interface.
602
613
  #
603
614
  # Default: Amazon EC2 uses the default security group.
604
615
  # @option options [String] :user_data
605
- # The user data to make available to the instance. For more information,
606
- # see [Run commands on your Linux instance at launch][1] and [Run
607
- # commands on your Windows instance at launch][2]. If you are using a
608
- # command line tool, base64-encoding is performed for you, and you can
609
- # load the text from a file. Otherwise, you must provide base64-encoded
610
- # text. User data is limited to 16 KB.
616
+ # The user data script to make available to the instance. For more
617
+ # information, see [Run commands on your Linux instance at launch][1]
618
+ # and [Run commands on your Windows instance at launch][2]. If you are
619
+ # using a command line tool, base64-encoding is performed for you, and
620
+ # you can load the text from a file. Otherwise, you must provide
621
+ # base64-encoded text. User data is limited to 16 KB.
611
622
  #
612
623
  #
613
624
  #
@@ -668,8 +679,8 @@ module Aws::EC2
668
679
  # a network interface, you must specify any security groups and subnets
669
680
  # as part of the network interface.
670
681
  # @option options [String] :private_ip_address
671
- # \[EC2-VPC\] The primary IPv4 address. You must specify a value from
672
- # the IPv4 address range of the subnet.
682
+ # The primary IPv4 address. You must specify a value from the IPv4
683
+ # address range of the subnet.
673
684
  #
674
685
  # Only one private IP address can be designated as primary. You can't
675
686
  # specify this option if you've specified the option to designate a
@@ -696,11 +707,34 @@ module Aws::EC2
696
707
  #
697
708
  # You cannot specify accelerators from different generations in the same
698
709
  # request.
710
+ #
711
+ # <note markdown="1"> Starting April 15, 2023, Amazon Web Services will not onboard new
712
+ # customers to Amazon Elastic Inference (EI), and will help current
713
+ # customers migrate their workloads to options that offer better price
714
+ # and performance. After April 15, 2023, new customers will not be able
715
+ # to launch instances with Amazon EI accelerators in Amazon SageMaker,
716
+ # Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI
717
+ # at least once during the past 30-day period are considered current
718
+ # customers and will be able to continue using the service.
719
+ #
720
+ # </note>
699
721
  # @option options [Array<Types::TagSpecification>] :tag_specifications
700
- # The tags to apply to the resources during launch. You can only tag
701
- # instances and volumes on launch. The specified tags are applied to all
702
- # instances or volumes that are created during launch. To tag a resource
703
- # after it has been created, see [CreateTags][1].
722
+ # The tags to apply to the resources that are created during instance
723
+ # launch.
724
+ #
725
+ # You can specify tags for the following resources only:
726
+ #
727
+ # * Instances
728
+ #
729
+ # * Volumes
730
+ #
731
+ # * Elastic graphics
732
+ #
733
+ # * Spot Instance requests
734
+ #
735
+ # * Network interfaces
736
+ #
737
+ # To tag a resource after it has been created, see [CreateTags][1].
704
738
  #
705
739
  #
706
740
  #
@@ -723,7 +757,8 @@ module Aws::EC2
723
757
  # information, see [Burstable performance instances][2] in the *Amazon
724
758
  # EC2 User Guide*.
725
759
  #
726
- # Default: `standard` (T2 instances) or `unlimited` (T3/T3a instances)
760
+ # Default: `standard` (T2 instances) or `unlimited` (T3/T3a/T4g
761
+ # instances)
727
762
  #
728
763
  # For T3 instances with `host` tenancy, only `standard` is supported.
729
764
  #
@@ -745,16 +780,18 @@ module Aws::EC2
745
780
  # Capacity Reservation that has matching attributes (instance type,
746
781
  # platform, Availability Zone).
747
782
  # @option options [Types::HibernationOptionsRequest] :hibernation_options
748
- # Indicates whether an instance is enabled for hibernation. For more
749
- # information, see [Hibernate your instance][1] in the *Amazon EC2 User
750
- # Guide*.
783
+ # Indicates whether an instance is enabled for hibernation. This
784
+ # parameter is valid only if the instance meets the [hibernation
785
+ # prerequisites][1]. For more information, see [Hibernate your
786
+ # instance][2] in the *Amazon EC2 User Guide*.
751
787
  #
752
788
  # You can't enable hibernation and Amazon Web Services Nitro Enclaves
753
789
  # on the same instance.
754
790
  #
755
791
  #
756
792
  #
757
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html
793
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html
794
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html
758
795
  # @option options [Array<Types::LicenseConfigurationRequest>] :license_specifications
759
796
  # The license configurations.
760
797
  # @option options [Types::InstanceMetadataOptionsRequest] :metadata_options
@@ -766,9 +803,9 @@ module Aws::EC2
766
803
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
767
804
  # @option options [Types::EnclaveOptionsRequest] :enclave_options
768
805
  # Indicates whether the instance is enabled for Amazon Web Services
769
- # Nitro Enclaves. For more information, see [ What is Amazon Web
770
- # Services Nitro Enclaves?][1] in the *Amazon Web Services Nitro
771
- # Enclaves User Guide*.
806
+ # Nitro Enclaves. For more information, see [What is Amazon Web Services
807
+ # Nitro Enclaves?][1] in the *Amazon Web Services Nitro Enclaves User
808
+ # Guide*.
772
809
  #
773
810
  # You can't enable Amazon Web Services Nitro Enclaves and hibernation
774
811
  # on the same instance.
@@ -778,12 +815,40 @@ module Aws::EC2
778
815
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
779
816
  # @option options [Types::PrivateDnsNameOptionsRequest] :private_dns_name_options
780
817
  # The options for the instance hostname. The default values are
781
- # inherited from the subnet.
818
+ # inherited from the subnet. Applies only if creating a network
819
+ # interface, not attaching an existing one.
820
+ # @option options [Types::InstanceMaintenanceOptionsRequest] :maintenance_options
821
+ # The maintenance and recovery options for the instance.
822
+ # @option options [Boolean] :disable_api_stop
823
+ # Indicates whether an instance is enabled for stop protection. For more
824
+ # information, see [Stop protection][1].
825
+ #
826
+ #
827
+ #
828
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection
829
+ # @option options [Boolean] :enable_primary_ipv_6
830
+ # If you’re launching an instance into a dual-stack or IPv6-only subnet,
831
+ # you can enable assigning a primary IPv6 address. A primary IPv6
832
+ # address is an IPv6 GUA address associated with an ENI that you have
833
+ # enabled to use a primary IPv6 address. Use this option if an instance
834
+ # relies on its IPv6 address not changing. When you launch the instance,
835
+ # Amazon Web Services will automatically assign an IPv6 address
836
+ # associated with the ENI attached to your instance to be the primary
837
+ # IPv6 address. Once you enable an IPv6 GUA address to be a primary
838
+ # IPv6, you cannot disable it. When you enable an IPv6 GUA address to be
839
+ # a primary IPv6, the first IPv6 GUA will be made the primary IPv6
840
+ # address until the instance is terminated or the network interface is
841
+ # detached. If you have multiple IPv6 addresses associated with an ENI
842
+ # attached to your instance and you enable a primary IPv6 address, the
843
+ # first IPv6 GUA address associated with the ENI becomes the primary
844
+ # IPv6 address.
782
845
  # @return [Instance::Collection]
783
846
  def create_instances(options = {})
784
847
  batch = []
785
848
  options = options.merge(subnet_id: @id)
786
- resp = @client.run_instances(options)
849
+ resp = Aws::Plugins::UserAgent.feature('resource') do
850
+ @client.run_instances(options)
851
+ end
787
852
  resp.data.instances.each do |i|
788
853
  batch << Instance.new(
789
854
  id: i.instance_id,
@@ -804,6 +869,7 @@ module Aws::EC2
804
869
  # ipv_6_addresses: [
805
870
  # {
806
871
  # ipv_6_address: "String",
872
+ # is_primary_ipv_6: false,
807
873
  # },
808
874
  # ],
809
875
  # private_ip_address: "String",
@@ -829,7 +895,7 @@ module Aws::EC2
829
895
  # interface_type: "efa", # accepts efa, branch, trunk
830
896
  # tag_specifications: [
831
897
  # {
832
- # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, dedicated-host, dhcp-options, egress-only-internet-gateway, elastic-ip, elastic-gpu, export-image-task, export-instance-task, fleet, fpga-image, host-reservation, image, import-image-task, import-snapshot-task, instance, instance-event-window, internet-gateway, ipv4pool-ec2, ipv6pool-ec2, key-pair, launch-template, local-gateway, local-gateway-route-table, local-gateway-virtual-interface, local-gateway-virtual-interface-group, local-gateway-route-table-vpc-association, local-gateway-route-table-virtual-interface-group-association, natgateway, network-acl, network-interface, network-insights-analysis, network-insights-path, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-connect-peer, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-endpoint, vpc-endpoint-service, vpc-peering-connection, vpn-connection, vpn-gateway, vpc-flow-log
898
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, dedicated-host, dhcp-options, egress-only-internet-gateway, elastic-ip, elastic-gpu, export-image-task, export-instance-task, fleet, fpga-image, host-reservation, image, import-image-task, import-snapshot-task, instance, instance-event-window, internet-gateway, ipam, ipam-pool, ipam-scope, ipv4pool-ec2, ipv6pool-ec2, key-pair, launch-template, local-gateway, local-gateway-route-table, local-gateway-virtual-interface, local-gateway-virtual-interface-group, local-gateway-route-table-vpc-association, local-gateway-route-table-virtual-interface-group-association, natgateway, network-acl, network-interface, network-insights-analysis, network-insights-path, network-insights-access-scope, network-insights-access-scope-analysis, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, snapshot, spot-fleet-request, spot-instances-request, subnet, subnet-cidr-reservation, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-connect-peer, transit-gateway-multicast-domain, transit-gateway-policy-table, transit-gateway-route-table, transit-gateway-route-table-announcement, volume, vpc, vpc-endpoint, vpc-endpoint-connection, vpc-endpoint-service, vpc-endpoint-service-permission, vpc-peering-connection, vpn-connection, vpn-gateway, vpc-flow-log, capacity-reservation-fleet, traffic-mirror-filter-rule, vpc-endpoint-connection-device-type, verified-access-instance, verified-access-group, verified-access-endpoint, verified-access-policy, verified-access-trust-provider, vpn-connection-device-type, vpc-block-public-access-exclusion, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint
833
899
  # tags: [
834
900
  # {
835
901
  # key: "String",
@@ -839,6 +905,7 @@ module Aws::EC2
839
905
  # },
840
906
  # ],
841
907
  # client_token: "String",
908
+ # enable_primary_ipv_6: false,
842
909
  # })
843
910
  # @param [Hash] options ({})
844
911
  # @option options [String] :description
@@ -853,13 +920,20 @@ module Aws::EC2
853
920
  # @option options [Integer] :ipv_6_address_count
854
921
  # The number of IPv6 addresses to assign to a network interface. Amazon
855
922
  # EC2 automatically selects the IPv6 addresses from the subnet range.
856
- # You can't use this option if specifying specific IPv6 addresses. If
857
- # your subnet has the `AssignIpv6AddressOnCreation` attribute set to
858
- # `true`, you can specify `0` to override this setting.
923
+ #
924
+ # You can't specify a count of IPv6 addresses using this parameter if
925
+ # you've specified one of the following: specific IPv6 addresses,
926
+ # specific IPv6 prefixes, or a count of IPv6 prefixes.
927
+ #
928
+ # If your subnet has the `AssignIpv6AddressOnCreation` attribute set,
929
+ # you can override that setting by specifying 0 as the IPv6 address
930
+ # count.
859
931
  # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
860
- # One or more specific IPv6 addresses from the IPv6 CIDR block range of
861
- # your subnet. You can't use this option if you're specifying a number
862
- # of IPv6 addresses.
932
+ # The IPv6 addresses from the IPv6 CIDR block range of your subnet.
933
+ #
934
+ # You can't specify IPv6 addresses using this parameter if you've
935
+ # specified one of the following: a count of IPv6 addresses, specific
936
+ # IPv6 prefixes, or a count of IPv6 prefixes.
863
937
  # @option options [String] :private_ip_address
864
938
  # The primary private IPv4 address of the network interface. If you
865
939
  # don't specify an IPv4 address, Amazon EC2 selects one for you from
@@ -867,7 +941,11 @@ module Aws::EC2
867
941
  # cannot indicate any IP addresses specified in `privateIpAddresses` as
868
942
  # primary (only one IP address can be designated as primary).
869
943
  # @option options [Array<Types::PrivateIpAddressSpecification>] :private_ip_addresses
870
- # One or more private IPv4 addresses.
944
+ # The private IPv4 addresses.
945
+ #
946
+ # You can't specify private IPv4 addresses if you've specified one of
947
+ # the following: a count of private IPv4 addresses, specific IPv4
948
+ # prefixes, or a count of IPv4 prefixes.
871
949
  # @option options [Integer] :secondary_private_ip_address_count
872
950
  # The number of secondary private IPv4 addresses to assign to a network
873
951
  # interface. When you specify a number of secondary IPv4 addresses,
@@ -875,40 +953,39 @@ module Aws::EC2
875
953
  # range. You can't specify this option and specify more than one
876
954
  # private IP address using `privateIpAddresses`.
877
955
  #
878
- # The number of IP addresses you can assign to a network interface
879
- # varies by instance type. For more information, see [IP Addresses Per
880
- # ENI Per Instance Type][1] in the *Amazon Virtual Private Cloud User
881
- # Guide*.
882
- #
883
- #
884
- #
885
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
956
+ # You can't specify a count of private IPv4 addresses if you've
957
+ # specified one of the following: specific private IPv4 addresses,
958
+ # specific IPv4 prefixes, or a count of IPv4 prefixes.
886
959
  # @option options [Array<Types::Ipv4PrefixSpecificationRequest>] :ipv_4_prefixes
887
- # One or more IPv4 prefixes assigned to the network interface. You
888
- # cannot use this option if you use the `Ipv4PrefixCount` option.
960
+ # The IPv4 prefixes assigned to the network interface.
961
+ #
962
+ # You can't specify IPv4 prefixes if you've specified one of the
963
+ # following: a count of IPv4 prefixes, specific private IPv4 addresses,
964
+ # or a count of private IPv4 addresses.
889
965
  # @option options [Integer] :ipv_4_prefix_count
890
966
  # The number of IPv4 prefixes that Amazon Web Services automatically
891
- # assigns to the network interface. You cannot use this option if you
892
- # use the `Ipv4 Prefixes` option.
967
+ # assigns to the network interface.
968
+ #
969
+ # You can't specify a count of IPv4 prefixes if you've specified one
970
+ # of the following: specific IPv4 prefixes, specific private IPv4
971
+ # addresses, or a count of private IPv4 addresses.
893
972
  # @option options [Array<Types::Ipv6PrefixSpecificationRequest>] :ipv_6_prefixes
894
- # One or more IPv6 prefixes assigned to the network interface. You
895
- # cannot use this option if you use the `Ipv6PrefixCount` option.
973
+ # The IPv6 prefixes assigned to the network interface.
974
+ #
975
+ # You can't specify IPv6 prefixes if you've specified one of the
976
+ # following: a count of IPv6 prefixes, specific IPv6 addresses, or a
977
+ # count of IPv6 addresses.
896
978
  # @option options [Integer] :ipv_6_prefix_count
897
979
  # The number of IPv6 prefixes that Amazon Web Services automatically
898
- # assigns to the network interface. You cannot use this option if you
899
- # use the `Ipv6Prefixes` option.
900
- # @option options [String] :interface_type
901
- # Indicates the type of network interface. To create an Elastic Fabric
902
- # Adapter (EFA), specify `efa`. For more information, see [ Elastic
903
- # Fabric Adapter][1] in the *Amazon Elastic Compute Cloud User Guide*.
904
- # To create a trunk network interface, specify `efa`. For more
905
- # information, see [ Network interface trunking][2] in the *Amazon
906
- # Elastic Compute Cloud User Guide*.
907
- #
980
+ # assigns to the network interface.
908
981
  #
982
+ # You can't specify a count of IPv6 prefixes if you've specified one
983
+ # of the following: specific IPv6 prefixes, specific IPv6 addresses, or
984
+ # a count of IPv6 addresses.
985
+ # @option options [String] :interface_type
986
+ # The type of network interface. The default is `interface`.
909
987
  #
910
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html
911
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/eni-trunking.html
988
+ # The only supported values are `interface`, `efa`, and `trunk`.
912
989
  # @option options [Array<Types::TagSpecification>] :tag_specifications
913
990
  # The tags to apply to the new network interface.
914
991
  # @option options [String] :client_token
@@ -919,10 +996,28 @@ module Aws::EC2
919
996
  #
920
997
  #
921
998
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
999
+ # @option options [Boolean] :enable_primary_ipv_6
1000
+ # If you’re creating a network interface in a dual-stack or IPv6-only
1001
+ # subnet, you have the option to assign a primary IPv6 IP address. A
1002
+ # primary IPv6 address is an IPv6 GUA address associated with an ENI
1003
+ # that you have enabled to use a primary IPv6 address. Use this option
1004
+ # if the instance that this ENI will be attached to relies on its IPv6
1005
+ # address not changing. Amazon Web Services will automatically assign an
1006
+ # IPv6 address associated with the ENI attached to your instance to be
1007
+ # the primary IPv6 address. Once you enable an IPv6 GUA address to be a
1008
+ # primary IPv6, you cannot disable it. When you enable an IPv6 GUA
1009
+ # address to be a primary IPv6, the first IPv6 GUA will be made the
1010
+ # primary IPv6 address until the instance is terminated or the network
1011
+ # interface is detached. If you have multiple IPv6 addresses associated
1012
+ # with an ENI attached to your instance and you enable a primary IPv6
1013
+ # address, the first IPv6 GUA address associated with the ENI becomes
1014
+ # the primary IPv6 address.
922
1015
  # @return [NetworkInterface]
923
1016
  def create_network_interface(options = {})
924
1017
  options = options.merge(subnet_id: @id)
925
- resp = @client.create_network_interface(options)
1018
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1019
+ @client.create_network_interface(options)
1020
+ end
926
1021
  NetworkInterface.new(
927
1022
  id: resp.data.network_interface.network_interface_id,
928
1023
  data: resp.data.network_interface,
@@ -955,7 +1050,9 @@ module Aws::EC2
955
1050
  def create_tags(options = {})
956
1051
  batch = []
957
1052
  options = Aws::Util.deep_merge(options, resources: [@id])
958
- resp = @client.create_tags(options)
1053
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1054
+ @client.create_tags(options)
1055
+ end
959
1056
  options[:tags].each do |t|
960
1057
  batch << Tag.new(
961
1058
  resource_id: @id,
@@ -1000,7 +1097,9 @@ module Aws::EC2
1000
1097
  def delete_tags(options = {})
1001
1098
  batch = []
1002
1099
  options = Aws::Util.deep_merge(options, resources: [@id])
1003
- resp = @client.delete_tags(options)
1100
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1101
+ @client.delete_tags(options)
1102
+ end
1004
1103
  options[:tags].each do |t|
1005
1104
  batch << Tag.new(
1006
1105
  resource_id: @id,
@@ -1026,7 +1125,9 @@ module Aws::EC2
1026
1125
  # @return [EmptyStructure]
1027
1126
  def delete(options = {})
1028
1127
  options = options.merge(subnet_id: @id)
1029
- resp = @client.delete_subnet(options)
1128
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1129
+ @client.delete_subnet(options)
1130
+ end
1030
1131
  resp.data
1031
1132
  end
1032
1133
 
@@ -1058,7 +1159,7 @@ module Aws::EC2
1058
1159
  #
1059
1160
  # * `block-device-mapping.attach-time` - The attach time for an EBS
1060
1161
  # volume mapped to the instance, for example,
1061
- # `2010-09-15T17:15:20.000Z`.
1162
+ # `2022-09-15T17:15:20.000Z`.
1062
1163
  #
1063
1164
  # * `block-device-mapping.delete-on-termination` - A Boolean that
1064
1165
  # indicates whether the EBS volume is deleted on instance termination.
@@ -1071,16 +1172,38 @@ module Aws::EC2
1071
1172
  #
1072
1173
  # * `block-device-mapping.volume-id` - The volume ID of the EBS volume.
1073
1174
  #
1175
+ # * `boot-mode` - The boot mode that was specified by the AMI
1176
+ # (`legacy-bios` \| `uefi` \| `uefi-preferred`).
1177
+ #
1178
+ # * `capacity-reservation-id` - The ID of the Capacity Reservation into
1179
+ # which the instance was launched.
1180
+ #
1181
+ # * `capacity-reservation-specification.capacity-reservation-preference`
1182
+ # - The instance's Capacity Reservation preference (`open` \|
1183
+ # `none`).
1184
+ #
1185
+ # * `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id`
1186
+ # - The ID of the targeted Capacity Reservation.
1187
+ #
1188
+ # * `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn`
1189
+ # - The ARN of the targeted Capacity Reservation group.
1190
+ #
1074
1191
  # * `client-token` - The idempotency token you provided when you
1075
1192
  # launched the instance.
1076
1193
  #
1194
+ # * `current-instance-boot-mode` - The boot mode that is used to launch
1195
+ # the instance at launch or start (`legacy-bios` \| `uefi`).
1196
+ #
1077
1197
  # * `dns-name` - The public DNS name of the instance.
1078
1198
  #
1079
- # * `group-id` - The ID of the security group for the instance.
1080
- # EC2-Classic only.
1199
+ # * `ebs-optimized` - A Boolean that indicates whether the instance is
1200
+ # optimized for Amazon EBS I/O.
1081
1201
  #
1082
- # * `group-name` - The name of the security group for the instance.
1083
- # EC2-Classic only.
1202
+ # * `ena-support` - A Boolean that indicates whether the instance is
1203
+ # enabled for enhanced networking with ENA.
1204
+ #
1205
+ # * `enclave-options.enabled` - A Boolean that indicates whether the
1206
+ # instance is enabled for Amazon Web Services Nitro Enclaves.
1084
1207
  #
1085
1208
  # * `hibernation-options.configured` - A Boolean that indicates whether
1086
1209
  # the instance is enabled for hibernation. A value of `true` means
@@ -1095,6 +1218,12 @@ module Aws::EC2
1095
1218
  # * `iam-instance-profile.arn` - The instance profile associated with
1096
1219
  # the instance. Specified as an ARN.
1097
1220
  #
1221
+ # * `iam-instance-profile.id` - The instance profile associated with the
1222
+ # instance. Specified as an ID.
1223
+ #
1224
+ # * `iam-instance-profile.name` - The instance profile associated with
1225
+ # the instance. Specified as an name.
1226
+ #
1098
1227
  # * `image-id` - The ID of the image used to launch the instance.
1099
1228
  #
1100
1229
  # * `instance-id` - The ID of the instance.
@@ -1121,6 +1250,8 @@ module Aws::EC2
1121
1250
  #
1122
1251
  # * `ip-address` - The public IPv4 address of the instance.
1123
1252
  #
1253
+ # * `ipv6-address` - The IPv6 address of the instance.
1254
+ #
1124
1255
  # * `kernel-id` - The kernel ID.
1125
1256
  #
1126
1257
  # * `key-name` - The name of the key pair used when the instance was
@@ -1135,38 +1266,65 @@ module Aws::EC2
1135
1266
  # example, `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`),
1136
1267
  # for example, `2021-09-29T*`, which matches an entire day.
1137
1268
  #
1138
- # * `metadata-options.http-tokens` - The metadata request authorization
1139
- # state (`optional` \| `required`)
1269
+ # * `maintenance-options.auto-recovery` - The current automatic recovery
1270
+ # behavior of the instance (`disabled` \| `default`).
1140
1271
  #
1141
- # * `metadata-options.http-put-response-hop-limit` - The http metadata
1272
+ # * `metadata-options.http-endpoint` - The status of access to the HTTP
1273
+ # metadata endpoint on your instance (`enabled` \| `disabled`)
1274
+ #
1275
+ # * `metadata-options.http-protocol-ipv4` - Indicates whether the IPv4
1276
+ # endpoint is enabled (`disabled` \| `enabled`).
1277
+ #
1278
+ # * `metadata-options.http-protocol-ipv6` - Indicates whether the IPv6
1279
+ # endpoint is enabled (`disabled` \| `enabled`).
1280
+ #
1281
+ # * `metadata-options.http-put-response-hop-limit` - The HTTP metadata
1142
1282
  # request put response hop limit (integer, possible values `1` to
1143
1283
  # `64`)
1144
1284
  #
1145
- # * `metadata-options.http-endpoint` - Enable or disable metadata access
1146
- # on http endpoint (`enabled` \| `disabled`)
1285
+ # * `metadata-options.http-tokens` - The metadata request authorization
1286
+ # state (`optional` \| `required`)
1287
+ #
1288
+ # * `metadata-options.instance-metadata-tags` - The status of access to
1289
+ # instance tags from the instance metadata (`enabled` \| `disabled`)
1290
+ #
1291
+ # * `metadata-options.state` - The state of the metadata option changes
1292
+ # (`pending` \| `applied`).
1147
1293
  #
1148
1294
  # * `monitoring-state` - Indicates whether detailed monitoring is
1149
1295
  # enabled (`disabled` \| `enabled`).
1150
1296
  #
1151
- # * `network-interface.addresses.private-ip-address` - The private IPv4
1152
- # address associated with the network interface.
1297
+ # * `network-interface.addresses.association.allocation-id` - The
1298
+ # allocation ID.
1153
1299
  #
1154
- # * `network-interface.addresses.primary` - Specifies whether the IPv4
1155
- # address of the network interface is the primary private IPv4
1156
- # address.
1300
+ # * `network-interface.addresses.association.association-id` - The
1301
+ # association ID.
1302
+ #
1303
+ # * `network-interface.addresses.association.carrier-ip` - The carrier
1304
+ # IP address.
1305
+ #
1306
+ # * `network-interface.addresses.association.customer-owned-ip` - The
1307
+ # customer-owned IP address.
1308
+ #
1309
+ # * `network-interface.addresses.association.ip-owner-id` - The owner ID
1310
+ # of the private IPv4 address associated with the network interface.
1311
+ #
1312
+ # * `network-interface.addresses.association.public-dns-name` - The
1313
+ # public DNS name.
1157
1314
  #
1158
1315
  # * `network-interface.addresses.association.public-ip` - The ID of the
1159
1316
  # association of an Elastic IP address (IPv4) with a network
1160
1317
  # interface.
1161
1318
  #
1162
- # * `network-interface.addresses.association.ip-owner-id` - The owner ID
1163
- # of the private IPv4 address associated with the network interface.
1319
+ # * `network-interface.addresses.primary` - Specifies whether the IPv4
1320
+ # address of the network interface is the primary private IPv4
1321
+ # address.
1164
1322
  #
1165
- # * `network-interface.association.public-ip` - The address of the
1166
- # Elastic IP address (IPv4) bound to the network interface.
1323
+ # * `network-interface.addresses.private-dns-name` - The private DNS
1324
+ # name.
1167
1325
  #
1168
- # * `network-interface.association.ip-owner-id` - The owner of the
1169
- # Elastic IP address (IPv4) associated with the network interface.
1326
+ # * `network-interface.addresses.private-ip-address` - The private IPv4
1327
+ # address associated with the network interface.
1170
1328
  #
1171
1329
  # * `network-interface.association.allocation-id` - The allocation ID
1172
1330
  # returned when you allocated the Elastic IP address (IPv4) for your
@@ -1176,30 +1334,52 @@ module Aws::EC2
1176
1334
  # returned when the network interface was associated with an IPv4
1177
1335
  # address.
1178
1336
  #
1337
+ # * `network-interface.association.carrier-ip` - The customer-owned IP
1338
+ # address.
1339
+ #
1340
+ # * `network-interface.association.customer-owned-ip` - The
1341
+ # customer-owned IP address.
1342
+ #
1343
+ # * `network-interface.association.ip-owner-id` - The owner of the
1344
+ # Elastic IP address (IPv4) associated with the network interface.
1345
+ #
1346
+ # * `network-interface.association.public-dns-name` - The public DNS
1347
+ # name.
1348
+ #
1349
+ # * `network-interface.association.public-ip` - The address of the
1350
+ # Elastic IP address (IPv4) bound to the network interface.
1351
+ #
1352
+ # * `network-interface.attachment.attach-time` - The time that the
1353
+ # network interface was attached to an instance.
1354
+ #
1179
1355
  # * `network-interface.attachment.attachment-id` - The ID of the
1180
1356
  # interface attachment.
1181
1357
  #
1358
+ # * `network-interface.attachment.delete-on-termination` - Specifies
1359
+ # whether the attachment is deleted when an instance is terminated.
1360
+ #
1361
+ # * `network-interface.attachment.device-index` - The device index to
1362
+ # which the network interface is attached.
1363
+ #
1182
1364
  # * `network-interface.attachment.instance-id` - The ID of the instance
1183
1365
  # to which the network interface is attached.
1184
1366
  #
1185
1367
  # * `network-interface.attachment.instance-owner-id` - The owner ID of
1186
1368
  # the instance to which the network interface is attached.
1187
1369
  #
1188
- # * `network-interface.attachment.device-index` - The device index to
1189
- # which the network interface is attached.
1370
+ # * `network-interface.attachment.network-card-index` - The index of the
1371
+ # network card.
1190
1372
  #
1191
1373
  # * `network-interface.attachment.status` - The status of the attachment
1192
1374
  # (`attaching` \| `attached` \| `detaching` \| `detached`).
1193
1375
  #
1194
- # * `network-interface.attachment.attach-time` - The time that the
1195
- # network interface was attached to an instance.
1196
- #
1197
- # * `network-interface.attachment.delete-on-termination` - Specifies
1198
- # whether the attachment is deleted when an instance is terminated.
1199
- #
1200
1376
  # * `network-interface.availability-zone` - The Availability Zone for
1201
1377
  # the network interface.
1202
1378
  #
1379
+ # * `network-interface.deny-all-igw-traffic` - A Boolean that indicates
1380
+ # whether a network interface with an IPv6 address is unreachable from
1381
+ # the public internet.
1382
+ #
1203
1383
  # * `network-interface.description` - The description of the network
1204
1384
  # interface.
1205
1385
  #
@@ -1209,21 +1389,42 @@ module Aws::EC2
1209
1389
  # * `network-interface.group-name` - The name of a security group
1210
1390
  # associated with the network interface.
1211
1391
  #
1392
+ # * `network-interface.ipv4-prefixes.ipv4-prefix` - The IPv4 prefixes
1393
+ # that are assigned to the network interface.
1394
+ #
1395
+ # * `network-interface.ipv6-address` - The IPv6 address associated with
1396
+ # the network interface.
1397
+ #
1212
1398
  # * `network-interface.ipv6-addresses.ipv6-address` - The IPv6 address
1213
1399
  # associated with the network interface.
1214
1400
  #
1401
+ # * `network-interface.ipv6-addresses.is-primary-ipv6` - A Boolean that
1402
+ # indicates whether this is the primary IPv6 address.
1403
+ #
1404
+ # * `network-interface.ipv6-native` - A Boolean that indicates whether
1405
+ # this is an IPv6 only network interface.
1406
+ #
1407
+ # * `network-interface.ipv6-prefixes.ipv6-prefix` - The IPv6 prefix
1408
+ # assigned to the network interface.
1409
+ #
1215
1410
  # * `network-interface.mac-address` - The MAC address of the network
1216
1411
  # interface.
1217
1412
  #
1218
1413
  # * `network-interface.network-interface-id` - The ID of the network
1219
1414
  # interface.
1220
1415
  #
1416
+ # * `network-interface.outpost-arn` - The ARN of the Outpost.
1417
+ #
1221
1418
  # * `network-interface.owner-id` - The ID of the owner of the network
1222
1419
  # interface.
1223
1420
  #
1224
1421
  # * `network-interface.private-dns-name` - The private DNS name of the
1225
1422
  # network interface.
1226
1423
  #
1424
+ # * `network-interface.private-ip-address` - The private IPv4 address.
1425
+ #
1426
+ # * `network-interface.public-dns-name` - The public DNS name.
1427
+ #
1227
1428
  # * `network-interface.requester-id` - The requester ID for the network
1228
1429
  # interface.
1229
1430
  #
@@ -1242,6 +1443,12 @@ module Aws::EC2
1242
1443
  # * `network-interface.subnet-id` - The ID of the subnet for the network
1243
1444
  # interface.
1244
1445
  #
1446
+ # * `network-interface.tag-key` - The key of a tag assigned to the
1447
+ # network interface.
1448
+ #
1449
+ # * `network-interface.tag-value` - The value of a tag assigned to the
1450
+ # network interface.
1451
+ #
1245
1452
  # * `network-interface.vpc-id` - The ID of the VPC for the network
1246
1453
  # interface.
1247
1454
  #
@@ -1259,8 +1466,31 @@ module Aws::EC2
1259
1466
  # * `platform` - The platform. To list only Windows instances, use
1260
1467
  # `windows`.
1261
1468
  #
1469
+ # * `platform-details` - The platform (`Linux/UNIX` \| `Red Hat BYOL
1470
+ # Linux` \| ` Red Hat Enterprise Linux` \| `Red Hat Enterprise Linux
1471
+ # with HA` \| `Red Hat Enterprise Linux with SQL Server Standard and
1472
+ # HA` \| `Red Hat Enterprise Linux with SQL Server Enterprise and HA`
1473
+ # \| `Red Hat Enterprise Linux with SQL Server Standard` \| `Red Hat
1474
+ # Enterprise Linux with SQL Server Web` \| `Red Hat Enterprise Linux
1475
+ # with SQL Server Enterprise` \| `SQL Server Enterprise` \| `SQL
1476
+ # Server Standard` \| `SQL Server Web` \| `SUSE Linux` \| `Ubuntu Pro`
1477
+ # \| `Windows` \| `Windows BYOL` \| `Windows with SQL Server
1478
+ # Enterprise` \| `Windows with SQL Server Standard` \| `Windows with
1479
+ # SQL Server Web`).
1480
+ #
1262
1481
  # * `private-dns-name` - The private IPv4 DNS name of the instance.
1263
1482
  #
1483
+ # * `private-dns-name-options.enable-resource-name-dns-a-record` - A
1484
+ # Boolean that indicates whether to respond to DNS queries for
1485
+ # instance hostnames with DNS A records.
1486
+ #
1487
+ # * `private-dns-name-options.enable-resource-name-dns-aaaa-record` - A
1488
+ # Boolean that indicates whether to respond to DNS queries for
1489
+ # instance hostnames with DNS AAAA records.
1490
+ #
1491
+ # * `private-dns-name-options.hostname-type` - The type of hostname
1492
+ # (`ip-name` \| `resource-name`).
1493
+ #
1264
1494
  # * `private-ip-address` - The private IPv4 address of the instance.
1265
1495
  #
1266
1496
  # * `product-code` - The product code associated with the AMI used to
@@ -1321,6 +1551,21 @@ module Aws::EC2
1321
1551
  # * `tenancy` - The tenancy of an instance (`dedicated` \| `default` \|
1322
1552
  # `host`).
1323
1553
  #
1554
+ # * `tpm-support` - Indicates if the instance is configured for NitroTPM
1555
+ # support (`v2.0`).
1556
+ #
1557
+ # * `usage-operation` - The usage operation value for the instance
1558
+ # (`RunInstances` \| `RunInstances:00g0` \| `RunInstances:0010` \|
1559
+ # `RunInstances:1010` \| `RunInstances:1014` \| `RunInstances:1110` \|
1560
+ # `RunInstances:0014` \| `RunInstances:0210` \| `RunInstances:0110` \|
1561
+ # `RunInstances:0100` \| `RunInstances:0004` \| `RunInstances:0200` \|
1562
+ # `RunInstances:000g` \| `RunInstances:0g00` \| `RunInstances:0002` \|
1563
+ # `RunInstances:0800` \| `RunInstances:0102` \| `RunInstances:0006` \|
1564
+ # `RunInstances:0202`).
1565
+ #
1566
+ # * `usage-operation-update-time` - The time that the usage operation
1567
+ # was last updated, for example, `2022-09-15T17:15:20.000Z`.
1568
+ #
1324
1569
  # * `virtualization-type` - The virtualization type of the instance
1325
1570
  # (`paravirtual` \| `hvm`).
1326
1571
  #
@@ -1341,7 +1586,9 @@ module Aws::EC2
1341
1586
  name: "subnet-id",
1342
1587
  values: [@id]
1343
1588
  }])
1344
- resp = @client.describe_instances(options)
1589
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1590
+ @client.describe_instances(options)
1591
+ end
1345
1592
  resp.each_page do |page|
1346
1593
  batch = []
1347
1594
  page.data.reservations.each do |r|
@@ -1378,7 +1625,7 @@ module Aws::EC2
1378
1625
  # If you have the required permissions, the error response is
1379
1626
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1380
1627
  # @option options [Array<Types::Filter>] :filter
1381
- # One or more filters.
1628
+ # The filters.
1382
1629
  #
1383
1630
  # * `nat-gateway-id` - The ID of the NAT gateway.
1384
1631
  #
@@ -1387,7 +1634,7 @@ module Aws::EC2
1387
1634
  #
1388
1635
  # * `subnet-id` - The ID of the subnet in which the NAT gateway resides.
1389
1636
  #
1390
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
1637
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
1391
1638
  # the resource. Use the tag key in the filter name and the tag value
1392
1639
  # as the filter value. For example, to find all resources that have a
1393
1640
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -1399,7 +1646,7 @@ module Aws::EC2
1399
1646
  #
1400
1647
  # * `vpc-id` - The ID of the VPC in which the NAT gateway resides.
1401
1648
  # @option options [Array<String>] :nat_gateway_ids
1402
- # One or more NAT gateway IDs.
1649
+ # The IDs of the NAT gateways.
1403
1650
  # @return [NatGateway::Collection]
1404
1651
  def nat_gateways(options = {})
1405
1652
  batches = Enumerator.new do |y|
@@ -1407,7 +1654,9 @@ module Aws::EC2
1407
1654
  name: "subnet-id",
1408
1655
  values: [@id]
1409
1656
  }])
1410
- resp = @client.describe_nat_gateways(options)
1657
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1658
+ @client.describe_nat_gateways(options)
1659
+ end
1411
1660
  resp.each_page do |page|
1412
1661
  batch = []
1413
1662
  page.data.nat_gateways.each do |n|
@@ -1439,24 +1688,24 @@ module Aws::EC2
1439
1688
  # @option options [Array<Types::Filter>] :filters
1440
1689
  # One or more filters.
1441
1690
  #
1442
- # * `addresses.private-ip-address` - The private IPv4 addresses
1443
- # associated with the network interface.
1691
+ # * `association.allocation-id` - The allocation ID returned when you
1692
+ # allocated the Elastic IP address (IPv4) for your network interface.
1444
1693
  #
1445
- # * `addresses.primary` - Whether the private IPv4 address is the
1446
- # primary IP address associated with the network interface.
1694
+ # * `association.association-id` - The association ID returned when the
1695
+ # network interface was associated with an IPv4 address.
1696
+ #
1697
+ # * `addresses.association.owner-id` - The owner ID of the addresses
1698
+ # associated with the network interface.
1447
1699
  #
1448
1700
  # * `addresses.association.public-ip` - The association ID returned when
1449
1701
  # the network interface was associated with the Elastic IP address
1450
1702
  # (IPv4).
1451
1703
  #
1452
- # * `addresses.association.owner-id` - The owner ID of the addresses
1453
- # associated with the network interface.
1454
- #
1455
- # * `association.association-id` - The association ID returned when the
1456
- # network interface was associated with an IPv4 address.
1704
+ # * `addresses.primary` - Whether the private IPv4 address is the
1705
+ # primary IP address associated with the network interface.
1457
1706
  #
1458
- # * `association.allocation-id` - The allocation ID returned when you
1459
- # allocated the Elastic IP address (IPv4) for your network interface.
1707
+ # * `addresses.private-ip-address` - The private IPv4 addresses
1708
+ # associated with the network interface.
1460
1709
  #
1461
1710
  # * `association.ip-owner-id` - The owner of the Elastic IP address
1462
1711
  # (IPv4) associated with the network interface.
@@ -1467,11 +1716,11 @@ module Aws::EC2
1467
1716
  # * `association.public-dns-name` - The public DNS name for the network
1468
1717
  # interface (IPv4).
1469
1718
  #
1470
- # * `attachment.attachment-id` - The ID of the interface attachment.
1471
- #
1472
1719
  # * `attachment.attach-time` - The time that the network interface was
1473
1720
  # attached to an instance.
1474
1721
  #
1722
+ # * `attachment.attachment-id` - The ID of the interface attachment.
1723
+ #
1475
1724
  # * `attachment.delete-on-termination` - Indicates whether the
1476
1725
  # attachment is deleted when an instance is terminated.
1477
1726
  #
@@ -1495,12 +1744,18 @@ module Aws::EC2
1495
1744
  # * `group-id` - The ID of a security group associated with the network
1496
1745
  # interface.
1497
1746
  #
1498
- # * `group-name` - The name of a security group associated with the
1499
- # network interface.
1500
- #
1501
1747
  # * `ipv6-addresses.ipv6-address` - An IPv6 address associated with the
1502
1748
  # network interface.
1503
1749
  #
1750
+ # * `interface-type` - The type of network interface
1751
+ # (`api_gateway_managed` \| `aws_codestar_connections_managed` \|
1752
+ # `branch` \| `ec2_instance_connect_endpoint` \| `efa` \| `efs` \|
1753
+ # `gateway_load_balancer` \| `gateway_load_balancer_endpoint` \|
1754
+ # `global_accelerator_managed` \| `interface` \| `iot_rules_managed`
1755
+ # \| `lambda` \| `load_balancer` \| `nat_gateway` \|
1756
+ # `network_load_balancer` \| `quicksight` \| `transit_gateway` \|
1757
+ # `trunk` \| `vpc_endpoint`).
1758
+ #
1504
1759
  # * `mac-address` - The MAC address of the network interface.
1505
1760
  #
1506
1761
  # * `network-interface-id` - The ID of the network interface.
@@ -1508,12 +1763,12 @@ module Aws::EC2
1508
1763
  # * `owner-id` - The Amazon Web Services account ID of the network
1509
1764
  # interface owner.
1510
1765
  #
1511
- # * `private-ip-address` - The private IPv4 address or addresses of the
1512
- # network interface.
1513
- #
1514
1766
  # * `private-dns-name` - The private DNS name of the network interface
1515
1767
  # (IPv4).
1516
1768
  #
1769
+ # * `private-ip-address` - The private IPv4 address or addresses of the
1770
+ # network interface.
1771
+ #
1517
1772
  # * `requester-id` - The alias or Amazon Web Services account ID of the
1518
1773
  # principal or service that created the network interface.
1519
1774
  #
@@ -1534,7 +1789,7 @@ module Aws::EC2
1534
1789
  #
1535
1790
  # * `subnet-id` - The ID of the subnet for the network interface.
1536
1791
  #
1537
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
1792
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
1538
1793
  # the resource. Use the tag key in the filter name and the tag value
1539
1794
  # as the filter value. For example, to find all resources that have a
1540
1795
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -1551,7 +1806,7 @@ module Aws::EC2
1551
1806
  # If you have the required permissions, the error response is
1552
1807
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1553
1808
  # @option options [Array<String>] :network_interface_ids
1554
- # One or more network interface IDs.
1809
+ # The network interface IDs.
1555
1810
  #
1556
1811
  # Default: Describes all your network interfaces.
1557
1812
  # @return [NetworkInterface::Collection]
@@ -1561,7 +1816,9 @@ module Aws::EC2
1561
1816
  name: "subnet-id",
1562
1817
  values: [@id]
1563
1818
  }])
1564
- resp = @client.describe_network_interfaces(options)
1819
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1820
+ @client.describe_network_interfaces(options)
1821
+ end
1565
1822
  resp.each_page do |page|
1566
1823
  batch = []
1567
1824
  page.data.network_interfaces.each do |n|