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
@@ -46,7 +46,7 @@ module Aws::EC2
46
46
  # ],
47
47
  # tag_specifications: [
48
48
  # {
49
- # 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
49
+ # 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
50
50
  # tags: [
51
51
  # {
52
52
  # key: "String",
@@ -69,7 +69,9 @@ module Aws::EC2
69
69
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
70
70
  # @return [DhcpOptions]
71
71
  def create_dhcp_options(options = {})
72
- resp = @client.create_dhcp_options(options)
72
+ resp = Aws::Plugins::UserAgent.feature('resource') do
73
+ @client.create_dhcp_options(options)
74
+ end
73
75
  DhcpOptions.new(
74
76
  id: resp.data.dhcp_options.dhcp_options_id,
75
77
  data: resp.data.dhcp_options,
@@ -99,11 +101,12 @@ module Aws::EC2
99
101
  # },
100
102
  # ],
101
103
  # image_id: "ImageId",
102
- # 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
104
+ # 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
103
105
  # ipv_6_address_count: 1,
104
106
  # ipv_6_addresses: [
105
107
  # {
106
108
  # ipv_6_address: "String",
109
+ # is_primary_ipv_6: false,
107
110
  # },
108
111
  # ],
109
112
  # kernel_id: "KernelId",
@@ -122,12 +125,13 @@ module Aws::EC2
122
125
  # tenancy: "default", # accepts default, dedicated, host
123
126
  # spread_domain: "String",
124
127
  # host_resource_group_arn: "String",
128
+ # group_id: "PlacementGroupId",
125
129
  # },
126
130
  # ramdisk_id: "RamdiskId",
127
131
  # security_group_ids: ["SecurityGroupId"],
128
132
  # security_groups: ["SecurityGroupName"],
129
133
  # subnet_id: "SubnetId",
130
- # user_data: "String",
134
+ # user_data: "RunInstancesUserData",
131
135
  # additional_info: "String",
132
136
  # client_token: "String",
133
137
  # disable_api_termination: false,
@@ -149,6 +153,7 @@ module Aws::EC2
149
153
  # ipv_6_addresses: [
150
154
  # {
151
155
  # ipv_6_address: "String",
156
+ # is_primary_ipv_6: false,
152
157
  # },
153
158
  # ],
154
159
  # network_interface_id: "NetworkInterfaceId",
@@ -176,6 +181,7 @@ module Aws::EC2
176
181
  # },
177
182
  # ],
178
183
  # ipv_6_prefix_count: 1,
184
+ # primary_ipv_6: false,
179
185
  # },
180
186
  # ],
181
187
  # private_ip_address: "String",
@@ -192,7 +198,7 @@ module Aws::EC2
192
198
  # ],
193
199
  # tag_specifications: [
194
200
  # {
195
- # 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
201
+ # 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
196
202
  # tags: [
197
203
  # {
198
204
  # key: "String",
@@ -207,7 +213,7 @@ module Aws::EC2
207
213
  # version: "String",
208
214
  # },
209
215
  # instance_market_options: {
210
- # market_type: "spot", # accepts spot
216
+ # market_type: "spot", # accepts spot, capacity-block
211
217
  # spot_options: {
212
218
  # max_price: "String",
213
219
  # spot_instance_type: "one-time", # accepts one-time, persistent
@@ -222,6 +228,7 @@ module Aws::EC2
222
228
  # cpu_options: {
223
229
  # core_count: 1,
224
230
  # threads_per_core: 1,
231
+ # amd_sev_snp: "enabled", # accepts enabled, disabled
225
232
  # },
226
233
  # capacity_reservation_specification: {
227
234
  # capacity_reservation_preference: "open", # accepts open, none
@@ -243,6 +250,7 @@ module Aws::EC2
243
250
  # http_put_response_hop_limit: 1,
244
251
  # http_endpoint: "disabled", # accepts disabled, enabled
245
252
  # http_protocol_ipv_6: "disabled", # accepts disabled, enabled
253
+ # instance_metadata_tags: "disabled", # accepts disabled, enabled
246
254
  # },
247
255
  # enclave_options: {
248
256
  # enabled: false,
@@ -252,6 +260,11 @@ module Aws::EC2
252
260
  # enable_resource_name_dns_a_record: false,
253
261
  # enable_resource_name_dns_aaaa_record: false,
254
262
  # },
263
+ # maintenance_options: {
264
+ # auto_recovery: "disabled", # accepts disabled, default
265
+ # },
266
+ # disable_api_stop: false,
267
+ # enable_primary_ipv_6: false,
255
268
  # })
256
269
  # @param [Hash] options ({})
257
270
  # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
@@ -270,27 +283,24 @@ module Aws::EC2
270
283
  # The instance type. For more information, see [Instance types][1] in
271
284
  # the *Amazon EC2 User Guide*.
272
285
  #
273
- # Default: `m1.small`
274
- #
275
286
  #
276
287
  #
277
288
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
278
289
  # @option options [Integer] :ipv_6_address_count
279
- # \[EC2-VPC\] The number of IPv6 addresses to associate with the primary
280
- # network interface. Amazon EC2 chooses the IPv6 addresses from the
281
- # range of your subnet. You cannot specify this option and the option to
282
- # assign specific IPv6 addresses in the same request. You can specify
283
- # this option if you've specified a minimum number of instances to
284
- # launch.
290
+ # The number of IPv6 addresses to associate with the primary network
291
+ # interface. Amazon EC2 chooses the IPv6 addresses from the range of
292
+ # your subnet. You cannot specify this option and the option to assign
293
+ # specific IPv6 addresses in the same request. You can specify this
294
+ # option if you've specified a minimum number of instances to launch.
285
295
  #
286
296
  # You cannot specify this option and the network interfaces option in
287
297
  # the same request.
288
298
  # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
289
- # \[EC2-VPC\] The IPv6 addresses from the range of the subnet to
290
- # associate with the primary network interface. You cannot specify this
291
- # option and the option to assign a number of IPv6 addresses in the same
292
- # request. You cannot specify this option if you've specified a minimum
293
- # number of instances to launch.
299
+ # The IPv6 addresses from the range of the subnet to associate with the
300
+ # primary network interface. You cannot specify this option and the
301
+ # option to assign a number of IPv6 addresses in the same request. You
302
+ # cannot specify this option if you've specified a minimum number of
303
+ # instances to launch.
294
304
  #
295
305
  # You cannot specify this option and the network interfaces option in
296
306
  # the same request.
@@ -370,25 +380,24 @@ module Aws::EC2
370
380
  #
371
381
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html
372
382
  # @option options [Array<String>] :security_groups
373
- # \[EC2-Classic, default VPC\] The names of the security groups. For a
374
- # nondefault VPC, you must use security group IDs instead.
383
+ # \[Default VPC\] The names of the security groups.
375
384
  #
376
385
  # If you specify a network interface, you must specify any security
377
386
  # groups as part of the network interface.
378
387
  #
379
388
  # Default: Amazon EC2 uses the default security group.
380
389
  # @option options [String] :subnet_id
381
- # \[EC2-VPC\] The ID of the subnet to launch the instance into.
390
+ # The ID of the subnet to launch the instance into.
382
391
  #
383
392
  # If you specify a network interface, you must specify any subnets as
384
393
  # part of the network interface.
385
394
  # @option options [String] :user_data
386
- # The user data to make available to the instance. For more information,
387
- # see [Run commands on your Linux instance at launch][1] and [Run
388
- # commands on your Windows instance at launch][2]. If you are using a
389
- # command line tool, base64-encoding is performed for you, and you can
390
- # load the text from a file. Otherwise, you must provide base64-encoded
391
- # text. User data is limited to 16 KB.
395
+ # The user data script to make available to the instance. For more
396
+ # information, see [Run commands on your Linux instance at launch][1]
397
+ # and [Run commands on your Windows instance at launch][2]. If you are
398
+ # using a command line tool, base64-encoding is performed for you, and
399
+ # you can load the text from a file. Otherwise, you must provide
400
+ # base64-encoded text. User data is limited to 16 KB.
392
401
  #
393
402
  #
394
403
  #
@@ -449,8 +458,8 @@ module Aws::EC2
449
458
  # a network interface, you must specify any security groups and subnets
450
459
  # as part of the network interface.
451
460
  # @option options [String] :private_ip_address
452
- # \[EC2-VPC\] The primary IPv4 address. You must specify a value from
453
- # the IPv4 address range of the subnet.
461
+ # The primary IPv4 address. You must specify a value from the IPv4
462
+ # address range of the subnet.
454
463
  #
455
464
  # Only one private IP address can be designated as primary. You can't
456
465
  # specify this option if you've specified the option to designate a
@@ -477,11 +486,34 @@ module Aws::EC2
477
486
  #
478
487
  # You cannot specify accelerators from different generations in the same
479
488
  # request.
489
+ #
490
+ # <note markdown="1"> Starting April 15, 2023, Amazon Web Services will not onboard new
491
+ # customers to Amazon Elastic Inference (EI), and will help current
492
+ # customers migrate their workloads to options that offer better price
493
+ # and performance. After April 15, 2023, new customers will not be able
494
+ # to launch instances with Amazon EI accelerators in Amazon SageMaker,
495
+ # Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI
496
+ # at least once during the past 30-day period are considered current
497
+ # customers and will be able to continue using the service.
498
+ #
499
+ # </note>
480
500
  # @option options [Array<Types::TagSpecification>] :tag_specifications
481
- # The tags to apply to the resources during launch. You can only tag
482
- # instances and volumes on launch. The specified tags are applied to all
483
- # instances or volumes that are created during launch. To tag a resource
484
- # after it has been created, see [CreateTags][1].
501
+ # The tags to apply to the resources that are created during instance
502
+ # launch.
503
+ #
504
+ # You can specify tags for the following resources only:
505
+ #
506
+ # * Instances
507
+ #
508
+ # * Volumes
509
+ #
510
+ # * Elastic graphics
511
+ #
512
+ # * Spot Instance requests
513
+ #
514
+ # * Network interfaces
515
+ #
516
+ # To tag a resource after it has been created, see [CreateTags][1].
485
517
  #
486
518
  #
487
519
  #
@@ -504,7 +536,8 @@ module Aws::EC2
504
536
  # information, see [Burstable performance instances][2] in the *Amazon
505
537
  # EC2 User Guide*.
506
538
  #
507
- # Default: `standard` (T2 instances) or `unlimited` (T3/T3a instances)
539
+ # Default: `standard` (T2 instances) or `unlimited` (T3/T3a/T4g
540
+ # instances)
508
541
  #
509
542
  # For T3 instances with `host` tenancy, only `standard` is supported.
510
543
  #
@@ -526,16 +559,18 @@ module Aws::EC2
526
559
  # Capacity Reservation that has matching attributes (instance type,
527
560
  # platform, Availability Zone).
528
561
  # @option options [Types::HibernationOptionsRequest] :hibernation_options
529
- # Indicates whether an instance is enabled for hibernation. For more
530
- # information, see [Hibernate your instance][1] in the *Amazon EC2 User
531
- # Guide*.
562
+ # Indicates whether an instance is enabled for hibernation. This
563
+ # parameter is valid only if the instance meets the [hibernation
564
+ # prerequisites][1]. For more information, see [Hibernate your
565
+ # instance][2] in the *Amazon EC2 User Guide*.
532
566
  #
533
567
  # You can't enable hibernation and Amazon Web Services Nitro Enclaves
534
568
  # on the same instance.
535
569
  #
536
570
  #
537
571
  #
538
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html
572
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html
573
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html
539
574
  # @option options [Array<Types::LicenseConfigurationRequest>] :license_specifications
540
575
  # The license configurations.
541
576
  # @option options [Types::InstanceMetadataOptionsRequest] :metadata_options
@@ -547,9 +582,9 @@ module Aws::EC2
547
582
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
548
583
  # @option options [Types::EnclaveOptionsRequest] :enclave_options
549
584
  # Indicates whether the instance is enabled for Amazon Web Services
550
- # Nitro Enclaves. For more information, see [ What is Amazon Web
551
- # Services Nitro Enclaves?][1] in the *Amazon Web Services Nitro
552
- # Enclaves User Guide*.
585
+ # Nitro Enclaves. For more information, see [What is Amazon Web Services
586
+ # Nitro Enclaves?][1] in the *Amazon Web Services Nitro Enclaves User
587
+ # Guide*.
553
588
  #
554
589
  # You can't enable Amazon Web Services Nitro Enclaves and hibernation
555
590
  # on the same instance.
@@ -559,11 +594,39 @@ module Aws::EC2
559
594
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
560
595
  # @option options [Types::PrivateDnsNameOptionsRequest] :private_dns_name_options
561
596
  # The options for the instance hostname. The default values are
562
- # inherited from the subnet.
597
+ # inherited from the subnet. Applies only if creating a network
598
+ # interface, not attaching an existing one.
599
+ # @option options [Types::InstanceMaintenanceOptionsRequest] :maintenance_options
600
+ # The maintenance and recovery options for the instance.
601
+ # @option options [Boolean] :disable_api_stop
602
+ # Indicates whether an instance is enabled for stop protection. For more
603
+ # information, see [Stop protection][1].
604
+ #
605
+ #
606
+ #
607
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection
608
+ # @option options [Boolean] :enable_primary_ipv_6
609
+ # If you’re launching an instance into a dual-stack or IPv6-only subnet,
610
+ # you can enable assigning a primary IPv6 address. A primary IPv6
611
+ # address is an IPv6 GUA address associated with an ENI that you have
612
+ # enabled to use a primary IPv6 address. Use this option if an instance
613
+ # relies on its IPv6 address not changing. When you launch the instance,
614
+ # Amazon Web Services will automatically assign an IPv6 address
615
+ # associated with the ENI attached to your instance to be the primary
616
+ # IPv6 address. Once you enable an IPv6 GUA address to be a primary
617
+ # IPv6, you cannot disable it. When you enable an IPv6 GUA address to be
618
+ # a primary IPv6, the first IPv6 GUA will be made the primary IPv6
619
+ # address until the instance is terminated or the network interface is
620
+ # detached. If you have multiple IPv6 addresses associated with an ENI
621
+ # attached to your instance and you enable a primary IPv6 address, the
622
+ # first IPv6 GUA address associated with the ENI becomes the primary
623
+ # IPv6 address.
563
624
  # @return [Instance::Collection]
564
625
  def create_instances(options = {})
565
626
  batch = []
566
- resp = @client.run_instances(options)
627
+ resp = Aws::Plugins::UserAgent.feature('resource') do
628
+ @client.run_instances(options)
629
+ end
567
630
  resp.data.instances.each do |i|
568
631
  batch << Instance.new(
569
632
  id: i.instance_id,
@@ -579,7 +642,7 @@ module Aws::EC2
579
642
  # internetgateway = ec2.create_internet_gateway({
580
643
  # tag_specifications: [
581
644
  # {
582
- # 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
645
+ # 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
583
646
  # tags: [
584
647
  # {
585
648
  # key: "String",
@@ -600,7 +663,9 @@ module Aws::EC2
600
663
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
601
664
  # @return [InternetGateway]
602
665
  def create_internet_gateway(options = {})
603
- resp = @client.create_internet_gateway(options)
666
+ resp = Aws::Plugins::UserAgent.feature('resource') do
667
+ @client.create_internet_gateway(options)
668
+ end
604
669
  InternetGateway.new(
605
670
  id: resp.data.internet_gateway.internet_gateway_id,
606
671
  data: resp.data.internet_gateway,
@@ -616,7 +681,7 @@ module Aws::EC2
616
681
  # key_type: "rsa", # accepts rsa, ed25519
617
682
  # tag_specifications: [
618
683
  # {
619
- # 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
684
+ # 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
620
685
  # tags: [
621
686
  # {
622
687
  # key: "String",
@@ -625,6 +690,7 @@ module Aws::EC2
625
690
  # ],
626
691
  # },
627
692
  # ],
693
+ # key_format: "pem", # accepts pem, ppk
628
694
  # })
629
695
  # @param [Hash] options ({})
630
696
  # @option options [required, String] :key_name
@@ -638,14 +704,20 @@ module Aws::EC2
638
704
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
639
705
  # @option options [String] :key_type
640
706
  # The type of key pair. Note that ED25519 keys are not supported for
641
- # Windows instances, EC2 Instance Connect, and EC2 Serial Console.
707
+ # Windows instances.
642
708
  #
643
709
  # Default: `rsa`
644
710
  # @option options [Array<Types::TagSpecification>] :tag_specifications
645
711
  # The tags to apply to the new key pair.
712
+ # @option options [String] :key_format
713
+ # The format of the key pair.
714
+ #
715
+ # Default: `pem`
646
716
  # @return [KeyPair]
647
717
  def create_key_pair(options = {})
648
- resp = @client.create_key_pair(options)
718
+ resp = Aws::Plugins::UserAgent.feature('resource') do
719
+ @client.create_key_pair(options)
720
+ end
649
721
  KeyPair.new(
650
722
  name: resp.data.key_name,
651
723
  data: resp.data,
@@ -662,7 +734,7 @@ module Aws::EC2
662
734
  # subnet_id: "SubnetId", # required
663
735
  # tag_specifications: [
664
736
  # {
665
- # 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
737
+ # 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
666
738
  # tags: [
667
739
  # {
668
740
  # key: "String",
@@ -672,6 +744,10 @@ module Aws::EC2
672
744
  # },
673
745
  # ],
674
746
  # connectivity_type: "private", # accepts private, public
747
+ # private_ip_address: "String",
748
+ # secondary_allocation_ids: ["AllocationId"],
749
+ # secondary_private_ip_addresses: ["String"],
750
+ # secondary_private_ip_address_count: 1,
675
751
  # })
676
752
  # @param [Hash] options ({})
677
753
  # @option options [String] :allocation_id
@@ -696,15 +772,45 @@ module Aws::EC2
696
772
  # If you have the required permissions, the error response is
697
773
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
698
774
  # @option options [required, String] :subnet_id
699
- # The subnet in which to create the NAT gateway.
775
+ # The ID of the subnet in which to create the NAT gateway.
700
776
  # @option options [Array<Types::TagSpecification>] :tag_specifications
701
777
  # The tags to assign to the NAT gateway.
702
778
  # @option options [String] :connectivity_type
703
779
  # Indicates whether the NAT gateway supports public or private
704
780
  # connectivity. The default is public connectivity.
781
+ # @option options [String] :private_ip_address
782
+ # The private IPv4 address to assign to the NAT gateway. If you don't
783
+ # provide an address, a private IPv4 address will be automatically
784
+ # assigned.
785
+ # @option options [Array<String>] :secondary_allocation_ids
786
+ # Secondary EIP allocation IDs. For more information, see [Create a NAT
787
+ # gateway][1] in the *Amazon VPC User Guide*.
788
+ #
789
+ #
790
+ #
791
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
792
+ # @option options [Array<String>] :secondary_private_ip_addresses
793
+ # Secondary private IPv4 addresses. For more information about secondary
794
+ # addresses, see [Create a NAT gateway][1] in the *Amazon VPC User
795
+ # Guide*.
796
+ #
797
+ #
798
+ #
799
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
800
+ # @option options [Integer] :secondary_private_ip_address_count
801
+ # \[Private NAT gateway only\] The number of secondary private IPv4
802
+ # addresses you want to assign to the NAT gateway. For more information
803
+ # about secondary addresses, see [Create a NAT gateway][1] in the
804
+ # *Amazon VPC User Guide*.
805
+ #
806
+ #
807
+ #
808
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
705
809
  # @return [NatGateway]
706
810
  def create_nat_gateway(options = {})
707
- resp = @client.create_nat_gateway(options)
811
+ resp = Aws::Plugins::UserAgent.feature('resource') do
812
+ @client.create_nat_gateway(options)
813
+ end
708
814
  NatGateway.new(
709
815
  id: resp.data.nat_gateway.nat_gateway_id,
710
816
  data: resp.data.nat_gateway,
@@ -719,7 +825,7 @@ module Aws::EC2
719
825
  # vpc_id: "VpcId", # required
720
826
  # tag_specifications: [
721
827
  # {
722
- # 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
828
+ # 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
723
829
  # tags: [
724
830
  # {
725
831
  # key: "String",
@@ -741,7 +847,9 @@ module Aws::EC2
741
847
  # The tags to assign to the network ACL.
742
848
  # @return [NetworkAcl]
743
849
  def create_network_acl(options = {})
744
- resp = @client.create_network_acl(options)
850
+ resp = Aws::Plugins::UserAgent.feature('resource') do
851
+ @client.create_network_acl(options)
852
+ end
745
853
  NetworkAcl.new(
746
854
  id: resp.data.network_acl.network_acl_id,
747
855
  data: resp.data.network_acl,
@@ -759,6 +867,7 @@ module Aws::EC2
759
867
  # ipv_6_addresses: [
760
868
  # {
761
869
  # ipv_6_address: "String",
870
+ # is_primary_ipv_6: false,
762
871
  # },
763
872
  # ],
764
873
  # private_ip_address: "String",
@@ -785,7 +894,7 @@ module Aws::EC2
785
894
  # subnet_id: "SubnetId", # required
786
895
  # tag_specifications: [
787
896
  # {
788
- # 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
897
+ # 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
789
898
  # tags: [
790
899
  # {
791
900
  # key: "String",
@@ -795,6 +904,7 @@ module Aws::EC2
795
904
  # },
796
905
  # ],
797
906
  # client_token: "String",
907
+ # enable_primary_ipv_6: false,
798
908
  # })
799
909
  # @param [Hash] options ({})
800
910
  # @option options [String] :description
@@ -809,13 +919,20 @@ module Aws::EC2
809
919
  # @option options [Integer] :ipv_6_address_count
810
920
  # The number of IPv6 addresses to assign to a network interface. Amazon
811
921
  # EC2 automatically selects the IPv6 addresses from the subnet range.
812
- # You can't use this option if specifying specific IPv6 addresses. If
813
- # your subnet has the `AssignIpv6AddressOnCreation` attribute set to
814
- # `true`, you can specify `0` to override this setting.
922
+ #
923
+ # You can't specify a count of IPv6 addresses using this parameter if
924
+ # you've specified one of the following: specific IPv6 addresses,
925
+ # specific IPv6 prefixes, or a count of IPv6 prefixes.
926
+ #
927
+ # If your subnet has the `AssignIpv6AddressOnCreation` attribute set,
928
+ # you can override that setting by specifying 0 as the IPv6 address
929
+ # count.
815
930
  # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
816
- # One or more specific IPv6 addresses from the IPv6 CIDR block range of
817
- # your subnet. You can't use this option if you're specifying a number
818
- # of IPv6 addresses.
931
+ # The IPv6 addresses from the IPv6 CIDR block range of your subnet.
932
+ #
933
+ # You can't specify IPv6 addresses using this parameter if you've
934
+ # specified one of the following: a count of IPv6 addresses, specific
935
+ # IPv6 prefixes, or a count of IPv6 prefixes.
819
936
  # @option options [String] :private_ip_address
820
937
  # The primary private IPv4 address of the network interface. If you
821
938
  # don't specify an IPv4 address, Amazon EC2 selects one for you from
@@ -823,7 +940,11 @@ module Aws::EC2
823
940
  # cannot indicate any IP addresses specified in `privateIpAddresses` as
824
941
  # primary (only one IP address can be designated as primary).
825
942
  # @option options [Array<Types::PrivateIpAddressSpecification>] :private_ip_addresses
826
- # One or more private IPv4 addresses.
943
+ # The private IPv4 addresses.
944
+ #
945
+ # You can't specify private IPv4 addresses if you've specified one of
946
+ # the following: a count of private IPv4 addresses, specific IPv4
947
+ # prefixes, or a count of IPv4 prefixes.
827
948
  # @option options [Integer] :secondary_private_ip_address_count
828
949
  # The number of secondary private IPv4 addresses to assign to a network
829
950
  # interface. When you specify a number of secondary IPv4 addresses,
@@ -831,40 +952,39 @@ module Aws::EC2
831
952
  # range. You can't specify this option and specify more than one
832
953
  # private IP address using `privateIpAddresses`.
833
954
  #
834
- # The number of IP addresses you can assign to a network interface
835
- # varies by instance type. For more information, see [IP Addresses Per
836
- # ENI Per Instance Type][1] in the *Amazon Virtual Private Cloud User
837
- # Guide*.
838
- #
839
- #
840
- #
841
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
955
+ # You can't specify a count of private IPv4 addresses if you've
956
+ # specified one of the following: specific private IPv4 addresses,
957
+ # specific IPv4 prefixes, or a count of IPv4 prefixes.
842
958
  # @option options [Array<Types::Ipv4PrefixSpecificationRequest>] :ipv_4_prefixes
843
- # One or more IPv4 prefixes assigned to the network interface. You
844
- # cannot use this option if you use the `Ipv4PrefixCount` option.
959
+ # The IPv4 prefixes assigned to the network interface.
960
+ #
961
+ # You can't specify IPv4 prefixes if you've specified one of the
962
+ # following: a count of IPv4 prefixes, specific private IPv4 addresses,
963
+ # or a count of private IPv4 addresses.
845
964
  # @option options [Integer] :ipv_4_prefix_count
846
965
  # The number of IPv4 prefixes that Amazon Web Services automatically
847
- # assigns to the network interface. You cannot use this option if you
848
- # use the `Ipv4 Prefixes` option.
966
+ # assigns to the network interface.
967
+ #
968
+ # You can't specify a count of IPv4 prefixes if you've specified one
969
+ # of the following: specific IPv4 prefixes, specific private IPv4
970
+ # addresses, or a count of private IPv4 addresses.
849
971
  # @option options [Array<Types::Ipv6PrefixSpecificationRequest>] :ipv_6_prefixes
850
- # One or more IPv6 prefixes assigned to the network interface. You
851
- # cannot use this option if you use the `Ipv6PrefixCount` option.
972
+ # The IPv6 prefixes assigned to the network interface.
973
+ #
974
+ # You can't specify IPv6 prefixes if you've specified one of the
975
+ # following: a count of IPv6 prefixes, specific IPv6 addresses, or a
976
+ # count of IPv6 addresses.
852
977
  # @option options [Integer] :ipv_6_prefix_count
853
978
  # The number of IPv6 prefixes that Amazon Web Services automatically
854
- # assigns to the network interface. You cannot use this option if you
855
- # use the `Ipv6Prefixes` option.
856
- # @option options [String] :interface_type
857
- # Indicates the type of network interface. To create an Elastic Fabric
858
- # Adapter (EFA), specify `efa`. For more information, see [ Elastic
859
- # Fabric Adapter][1] in the *Amazon Elastic Compute Cloud User Guide*.
860
- # To create a trunk network interface, specify `efa`. For more
861
- # information, see [ Network interface trunking][2] in the *Amazon
862
- # Elastic Compute Cloud User Guide*.
863
- #
979
+ # assigns to the network interface.
864
980
  #
981
+ # You can't specify a count of IPv6 prefixes if you've specified one
982
+ # of the following: specific IPv6 prefixes, specific IPv6 addresses, or
983
+ # a count of IPv6 addresses.
984
+ # @option options [String] :interface_type
985
+ # The type of network interface. The default is `interface`.
865
986
  #
866
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html
867
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/eni-trunking.html
987
+ # The only supported values are `interface`, `efa`, and `trunk`.
868
988
  # @option options [required, String] :subnet_id
869
989
  # The ID of the subnet to associate with the network interface.
870
990
  # @option options [Array<Types::TagSpecification>] :tag_specifications
@@ -877,9 +997,27 @@ module Aws::EC2
877
997
  #
878
998
  #
879
999
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
1000
+ # @option options [Boolean] :enable_primary_ipv_6
1001
+ # If you’re creating a network interface in a dual-stack or IPv6-only
1002
+ # subnet, you have the option to assign a primary IPv6 IP address. A
1003
+ # primary IPv6 address is an IPv6 GUA address associated with an ENI
1004
+ # that you have enabled to use a primary IPv6 address. Use this option
1005
+ # if the instance that this ENI will be attached to relies on its IPv6
1006
+ # address not changing. Amazon Web Services will automatically assign an
1007
+ # IPv6 address associated with the ENI attached to your instance to be
1008
+ # the primary IPv6 address. Once you enable an IPv6 GUA address to be a
1009
+ # primary IPv6, you cannot disable it. When you enable an IPv6 GUA
1010
+ # address to be a primary IPv6, the first IPv6 GUA will be made the
1011
+ # primary IPv6 address until the instance is terminated or the network
1012
+ # interface is detached. If you have multiple IPv6 addresses associated
1013
+ # with an ENI attached to your instance and you enable a primary IPv6
1014
+ # address, the first IPv6 GUA address associated with the ENI becomes
1015
+ # the primary IPv6 address.
880
1016
  # @return [NetworkInterface]
881
1017
  def create_network_interface(options = {})
882
- resp = @client.create_network_interface(options)
1018
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1019
+ @client.create_network_interface(options)
1020
+ end
883
1021
  NetworkInterface.new(
884
1022
  id: resp.data.network_interface.network_interface_id,
885
1023
  data: resp.data.network_interface,
@@ -896,7 +1034,7 @@ module Aws::EC2
896
1034
  # partition_count: 1,
897
1035
  # tag_specifications: [
898
1036
  # {
899
- # 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
1037
+ # 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
900
1038
  # tags: [
901
1039
  # {
902
1040
  # key: "String",
@@ -905,6 +1043,7 @@ module Aws::EC2
905
1043
  # ],
906
1044
  # },
907
1045
  # ],
1046
+ # spread_level: "host", # accepts host, rack
908
1047
  # })
909
1048
  # @param [Hash] options ({})
910
1049
  # @option options [Boolean] :dry_run
@@ -924,9 +1063,17 @@ module Aws::EC2
924
1063
  # `partition`.
925
1064
  # @option options [Array<Types::TagSpecification>] :tag_specifications
926
1065
  # The tags to apply to the new placement group.
1066
+ # @option options [String] :spread_level
1067
+ # Determines how placement groups spread instances.
1068
+ #
1069
+ # * Host – You can use `host` only with Outpost placement groups.
1070
+ #
1071
+ # * Rack – No usage restrictions.
927
1072
  # @return [PlacementGroup]
928
1073
  def create_placement_group(options = {})
929
- @client.create_placement_group(options)
1074
+ Aws::Plugins::UserAgent.feature('resource') do
1075
+ @client.create_placement_group(options)
1076
+ end
930
1077
  PlacementGroup.new(
931
1078
  name: options[:group_name],
932
1079
  client: @client
@@ -940,7 +1087,7 @@ module Aws::EC2
940
1087
  # vpc_id: "VpcId", # required
941
1088
  # tag_specifications: [
942
1089
  # {
943
- # 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
1090
+ # 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
944
1091
  # tags: [
945
1092
  # {
946
1093
  # key: "String",
@@ -962,7 +1109,9 @@ module Aws::EC2
962
1109
  # The tags to assign to the route table.
963
1110
  # @return [RouteTable]
964
1111
  def create_route_table(options = {})
965
- resp = @client.create_route_table(options)
1112
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1113
+ @client.create_route_table(options)
1114
+ end
966
1115
  RouteTable.new(
967
1116
  id: resp.data.route_table.route_table_id,
968
1117
  data: resp.data.route_table,
@@ -978,7 +1127,7 @@ module Aws::EC2
978
1127
  # vpc_id: "VpcId",
979
1128
  # tag_specifications: [
980
1129
  # {
981
- # 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
1130
+ # 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
982
1131
  # tags: [
983
1132
  # {
984
1133
  # key: "String",
@@ -991,25 +1140,21 @@ module Aws::EC2
991
1140
  # })
992
1141
  # @param [Hash] options ({})
993
1142
  # @option options [required, String] :description
994
- # A description for the security group. This is informational only.
1143
+ # A description for the security group.
995
1144
  #
996
1145
  # Constraints: Up to 255 characters in length
997
1146
  #
998
- # Constraints for EC2-Classic: ASCII characters
999
- #
1000
- # Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and
1147
+ # Valid characters: a-z, A-Z, 0-9, spaces, and
1001
1148
  # .\_-:/()#,@\[\]+=&amp;;\\\{\\}!$*
1002
1149
  # @option options [required, String] :group_name
1003
1150
  # The name of the security group.
1004
1151
  #
1005
1152
  # Constraints: Up to 255 characters in length. Cannot start with `sg-`.
1006
1153
  #
1007
- # Constraints for EC2-Classic: ASCII characters
1008
- #
1009
- # Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and
1154
+ # Valid characters: a-z, A-Z, 0-9, spaces, and
1010
1155
  # .\_-:/()#,@\[\]+=&amp;;\\\{\\}!$*
1011
1156
  # @option options [String] :vpc_id
1012
- # \[EC2-VPC\] The ID of the VPC. Required for EC2-VPC.
1157
+ # The ID of the VPC. Required for a nondefault VPC.
1013
1158
  # @option options [Array<Types::TagSpecification>] :tag_specifications
1014
1159
  # The tags to assign to the security group.
1015
1160
  # @option options [Boolean] :dry_run
@@ -1019,7 +1164,9 @@ module Aws::EC2
1019
1164
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1020
1165
  # @return [SecurityGroup]
1021
1166
  def create_security_group(options = {})
1022
- resp = @client.create_security_group(options)
1167
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1168
+ @client.create_security_group(options)
1169
+ end
1023
1170
  SecurityGroup.new(
1024
1171
  id: resp.data.group_id,
1025
1172
  client: @client
@@ -1034,7 +1181,7 @@ module Aws::EC2
1034
1181
  # volume_id: "VolumeId", # required
1035
1182
  # tag_specifications: [
1036
1183
  # {
1037
- # 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
1184
+ # 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
1038
1185
  # tags: [
1039
1186
  # {
1040
1187
  # key: "String",
@@ -1080,7 +1227,9 @@ module Aws::EC2
1080
1227
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1081
1228
  # @return [Snapshot]
1082
1229
  def create_snapshot(options = {})
1083
- resp = @client.create_snapshot(options)
1230
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1231
+ @client.create_snapshot(options)
1232
+ end
1084
1233
  Snapshot.new(
1085
1234
  id: resp.data.snapshot_id,
1086
1235
  data: resp.data,
@@ -1093,7 +1242,7 @@ module Aws::EC2
1093
1242
  # subnet = ec2.create_subnet({
1094
1243
  # tag_specifications: [
1095
1244
  # {
1096
- # 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
1245
+ # 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
1097
1246
  # tags: [
1098
1247
  # {
1099
1248
  # key: "String",
@@ -1123,15 +1272,14 @@ module Aws::EC2
1123
1272
  #
1124
1273
  # To create a subnet in a Local Zone, set this value to the Local Zone
1125
1274
  # ID, for example `us-west-2-lax-1a`. For information about the Regions
1126
- # that support Local Zones, see [Available Regions][1] in the *Amazon
1127
- # Elastic Compute Cloud User Guide*.
1275
+ # that support Local Zones, see [Local Zones locations][1].
1128
1276
  #
1129
1277
  # To create a subnet in an Outpost, set this value to the Availability
1130
1278
  # Zone for the Outpost and specify the Outpost ARN.
1131
1279
  #
1132
1280
  #
1133
1281
  #
1134
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions
1282
+ # [1]: http://aws.amazon.com/about-aws/global-infrastructure/localzones/locations/
1135
1283
  # @option options [String] :availability_zone_id
1136
1284
  # The AZ ID or the Local Zone ID of the subnet.
1137
1285
  # @option options [String] :cidr_block
@@ -1161,7 +1309,9 @@ module Aws::EC2
1161
1309
  # Indicates whether to create an IPv6 only subnet.
1162
1310
  # @return [Subnet]
1163
1311
  def create_subnet(options = {})
1164
- resp = @client.create_subnet(options)
1312
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1313
+ @client.create_subnet(options)
1314
+ end
1165
1315
  Subnet.new(
1166
1316
  id: resp.data.subnet.subnet_id,
1167
1317
  data: resp.data.subnet,
@@ -1198,7 +1348,9 @@ module Aws::EC2
1198
1348
  # set the value to an empty string.
1199
1349
  # @return [EmptyStructure]
1200
1350
  def create_tags(options = {})
1201
- resp = @client.create_tags(options)
1351
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1352
+ @client.create_tags(options)
1353
+ end
1202
1354
  resp.data
1203
1355
  end
1204
1356
 
@@ -1239,14 +1391,16 @@ module Aws::EC2
1239
1391
  # Constraints: Up to 1000 tags.
1240
1392
  # @return [EmptyStructure]
1241
1393
  def delete_tags(options = {})
1242
- resp = @client.delete_tags(options)
1394
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1395
+ @client.delete_tags(options)
1396
+ end
1243
1397
  resp.data
1244
1398
  end
1245
1399
 
1246
1400
  # @example Request syntax with placeholder values
1247
1401
  #
1248
1402
  # volume = ec2.create_volume({
1249
- # availability_zone: "String", # required
1403
+ # availability_zone: "AvailabilityZoneName", # required
1250
1404
  # encrypted: false,
1251
1405
  # iops: 1,
1252
1406
  # kms_key_id: "KmsKeyId",
@@ -1257,7 +1411,7 @@ module Aws::EC2
1257
1411
  # dry_run: false,
1258
1412
  # tag_specifications: [
1259
1413
  # {
1260
- # 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
1414
+ # 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
1261
1415
  # tags: [
1262
1416
  # {
1263
1417
  # key: "String",
@@ -1272,7 +1426,8 @@ module Aws::EC2
1272
1426
  # })
1273
1427
  # @param [Hash] options ({})
1274
1428
  # @option options [required, String] :availability_zone
1275
- # The Availability Zone in which to create the volume.
1429
+ # The ID of the Availability Zone in which to create the volume. For
1430
+ # example, `us-east-1a`.
1276
1431
  # @option options [Boolean] :encrypted
1277
1432
  # Indicates whether the volume should be encrypted. The effect of
1278
1433
  # setting the encryption state to `true` depends on the volume origin
@@ -1298,11 +1453,11 @@ module Aws::EC2
1298
1453
  #
1299
1454
  # The following are the supported values for each volume type:
1300
1455
  #
1301
- # * `gp3`\: 3,000-16,000 IOPS
1456
+ # * `gp3`: 3,000-16,000 IOPS
1302
1457
  #
1303
- # * `io1`\: 100-64,000 IOPS
1458
+ # * `io1`: 100-64,000 IOPS
1304
1459
  #
1305
- # * `io2`\: 100-64,000 IOPS
1460
+ # * `io2`: 100-64,000 IOPS
1306
1461
  #
1307
1462
  # `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances
1308
1463
  # built on the Nitro System][1]. Other instance families support
@@ -1346,13 +1501,13 @@ module Aws::EC2
1346
1501
  #
1347
1502
  # The following are the supported volumes sizes for each volume type:
1348
1503
  #
1349
- # * `gp2` and `gp3`\: 1-16,384
1504
+ # * `gp2` and `gp3`: 1-16,384
1350
1505
  #
1351
- # * `io1` and `io2`\: 4-16,384
1506
+ # * `io1` and `io2`: 4-16,384
1352
1507
  #
1353
- # * `st1` and `sc1`\: 125-16,384
1508
+ # * `st1` and `sc1`: 125-16,384
1354
1509
  #
1355
- # * `standard`\: 1-1,024
1510
+ # * `standard`: 1-1,024
1356
1511
  # @option options [String] :snapshot_id
1357
1512
  # The snapshot from which to create the volume. You must specify either
1358
1513
  # a snapshot ID or a volume size.
@@ -1369,6 +1524,9 @@ module Aws::EC2
1369
1524
  #
1370
1525
  # * Magnetic: `standard`
1371
1526
  #
1527
+ # Throughput Optimized HDD (`st1`) and Cold HDD (`sc1`) volumes can't
1528
+ # be used as boot volumes.
1529
+ #
1372
1530
  # For more information, see [Amazon EBS volume types][1] in the *Amazon
1373
1531
  # Elastic Compute Cloud User Guide*.
1374
1532
  #
@@ -1413,7 +1571,9 @@ module Aws::EC2
1413
1571
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
1414
1572
  # @return [Volume]
1415
1573
  def create_volume(options = {})
1416
- resp = @client.create_volume(options)
1574
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1575
+ @client.create_volume(options)
1576
+ end
1417
1577
  Volume.new(
1418
1578
  id: resp.data.volume_id,
1419
1579
  data: resp.data,
@@ -1424,16 +1584,20 @@ module Aws::EC2
1424
1584
  # @example Request syntax with placeholder values
1425
1585
  #
1426
1586
  # vpc = ec2.create_vpc({
1427
- # cidr_block: "String", # required
1587
+ # cidr_block: "String",
1428
1588
  # amazon_provided_ipv_6_cidr_block: false,
1429
1589
  # ipv_6_pool: "Ipv6PoolEc2Id",
1430
1590
  # ipv_6_cidr_block: "String",
1591
+ # ipv_4_ipam_pool_id: "IpamPoolId",
1592
+ # ipv_4_netmask_length: 1,
1593
+ # ipv_6_ipam_pool_id: "IpamPoolId",
1594
+ # ipv_6_netmask_length: 1,
1431
1595
  # dry_run: false,
1432
1596
  # instance_tenancy: "default", # accepts default, dedicated, host
1433
1597
  # ipv_6_cidr_block_network_border_group: "String",
1434
1598
  # tag_specifications: [
1435
1599
  # {
1436
- # 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
1600
+ # 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
1437
1601
  # tags: [
1438
1602
  # {
1439
1603
  # key: "String",
@@ -1444,7 +1608,7 @@ module Aws::EC2
1444
1608
  # ],
1445
1609
  # })
1446
1610
  # @param [Hash] options ({})
1447
- # @option options [required, String] :cidr_block
1611
+ # @option options [String] :cidr_block
1448
1612
  # The IPv4 network range for the VPC, in CIDR notation. For example,
1449
1613
  # `10.0.0.0/16`. We modify the specified CIDR block to its canonical
1450
1614
  # form; for example, if you specify `100.68.0.18/18`, we modify it to
@@ -1461,6 +1625,44 @@ module Aws::EC2
1461
1625
  # `Ipv6Pool` in the request.
1462
1626
  #
1463
1627
  # To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
1628
+ # @option options [String] :ipv_4_ipam_pool_id
1629
+ # The ID of an IPv4 IPAM pool you want to use for allocating this VPC's
1630
+ # CIDR. For more information, see [What is IPAM?][1] in the *Amazon VPC
1631
+ # IPAM User Guide*.
1632
+ #
1633
+ #
1634
+ #
1635
+ # [1]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
1636
+ # @option options [Integer] :ipv_4_netmask_length
1637
+ # The netmask length of the IPv4 CIDR you want to allocate to this VPC
1638
+ # from an Amazon VPC IP Address Manager (IPAM) pool. For more
1639
+ # information about IPAM, see [What is IPAM?][1] in the *Amazon VPC IPAM
1640
+ # User Guide*.
1641
+ #
1642
+ #
1643
+ #
1644
+ # [1]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
1645
+ # @option options [String] :ipv_6_ipam_pool_id
1646
+ # The ID of an IPv6 IPAM pool which will be used to allocate this VPC an
1647
+ # IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP
1648
+ # address management workflows including assigning, tracking,
1649
+ # troubleshooting, and auditing IP addresses across Amazon Web Services
1650
+ # Regions and accounts throughout your Amazon Web Services Organization.
1651
+ # For more information, see [What is IPAM?][1] in the *Amazon VPC IPAM
1652
+ # User Guide*.
1653
+ #
1654
+ #
1655
+ #
1656
+ # [1]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
1657
+ # @option options [Integer] :ipv_6_netmask_length
1658
+ # The netmask length of the IPv6 CIDR you want to allocate to this VPC
1659
+ # from an Amazon VPC IP Address Manager (IPAM) pool. For more
1660
+ # information about IPAM, see [What is IPAM?][1] in the *Amazon VPC IPAM
1661
+ # User Guide*.
1662
+ #
1663
+ #
1664
+ #
1665
+ # [1]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
1464
1666
  # @option options [Boolean] :dry_run
1465
1667
  # Checks whether you have the required permissions for the action,
1466
1668
  # without actually making the request, and provides an error response.
@@ -1488,7 +1690,9 @@ module Aws::EC2
1488
1690
  # The tags to assign to the VPC.
1489
1691
  # @return [Vpc]
1490
1692
  def create_vpc(options = {})
1491
- resp = @client.create_vpc(options)
1693
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1694
+ @client.create_vpc(options)
1695
+ end
1492
1696
  Vpc.new(
1493
1697
  id: resp.data.vpc.vpc_id,
1494
1698
  data: resp.data.vpc,
@@ -1502,11 +1706,11 @@ module Aws::EC2
1502
1706
  # dry_run: false,
1503
1707
  # peer_owner_id: "String",
1504
1708
  # peer_vpc_id: "String",
1505
- # vpc_id: "VpcId",
1709
+ # vpc_id: "VpcId", # required
1506
1710
  # peer_region: "String",
1507
1711
  # tag_specifications: [
1508
1712
  # {
1509
- # 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
1713
+ # 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
1510
1714
  # tags: [
1511
1715
  # {
1512
1716
  # key: "String",
@@ -1529,7 +1733,7 @@ module Aws::EC2
1529
1733
  # @option options [String] :peer_vpc_id
1530
1734
  # The ID of the VPC with which you are creating the VPC peering
1531
1735
  # connection. You must specify this parameter in the request.
1532
- # @option options [String] :vpc_id
1736
+ # @option options [required, String] :vpc_id
1533
1737
  # The ID of the requester VPC. You must specify this parameter in the
1534
1738
  # request.
1535
1739
  # @option options [String] :peer_region
@@ -1541,7 +1745,9 @@ module Aws::EC2
1541
1745
  # The tags to assign to the peering connection.
1542
1746
  # @return [VpcPeeringConnection]
1543
1747
  def create_vpc_peering_connection(options = {})
1544
- resp = @client.create_vpc_peering_connection(options)
1748
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1749
+ @client.create_vpc_peering_connection(options)
1750
+ end
1545
1751
  VpcPeeringConnection.new(
1546
1752
  id: resp.data.vpc_peering_connection.vpc_peering_connection_id,
1547
1753
  data: resp.data.vpc_peering_connection,
@@ -1566,7 +1772,9 @@ module Aws::EC2
1566
1772
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1567
1773
  # @return [EmptyStructure]
1568
1774
  def disassociate_route_table(options = {})
1569
- resp = @client.disassociate_route_table(options)
1775
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1776
+ @client.disassociate_route_table(options)
1777
+ end
1570
1778
  resp.data
1571
1779
  end
1572
1780
 
@@ -1578,7 +1786,7 @@ module Aws::EC2
1578
1786
  # public_key_material: "data", # required
1579
1787
  # tag_specifications: [
1580
1788
  # {
1581
- # 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
1789
+ # 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
1582
1790
  # tags: [
1583
1791
  # {
1584
1792
  # key: "String",
@@ -1603,7 +1811,9 @@ module Aws::EC2
1603
1811
  # The tags to apply to the imported key pair.
1604
1812
  # @return [KeyPairInfo]
1605
1813
  def import_key_pair(options = {})
1606
- resp = @client.import_key_pair(options)
1814
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1815
+ @client.import_key_pair(options)
1816
+ end
1607
1817
  KeyPairInfo.new(
1608
1818
  name: resp.data.key_name,
1609
1819
  client: @client
@@ -1614,7 +1824,7 @@ module Aws::EC2
1614
1824
  #
1615
1825
  # image = ec2.register_image({
1616
1826
  # image_location: "String",
1617
- # architecture: "i386", # accepts i386, x86_64, arm64, x86_64_mac
1827
+ # architecture: "i386", # accepts i386, x86_64, arm64, x86_64_mac, arm64_mac
1618
1828
  # block_device_mappings: [
1619
1829
  # {
1620
1830
  # device_name: "String",
@@ -1643,7 +1853,10 @@ module Aws::EC2
1643
1853
  # root_device_name: "String",
1644
1854
  # sriov_net_support: "String",
1645
1855
  # virtualization_type: "String",
1646
- # boot_mode: "legacy-bios", # accepts legacy-bios, uefi
1856
+ # boot_mode: "legacy-bios", # accepts legacy-bios, uefi, uefi-preferred
1857
+ # tpm_support: "v2.0", # accepts v2.0
1858
+ # uefi_data: "StringType",
1859
+ # imds_support: "v2.0", # accepts v2.0
1647
1860
  # })
1648
1861
  # @param [Hash] options ({})
1649
1862
  # @option options [String] :image_location
@@ -1669,9 +1882,8 @@ module Aws::EC2
1669
1882
  # If you create an AMI on an Outpost, then all backing snapshots must be
1670
1883
  # on the same Outpost or in the Region of that Outpost. AMIs on an
1671
1884
  # Outpost that include local snapshots can be used to launch instances
1672
- # on the same Outpost only. For more information, [ Amazon EBS local
1673
- # snapshots on Outposts][1] in the *Amazon Elastic Compute Cloud User
1674
- # Guide*.
1885
+ # on the same Outpost only. For more information, [Amazon EBS local
1886
+ # snapshots on Outposts][1] in the *Amazon EC2 User Guide*.
1675
1887
  #
1676
1888
  #
1677
1889
  #
@@ -1699,8 +1911,19 @@ module Aws::EC2
1699
1911
  # single quotes ('), at-signs (@), or underscores(\_)
1700
1912
  # @option options [Array<String>] :billing_products
1701
1913
  # The billing product codes. Your account must be authorized to specify
1702
- # billing product codes. Otherwise, you can use the Amazon Web Services
1703
- # Marketplace to bill for the use of an AMI.
1914
+ # billing product codes.
1915
+ #
1916
+ # If your account is not authorized to specify billing product codes,
1917
+ # you can publish AMIs that include billable software and list them on
1918
+ # the Amazon Web Services Marketplace. You must first register as a
1919
+ # seller on the Amazon Web Services Marketplace. For more information,
1920
+ # see [Getting started as a seller][1] and [AMI-based products][2] in
1921
+ # the *Amazon Web Services Marketplace Seller Guide*.
1922
+ #
1923
+ #
1924
+ #
1925
+ # [1]: https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html
1926
+ # [2]: https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html
1704
1927
  # @option options [String] :ramdisk_id
1705
1928
  # The ID of the RAM disk.
1706
1929
  # @option options [String] :root_device_name
@@ -1719,15 +1942,60 @@ module Aws::EC2
1719
1942
  #
1720
1943
  # Default: `paravirtual`
1721
1944
  # @option options [String] :boot_mode
1722
- # The boot mode of the AMI. For more information, see [Boot modes][1] in
1723
- # the *Amazon Elastic Compute Cloud User Guide*.
1945
+ # The boot mode of the AMI. A value of `uefi-preferred` indicates that
1946
+ # the AMI supports both UEFI and Legacy BIOS.
1947
+ #
1948
+ # <note markdown="1"> The operating system contained in the AMI must be configured to
1949
+ # support the specified boot mode.
1950
+ #
1951
+ # </note>
1952
+ #
1953
+ # For more information, see [Boot modes][1] in the *Amazon EC2 User
1954
+ # Guide*.
1724
1955
  #
1725
1956
  #
1726
1957
  #
1727
1958
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html
1959
+ # @option options [String] :tpm_support
1960
+ # Set to `v2.0` to enable Trusted Platform Module (TPM) support. For
1961
+ # more information, see [NitroTPM][1] in the *Amazon EC2 User Guide*.
1962
+ #
1963
+ #
1964
+ #
1965
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html
1966
+ # @option options [String] :uefi_data
1967
+ # Base64 representation of the non-volatile UEFI variable store. To
1968
+ # retrieve the UEFI data, use the [GetInstanceUefiData][1] command. You
1969
+ # can inspect and modify the UEFI data by using the [python-uefivars
1970
+ # tool][2] on GitHub. For more information, see [UEFI Secure Boot][3] in
1971
+ # the *Amazon EC2 User Guide*.
1972
+ #
1973
+ #
1974
+ #
1975
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceUefiData
1976
+ # [2]: https://github.com/awslabs/python-uefivars
1977
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html
1978
+ # @option options [String] :imds_support
1979
+ # Set to `v2.0` to indicate that IMDSv2 is specified in the AMI.
1980
+ # Instances launched from this AMI will have `HttpTokens` automatically
1981
+ # set to `required` so that, by default, the instance requires that
1982
+ # IMDSv2 is used when requesting instance metadata. In addition,
1983
+ # `HttpPutResponseHopLimit` is set to `2`. For more information, see
1984
+ # [Configure the AMI][1] in the *Amazon EC2 User Guide*.
1985
+ #
1986
+ # <note markdown="1"> If you set the value to `v2.0`, make sure that your AMI software can
1987
+ # support IMDSv2.
1988
+ #
1989
+ # </note>
1990
+ #
1991
+ #
1992
+ #
1993
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration
1728
1994
  # @return [Image]
1729
1995
  def register_image(options = {})
1730
- resp = @client.register_image(options)
1996
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1997
+ @client.register_image(options)
1998
+ end
1731
1999
  Image.new(
1732
2000
  id: resp.data.image_id,
1733
2001
  client: @client
@@ -1753,12 +2021,9 @@ module Aws::EC2
1753
2021
  # @option options [Array<Types::Filter>] :filters
1754
2022
  # One or more filters. Filter names and values are case-sensitive.
1755
2023
  #
1756
- # * `allocation-id` - \[EC2-VPC\] The allocation ID for the address.
2024
+ # * `allocation-id` - The allocation ID for the address.
1757
2025
  #
1758
- # * `association-id` - \[EC2-VPC\] The association ID for the address.
1759
- #
1760
- # * `domain` - Indicates whether the address is for use in EC2-Classic
1761
- # (`standard`) or in a VPC (`vpc`).
2026
+ # * `association-id` - The association ID for the address.
1762
2027
  #
1763
2028
  # * `instance-id` - The ID of the instance the address is associated
1764
2029
  # with, if any.
@@ -1767,18 +2032,18 @@ module Aws::EC2
1767
2032
  # Zones, or Wavelength Zones from where Amazon Web Services advertises
1768
2033
  # IP addresses.
1769
2034
  #
1770
- # * `network-interface-id` - \[EC2-VPC\] The ID of the network interface
1771
- # that the address is associated with, if any.
2035
+ # * `network-interface-id` - The ID of the network interface that the
2036
+ # address is associated with, if any.
1772
2037
  #
1773
2038
  # * `network-interface-owner-id` - The Amazon Web Services account ID of
1774
2039
  # the owner.
1775
2040
  #
1776
- # * `private-ip-address` - \[EC2-VPC\] The private IP address associated
1777
- # with the Elastic IP address.
2041
+ # * `private-ip-address` - The private IP address associated with the
2042
+ # Elastic IP address.
1778
2043
  #
1779
2044
  # * `public-ip` - The Elastic IP address, or the carrier IP address.
1780
2045
  #
1781
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
2046
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
1782
2047
  # the resource. Use the tag key in the filter name and the tag value
1783
2048
  # as the filter value. For example, to find all resources that have a
1784
2049
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -1792,7 +2057,7 @@ module Aws::EC2
1792
2057
  #
1793
2058
  # Default: Describes all your Elastic IP addresses.
1794
2059
  # @option options [Array<String>] :allocation_ids
1795
- # \[EC2-VPC\] Information about the allocation IDs.
2060
+ # Information about the allocation IDs.
1796
2061
  # @option options [Boolean] :dry_run
1797
2062
  # Checks whether you have the required permissions for the action,
1798
2063
  # without actually making the request, and provides an error response.
@@ -1806,7 +2071,9 @@ module Aws::EC2
1806
2071
  name: "domain",
1807
2072
  values: ["standard"]
1808
2073
  }])
1809
- resp = @client.describe_addresses(options)
2074
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2075
+ @client.describe_addresses(options)
2076
+ end
1810
2077
  resp.data.addresses.each do |a|
1811
2078
  batch << ClassicAddress.new(
1812
2079
  public_ip: a.public_ip,
@@ -1846,7 +2113,7 @@ module Aws::EC2
1846
2113
  #
1847
2114
  # Default: Describes all your DHCP options sets.
1848
2115
  # @option options [Array<Types::Filter>] :filters
1849
- # One or more filters.
2116
+ # The filters.
1850
2117
  #
1851
2118
  # * `dhcp-options-id` - The ID of a DHCP options set.
1852
2119
  #
@@ -1857,7 +2124,7 @@ module Aws::EC2
1857
2124
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
1858
2125
  # DHCP options set.
1859
2126
  #
1860
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
2127
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
1861
2128
  # the resource. Use the tag key in the filter name and the tag value
1862
2129
  # as the filter value. For example, to find all resources that have a
1863
2130
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -1874,7 +2141,9 @@ module Aws::EC2
1874
2141
  # @return [DhcpOptions::Collection]
1875
2142
  def dhcp_options_sets(options = {})
1876
2143
  batches = Enumerator.new do |y|
1877
- resp = @client.describe_dhcp_options(options)
2144
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2145
+ @client.describe_dhcp_options(options)
2146
+ end
1878
2147
  resp.each_page do |page|
1879
2148
  batch = []
1880
2149
  page.data.dhcp_options.each do |d|
@@ -1912,6 +2181,7 @@ module Aws::EC2
1912
2181
  # image_ids: ["ImageId"],
1913
2182
  # owners: ["String"],
1914
2183
  # include_deprecated: false,
2184
+ # include_disabled: false,
1915
2185
  # dry_run: false,
1916
2186
  # })
1917
2187
  # @param [Hash] options ({})
@@ -1935,7 +2205,7 @@ module Aws::EC2
1935
2205
  # The filters.
1936
2206
  #
1937
2207
  # * `architecture` - The image architecture (`i386` \| `x86_64` \|
1938
- # `arm64`).
2208
+ # `arm64` \| `x86_64_mac` \| `arm64_mac`).
1939
2209
  #
1940
2210
  # * `block-device-mapping.delete-on-termination` - A Boolean value that
1941
2211
  # indicates whether the Amazon EBS volume is deleted on instance
@@ -1957,6 +2227,11 @@ module Aws::EC2
1957
2227
  # * `block-device-mapping.encrypted` - A Boolean that indicates whether
1958
2228
  # the Amazon EBS volume is encrypted.
1959
2229
  #
2230
+ # * `creation-date` - The time when the image was created, in the ISO
2231
+ # 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for
2232
+ # example, `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`),
2233
+ # for example, `2021-09-29T*`, which matches an entire day.
2234
+ #
1960
2235
  # * `description` - The description of the image (provided during image
1961
2236
  # creation).
1962
2237
  #
@@ -1987,8 +2262,7 @@ module Aws::EC2
1987
2262
  # recommend that you use the **Owner** request parameter instead of
1988
2263
  # this filter.
1989
2264
  #
1990
- # * `platform` - The platform. To only list Windows-based AMIs, use
1991
- # `windows`.
2265
+ # * `platform` - The platform. The only supported value is `windows`.
1992
2266
  #
1993
2267
  # * `product-code` - The product code.
1994
2268
  #
@@ -2002,6 +2276,10 @@ module Aws::EC2
2002
2276
  # * `root-device-type` - The type of the root device volume (`ebs` \|
2003
2277
  # `instance-store`).
2004
2278
  #
2279
+ # * `source-instance-id` - The ID of the instance that the AMI was
2280
+ # created from if the AMI was created using CreateImage. This filter
2281
+ # is applicable only if the AMI was created using [CreateImage][1].
2282
+ #
2005
2283
  # * `state` - The state of the image (`available` \| `pending` \|
2006
2284
  # `failed`).
2007
2285
  #
@@ -2012,7 +2290,7 @@ module Aws::EC2
2012
2290
  # * `sriov-net-support` - A value of `simple` indicates that enhanced
2013
2291
  # networking with the Intel 82599 VF interface is enabled.
2014
2292
  #
2015
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
2293
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2016
2294
  # the resource. Use the tag key in the filter name and the tag value
2017
2295
  # as the filter value. For example, to find all resources that have a
2018
2296
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2024,6 +2302,10 @@ module Aws::EC2
2024
2302
  #
2025
2303
  # * `virtualization-type` - The virtualization type (`paravirtual` \|
2026
2304
  # `hvm`).
2305
+ #
2306
+ #
2307
+ #
2308
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html
2027
2309
  # @option options [Array<String>] :image_ids
2028
2310
  # The image IDs.
2029
2311
  #
@@ -2035,15 +2317,18 @@ module Aws::EC2
2035
2317
  # results include all images for which you have launch permissions,
2036
2318
  # regardless of ownership.
2037
2319
  # @option options [Boolean] :include_deprecated
2038
- # If `true`, all deprecated AMIs are included in the response. If
2039
- # `false`, no deprecated AMIs are included in the response. If no value
2040
- # is specified, the default value is `false`.
2320
+ # Specifies whether to include deprecated AMIs.
2321
+ #
2322
+ # Default: No deprecated AMIs are included in the response.
2041
2323
  #
2042
2324
  # <note markdown="1"> If you are the AMI owner, all deprecated AMIs appear in the response
2043
- # regardless of the value (`true` or `false`) that you set for this
2044
- # parameter.
2325
+ # regardless of what you specify for this parameter.
2045
2326
  #
2046
2327
  # </note>
2328
+ # @option options [Boolean] :include_disabled
2329
+ # Specifies whether to include disabled AMIs.
2330
+ #
2331
+ # Default: No disabled AMIs are included in the response.
2047
2332
  # @option options [Boolean] :dry_run
2048
2333
  # Checks whether you have the required permissions for the action,
2049
2334
  # without actually making the request, and provides an error response.
@@ -2052,16 +2337,20 @@ module Aws::EC2
2052
2337
  # @return [Image::Collection]
2053
2338
  def images(options = {})
2054
2339
  batches = Enumerator.new do |y|
2055
- batch = []
2056
- resp = @client.describe_images(options)
2057
- resp.data.images.each do |i|
2058
- batch << Image.new(
2059
- id: i.image_id,
2060
- data: i,
2061
- client: @client
2062
- )
2340
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2341
+ @client.describe_images(options)
2342
+ end
2343
+ resp.each_page do |page|
2344
+ batch = []
2345
+ page.data.images.each do |i|
2346
+ batch << Image.new(
2347
+ id: i.image_id,
2348
+ data: i,
2349
+ client: @client
2350
+ )
2351
+ end
2352
+ y.yield(batch)
2063
2353
  end
2064
- y.yield(batch)
2065
2354
  end
2066
2355
  Image::Collection.new(batches)
2067
2356
  end
@@ -2101,7 +2390,7 @@ module Aws::EC2
2101
2390
  #
2102
2391
  # * `block-device-mapping.attach-time` - The attach time for an EBS
2103
2392
  # volume mapped to the instance, for example,
2104
- # `2010-09-15T17:15:20.000Z`.
2393
+ # `2022-09-15T17:15:20.000Z`.
2105
2394
  #
2106
2395
  # * `block-device-mapping.delete-on-termination` - A Boolean that
2107
2396
  # indicates whether the EBS volume is deleted on instance termination.
@@ -2114,16 +2403,38 @@ module Aws::EC2
2114
2403
  #
2115
2404
  # * `block-device-mapping.volume-id` - The volume ID of the EBS volume.
2116
2405
  #
2406
+ # * `boot-mode` - The boot mode that was specified by the AMI
2407
+ # (`legacy-bios` \| `uefi` \| `uefi-preferred`).
2408
+ #
2409
+ # * `capacity-reservation-id` - The ID of the Capacity Reservation into
2410
+ # which the instance was launched.
2411
+ #
2412
+ # * `capacity-reservation-specification.capacity-reservation-preference`
2413
+ # - The instance's Capacity Reservation preference (`open` \|
2414
+ # `none`).
2415
+ #
2416
+ # * `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id`
2417
+ # - The ID of the targeted Capacity Reservation.
2418
+ #
2419
+ # * `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn`
2420
+ # - The ARN of the targeted Capacity Reservation group.
2421
+ #
2117
2422
  # * `client-token` - The idempotency token you provided when you
2118
2423
  # launched the instance.
2119
2424
  #
2425
+ # * `current-instance-boot-mode` - The boot mode that is used to launch
2426
+ # the instance at launch or start (`legacy-bios` \| `uefi`).
2427
+ #
2120
2428
  # * `dns-name` - The public DNS name of the instance.
2121
2429
  #
2122
- # * `group-id` - The ID of the security group for the instance.
2123
- # EC2-Classic only.
2430
+ # * `ebs-optimized` - A Boolean that indicates whether the instance is
2431
+ # optimized for Amazon EBS I/O.
2432
+ #
2433
+ # * `ena-support` - A Boolean that indicates whether the instance is
2434
+ # enabled for enhanced networking with ENA.
2124
2435
  #
2125
- # * `group-name` - The name of the security group for the instance.
2126
- # EC2-Classic only.
2436
+ # * `enclave-options.enabled` - A Boolean that indicates whether the
2437
+ # instance is enabled for Amazon Web Services Nitro Enclaves.
2127
2438
  #
2128
2439
  # * `hibernation-options.configured` - A Boolean that indicates whether
2129
2440
  # the instance is enabled for hibernation. A value of `true` means
@@ -2138,6 +2449,12 @@ module Aws::EC2
2138
2449
  # * `iam-instance-profile.arn` - The instance profile associated with
2139
2450
  # the instance. Specified as an ARN.
2140
2451
  #
2452
+ # * `iam-instance-profile.id` - The instance profile associated with the
2453
+ # instance. Specified as an ID.
2454
+ #
2455
+ # * `iam-instance-profile.name` - The instance profile associated with
2456
+ # the instance. Specified as an name.
2457
+ #
2141
2458
  # * `image-id` - The ID of the image used to launch the instance.
2142
2459
  #
2143
2460
  # * `instance-id` - The ID of the instance.
@@ -2164,6 +2481,8 @@ module Aws::EC2
2164
2481
  #
2165
2482
  # * `ip-address` - The public IPv4 address of the instance.
2166
2483
  #
2484
+ # * `ipv6-address` - The IPv6 address of the instance.
2485
+ #
2167
2486
  # * `kernel-id` - The kernel ID.
2168
2487
  #
2169
2488
  # * `key-name` - The name of the key pair used when the instance was
@@ -2178,38 +2497,65 @@ module Aws::EC2
2178
2497
  # example, `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`),
2179
2498
  # for example, `2021-09-29T*`, which matches an entire day.
2180
2499
  #
2181
- # * `metadata-options.http-tokens` - The metadata request authorization
2182
- # state (`optional` \| `required`)
2500
+ # * `maintenance-options.auto-recovery` - The current automatic recovery
2501
+ # behavior of the instance (`disabled` \| `default`).
2502
+ #
2503
+ # * `metadata-options.http-endpoint` - The status of access to the HTTP
2504
+ # metadata endpoint on your instance (`enabled` \| `disabled`)
2505
+ #
2506
+ # * `metadata-options.http-protocol-ipv4` - Indicates whether the IPv4
2507
+ # endpoint is enabled (`disabled` \| `enabled`).
2183
2508
  #
2184
- # * `metadata-options.http-put-response-hop-limit` - The http metadata
2509
+ # * `metadata-options.http-protocol-ipv6` - Indicates whether the IPv6
2510
+ # endpoint is enabled (`disabled` \| `enabled`).
2511
+ #
2512
+ # * `metadata-options.http-put-response-hop-limit` - The HTTP metadata
2185
2513
  # request put response hop limit (integer, possible values `1` to
2186
2514
  # `64`)
2187
2515
  #
2188
- # * `metadata-options.http-endpoint` - Enable or disable metadata access
2189
- # on http endpoint (`enabled` \| `disabled`)
2516
+ # * `metadata-options.http-tokens` - The metadata request authorization
2517
+ # state (`optional` \| `required`)
2518
+ #
2519
+ # * `metadata-options.instance-metadata-tags` - The status of access to
2520
+ # instance tags from the instance metadata (`enabled` \| `disabled`)
2521
+ #
2522
+ # * `metadata-options.state` - The state of the metadata option changes
2523
+ # (`pending` \| `applied`).
2190
2524
  #
2191
2525
  # * `monitoring-state` - Indicates whether detailed monitoring is
2192
2526
  # enabled (`disabled` \| `enabled`).
2193
2527
  #
2194
- # * `network-interface.addresses.private-ip-address` - The private IPv4
2195
- # address associated with the network interface.
2528
+ # * `network-interface.addresses.association.allocation-id` - The
2529
+ # allocation ID.
2196
2530
  #
2197
- # * `network-interface.addresses.primary` - Specifies whether the IPv4
2198
- # address of the network interface is the primary private IPv4
2199
- # address.
2531
+ # * `network-interface.addresses.association.association-id` - The
2532
+ # association ID.
2533
+ #
2534
+ # * `network-interface.addresses.association.carrier-ip` - The carrier
2535
+ # IP address.
2536
+ #
2537
+ # * `network-interface.addresses.association.customer-owned-ip` - The
2538
+ # customer-owned IP address.
2539
+ #
2540
+ # * `network-interface.addresses.association.ip-owner-id` - The owner ID
2541
+ # of the private IPv4 address associated with the network interface.
2542
+ #
2543
+ # * `network-interface.addresses.association.public-dns-name` - The
2544
+ # public DNS name.
2200
2545
  #
2201
2546
  # * `network-interface.addresses.association.public-ip` - The ID of the
2202
2547
  # association of an Elastic IP address (IPv4) with a network
2203
2548
  # interface.
2204
2549
  #
2205
- # * `network-interface.addresses.association.ip-owner-id` - The owner ID
2206
- # of the private IPv4 address associated with the network interface.
2550
+ # * `network-interface.addresses.primary` - Specifies whether the IPv4
2551
+ # address of the network interface is the primary private IPv4
2552
+ # address.
2207
2553
  #
2208
- # * `network-interface.association.public-ip` - The address of the
2209
- # Elastic IP address (IPv4) bound to the network interface.
2554
+ # * `network-interface.addresses.private-dns-name` - The private DNS
2555
+ # name.
2210
2556
  #
2211
- # * `network-interface.association.ip-owner-id` - The owner of the
2212
- # Elastic IP address (IPv4) associated with the network interface.
2557
+ # * `network-interface.addresses.private-ip-address` - The private IPv4
2558
+ # address associated with the network interface.
2213
2559
  #
2214
2560
  # * `network-interface.association.allocation-id` - The allocation ID
2215
2561
  # returned when you allocated the Elastic IP address (IPv4) for your
@@ -2219,30 +2565,52 @@ module Aws::EC2
2219
2565
  # returned when the network interface was associated with an IPv4
2220
2566
  # address.
2221
2567
  #
2568
+ # * `network-interface.association.carrier-ip` - The customer-owned IP
2569
+ # address.
2570
+ #
2571
+ # * `network-interface.association.customer-owned-ip` - The
2572
+ # customer-owned IP address.
2573
+ #
2574
+ # * `network-interface.association.ip-owner-id` - The owner of the
2575
+ # Elastic IP address (IPv4) associated with the network interface.
2576
+ #
2577
+ # * `network-interface.association.public-dns-name` - The public DNS
2578
+ # name.
2579
+ #
2580
+ # * `network-interface.association.public-ip` - The address of the
2581
+ # Elastic IP address (IPv4) bound to the network interface.
2582
+ #
2583
+ # * `network-interface.attachment.attach-time` - The time that the
2584
+ # network interface was attached to an instance.
2585
+ #
2222
2586
  # * `network-interface.attachment.attachment-id` - The ID of the
2223
2587
  # interface attachment.
2224
2588
  #
2589
+ # * `network-interface.attachment.delete-on-termination` - Specifies
2590
+ # whether the attachment is deleted when an instance is terminated.
2591
+ #
2592
+ # * `network-interface.attachment.device-index` - The device index to
2593
+ # which the network interface is attached.
2594
+ #
2225
2595
  # * `network-interface.attachment.instance-id` - The ID of the instance
2226
2596
  # to which the network interface is attached.
2227
2597
  #
2228
2598
  # * `network-interface.attachment.instance-owner-id` - The owner ID of
2229
2599
  # the instance to which the network interface is attached.
2230
2600
  #
2231
- # * `network-interface.attachment.device-index` - The device index to
2232
- # which the network interface is attached.
2601
+ # * `network-interface.attachment.network-card-index` - The index of the
2602
+ # network card.
2233
2603
  #
2234
2604
  # * `network-interface.attachment.status` - The status of the attachment
2235
2605
  # (`attaching` \| `attached` \| `detaching` \| `detached`).
2236
2606
  #
2237
- # * `network-interface.attachment.attach-time` - The time that the
2238
- # network interface was attached to an instance.
2239
- #
2240
- # * `network-interface.attachment.delete-on-termination` - Specifies
2241
- # whether the attachment is deleted when an instance is terminated.
2242
- #
2243
2607
  # * `network-interface.availability-zone` - The Availability Zone for
2244
2608
  # the network interface.
2245
2609
  #
2610
+ # * `network-interface.deny-all-igw-traffic` - A Boolean that indicates
2611
+ # whether a network interface with an IPv6 address is unreachable from
2612
+ # the public internet.
2613
+ #
2246
2614
  # * `network-interface.description` - The description of the network
2247
2615
  # interface.
2248
2616
  #
@@ -2252,21 +2620,42 @@ module Aws::EC2
2252
2620
  # * `network-interface.group-name` - The name of a security group
2253
2621
  # associated with the network interface.
2254
2622
  #
2623
+ # * `network-interface.ipv4-prefixes.ipv4-prefix` - The IPv4 prefixes
2624
+ # that are assigned to the network interface.
2625
+ #
2626
+ # * `network-interface.ipv6-address` - The IPv6 address associated with
2627
+ # the network interface.
2628
+ #
2255
2629
  # * `network-interface.ipv6-addresses.ipv6-address` - The IPv6 address
2256
2630
  # associated with the network interface.
2257
2631
  #
2632
+ # * `network-interface.ipv6-addresses.is-primary-ipv6` - A Boolean that
2633
+ # indicates whether this is the primary IPv6 address.
2634
+ #
2635
+ # * `network-interface.ipv6-native` - A Boolean that indicates whether
2636
+ # this is an IPv6 only network interface.
2637
+ #
2638
+ # * `network-interface.ipv6-prefixes.ipv6-prefix` - The IPv6 prefix
2639
+ # assigned to the network interface.
2640
+ #
2258
2641
  # * `network-interface.mac-address` - The MAC address of the network
2259
2642
  # interface.
2260
2643
  #
2261
2644
  # * `network-interface.network-interface-id` - The ID of the network
2262
2645
  # interface.
2263
2646
  #
2647
+ # * `network-interface.outpost-arn` - The ARN of the Outpost.
2648
+ #
2264
2649
  # * `network-interface.owner-id` - The ID of the owner of the network
2265
2650
  # interface.
2266
2651
  #
2267
2652
  # * `network-interface.private-dns-name` - The private DNS name of the
2268
2653
  # network interface.
2269
2654
  #
2655
+ # * `network-interface.private-ip-address` - The private IPv4 address.
2656
+ #
2657
+ # * `network-interface.public-dns-name` - The public DNS name.
2658
+ #
2270
2659
  # * `network-interface.requester-id` - The requester ID for the network
2271
2660
  # interface.
2272
2661
  #
@@ -2285,6 +2674,12 @@ module Aws::EC2
2285
2674
  # * `network-interface.subnet-id` - The ID of the subnet for the network
2286
2675
  # interface.
2287
2676
  #
2677
+ # * `network-interface.tag-key` - The key of a tag assigned to the
2678
+ # network interface.
2679
+ #
2680
+ # * `network-interface.tag-value` - The value of a tag assigned to the
2681
+ # network interface.
2682
+ #
2288
2683
  # * `network-interface.vpc-id` - The ID of the VPC for the network
2289
2684
  # interface.
2290
2685
  #
@@ -2302,8 +2697,31 @@ module Aws::EC2
2302
2697
  # * `platform` - The platform. To list only Windows instances, use
2303
2698
  # `windows`.
2304
2699
  #
2700
+ # * `platform-details` - The platform (`Linux/UNIX` \| `Red Hat BYOL
2701
+ # Linux` \| ` Red Hat Enterprise Linux` \| `Red Hat Enterprise Linux
2702
+ # with HA` \| `Red Hat Enterprise Linux with SQL Server Standard and
2703
+ # HA` \| `Red Hat Enterprise Linux with SQL Server Enterprise and HA`
2704
+ # \| `Red Hat Enterprise Linux with SQL Server Standard` \| `Red Hat
2705
+ # Enterprise Linux with SQL Server Web` \| `Red Hat Enterprise Linux
2706
+ # with SQL Server Enterprise` \| `SQL Server Enterprise` \| `SQL
2707
+ # Server Standard` \| `SQL Server Web` \| `SUSE Linux` \| `Ubuntu Pro`
2708
+ # \| `Windows` \| `Windows BYOL` \| `Windows with SQL Server
2709
+ # Enterprise` \| `Windows with SQL Server Standard` \| `Windows with
2710
+ # SQL Server Web`).
2711
+ #
2305
2712
  # * `private-dns-name` - The private IPv4 DNS name of the instance.
2306
2713
  #
2714
+ # * `private-dns-name-options.enable-resource-name-dns-a-record` - A
2715
+ # Boolean that indicates whether to respond to DNS queries for
2716
+ # instance hostnames with DNS A records.
2717
+ #
2718
+ # * `private-dns-name-options.enable-resource-name-dns-aaaa-record` - A
2719
+ # Boolean that indicates whether to respond to DNS queries for
2720
+ # instance hostnames with DNS AAAA records.
2721
+ #
2722
+ # * `private-dns-name-options.hostname-type` - The type of hostname
2723
+ # (`ip-name` \| `resource-name`).
2724
+ #
2307
2725
  # * `private-ip-address` - The private IPv4 address of the instance.
2308
2726
  #
2309
2727
  # * `product-code` - The product code associated with the AMI used to
@@ -2364,6 +2782,21 @@ module Aws::EC2
2364
2782
  # * `tenancy` - The tenancy of an instance (`dedicated` \| `default` \|
2365
2783
  # `host`).
2366
2784
  #
2785
+ # * `tpm-support` - Indicates if the instance is configured for NitroTPM
2786
+ # support (`v2.0`).
2787
+ #
2788
+ # * `usage-operation` - The usage operation value for the instance
2789
+ # (`RunInstances` \| `RunInstances:00g0` \| `RunInstances:0010` \|
2790
+ # `RunInstances:1010` \| `RunInstances:1014` \| `RunInstances:1110` \|
2791
+ # `RunInstances:0014` \| `RunInstances:0210` \| `RunInstances:0110` \|
2792
+ # `RunInstances:0100` \| `RunInstances:0004` \| `RunInstances:0200` \|
2793
+ # `RunInstances:000g` \| `RunInstances:0g00` \| `RunInstances:0002` \|
2794
+ # `RunInstances:0800` \| `RunInstances:0102` \| `RunInstances:0006` \|
2795
+ # `RunInstances:0202`).
2796
+ #
2797
+ # * `usage-operation-update-time` - The time that the usage operation
2798
+ # was last updated, for example, `2022-09-15T17:15:20.000Z`.
2799
+ #
2367
2800
  # * `virtualization-type` - The virtualization type of the instance
2368
2801
  # (`paravirtual` \| `hvm`).
2369
2802
  #
@@ -2380,7 +2813,9 @@ module Aws::EC2
2380
2813
  # @return [Instance::Collection]
2381
2814
  def instances(options = {})
2382
2815
  batches = Enumerator.new do |y|
2383
- resp = @client.describe_instances(options)
2816
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2817
+ @client.describe_instances(options)
2818
+ end
2384
2819
  resp.each_page do |page|
2385
2820
  batch = []
2386
2821
  page.data.reservations.each do |r|
@@ -2421,7 +2856,7 @@ module Aws::EC2
2421
2856
  # })
2422
2857
  # @param [Hash] options ({})
2423
2858
  # @option options [Array<Types::Filter>] :filters
2424
- # One or more filters.
2859
+ # The filters.
2425
2860
  #
2426
2861
  # * `attachment.state` - The current state of the attachment between the
2427
2862
  # gateway and the VPC (`available`). Present only if a VPC is
@@ -2434,7 +2869,7 @@ module Aws::EC2
2434
2869
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
2435
2870
  # internet gateway.
2436
2871
  #
2437
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
2872
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2438
2873
  # the resource. Use the tag key in the filter name and the tag value
2439
2874
  # as the filter value. For example, to find all resources that have a
2440
2875
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2449,13 +2884,15 @@ module Aws::EC2
2449
2884
  # If you have the required permissions, the error response is
2450
2885
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2451
2886
  # @option options [Array<String>] :internet_gateway_ids
2452
- # One or more internet gateway IDs.
2887
+ # The IDs of the internet gateways.
2453
2888
  #
2454
2889
  # Default: Describes all your internet gateways.
2455
2890
  # @return [InternetGateway::Collection]
2456
2891
  def internet_gateways(options = {})
2457
2892
  batches = Enumerator.new do |y|
2458
- resp = @client.describe_internet_gateways(options)
2893
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2894
+ @client.describe_internet_gateways(options)
2895
+ end
2459
2896
  resp.each_page do |page|
2460
2897
  batch = []
2461
2898
  page.data.internet_gateways.each do |i|
@@ -2492,6 +2929,7 @@ module Aws::EC2
2492
2929
  # key_names: ["KeyPairName"],
2493
2930
  # key_pair_ids: ["KeyPairId"],
2494
2931
  # dry_run: false,
2932
+ # include_public_key: false,
2495
2933
  # })
2496
2934
  # @param [Hash] options ({})
2497
2935
  # @option options [Array<Types::Filter>] :filters
@@ -2507,7 +2945,7 @@ module Aws::EC2
2507
2945
  # filter to find all resources assigned a tag with a specific key,
2508
2946
  # regardless of the tag value.
2509
2947
  #
2510
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
2948
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2511
2949
  # the resource. Use the tag key in the filter name and the tag value
2512
2950
  # as the filter value. For example, to find all resources that have a
2513
2951
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2523,11 +2961,17 @@ module Aws::EC2
2523
2961
  # without actually making the request, and provides an error response.
2524
2962
  # If you have the required permissions, the error response is
2525
2963
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2964
+ # @option options [Boolean] :include_public_key
2965
+ # If `true`, the public key material is included in the response.
2966
+ #
2967
+ # Default: `false`
2526
2968
  # @return [KeyPairInfo::Collection]
2527
2969
  def key_pairs(options = {})
2528
2970
  batches = Enumerator.new do |y|
2529
2971
  batch = []
2530
- resp = @client.describe_key_pairs(options)
2972
+ resp = Aws::Plugins::UserAgent.feature('resource') do
2973
+ @client.describe_key_pairs(options)
2974
+ end
2531
2975
  resp.data.key_pairs.each do |k|
2532
2976
  batch << KeyPairInfo.new(
2533
2977
  name: k.key_name,
@@ -2568,7 +3012,7 @@ module Aws::EC2
2568
3012
  # If you have the required permissions, the error response is
2569
3013
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2570
3014
  # @option options [Array<Types::Filter>] :filter
2571
- # One or more filters.
3015
+ # The filters.
2572
3016
  #
2573
3017
  # * `nat-gateway-id` - The ID of the NAT gateway.
2574
3018
  #
@@ -2577,7 +3021,7 @@ module Aws::EC2
2577
3021
  #
2578
3022
  # * `subnet-id` - The ID of the subnet in which the NAT gateway resides.
2579
3023
  #
2580
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3024
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2581
3025
  # the resource. Use the tag key in the filter name and the tag value
2582
3026
  # as the filter value. For example, to find all resources that have a
2583
3027
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2589,11 +3033,13 @@ module Aws::EC2
2589
3033
  #
2590
3034
  # * `vpc-id` - The ID of the VPC in which the NAT gateway resides.
2591
3035
  # @option options [Array<String>] :nat_gateway_ids
2592
- # One or more NAT gateway IDs.
3036
+ # The IDs of the NAT gateways.
2593
3037
  # @return [NatGateway::Collection]
2594
3038
  def nat_gateways(options = {})
2595
3039
  batches = Enumerator.new do |y|
2596
- resp = @client.describe_nat_gateways(options)
3040
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3041
+ @client.describe_nat_gateways(options)
3042
+ end
2597
3043
  resp.each_page do |page|
2598
3044
  batch = []
2599
3045
  page.data.nat_gateways.each do |n|
@@ -2632,7 +3078,7 @@ module Aws::EC2
2632
3078
  # })
2633
3079
  # @param [Hash] options ({})
2634
3080
  # @option options [Array<Types::Filter>] :filters
2635
- # One or more filters.
3081
+ # The filters.
2636
3082
  #
2637
3083
  # * `association.association-id` - The ID of an association ID for the
2638
3084
  # ACL.
@@ -2666,6 +3112,9 @@ module Aws::EC2
2666
3112
  # * `entry.rule-action` - Allows or denies the matching traffic (`allow`
2667
3113
  # \| `deny`).
2668
3114
  #
3115
+ # * `entry.egress` - A Boolean that indicates the type of rule. Specify
3116
+ # `true` for egress rules, or `false` for ingress rules.
3117
+ #
2669
3118
  # * `entry.rule-number` - The number of an entry (in other words, rule)
2670
3119
  # in the set of ACL entries.
2671
3120
  #
@@ -2674,7 +3123,7 @@ module Aws::EC2
2674
3123
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
2675
3124
  # network ACL.
2676
3125
  #
2677
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3126
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2678
3127
  # the resource. Use the tag key in the filter name and the tag value
2679
3128
  # as the filter value. For example, to find all resources that have a
2680
3129
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2691,13 +3140,15 @@ module Aws::EC2
2691
3140
  # If you have the required permissions, the error response is
2692
3141
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2693
3142
  # @option options [Array<String>] :network_acl_ids
2694
- # One or more network ACL IDs.
3143
+ # The IDs of the network ACLs.
2695
3144
  #
2696
3145
  # Default: Describes all your network ACLs.
2697
3146
  # @return [NetworkAcl::Collection]
2698
3147
  def network_acls(options = {})
2699
3148
  batches = Enumerator.new do |y|
2700
- resp = @client.describe_network_acls(options)
3149
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3150
+ @client.describe_network_acls(options)
3151
+ end
2701
3152
  resp.each_page do |page|
2702
3153
  batch = []
2703
3154
  page.data.network_acls.each do |n|
@@ -2738,24 +3189,24 @@ module Aws::EC2
2738
3189
  # @option options [Array<Types::Filter>] :filters
2739
3190
  # One or more filters.
2740
3191
  #
2741
- # * `addresses.private-ip-address` - The private IPv4 addresses
2742
- # associated with the network interface.
3192
+ # * `association.allocation-id` - The allocation ID returned when you
3193
+ # allocated the Elastic IP address (IPv4) for your network interface.
2743
3194
  #
2744
- # * `addresses.primary` - Whether the private IPv4 address is the
2745
- # primary IP address associated with the network interface.
3195
+ # * `association.association-id` - The association ID returned when the
3196
+ # network interface was associated with an IPv4 address.
3197
+ #
3198
+ # * `addresses.association.owner-id` - The owner ID of the addresses
3199
+ # associated with the network interface.
2746
3200
  #
2747
3201
  # * `addresses.association.public-ip` - The association ID returned when
2748
3202
  # the network interface was associated with the Elastic IP address
2749
3203
  # (IPv4).
2750
3204
  #
2751
- # * `addresses.association.owner-id` - The owner ID of the addresses
2752
- # associated with the network interface.
2753
- #
2754
- # * `association.association-id` - The association ID returned when the
2755
- # network interface was associated with an IPv4 address.
3205
+ # * `addresses.primary` - Whether the private IPv4 address is the
3206
+ # primary IP address associated with the network interface.
2756
3207
  #
2757
- # * `association.allocation-id` - The allocation ID returned when you
2758
- # allocated the Elastic IP address (IPv4) for your network interface.
3208
+ # * `addresses.private-ip-address` - The private IPv4 addresses
3209
+ # associated with the network interface.
2759
3210
  #
2760
3211
  # * `association.ip-owner-id` - The owner of the Elastic IP address
2761
3212
  # (IPv4) associated with the network interface.
@@ -2766,11 +3217,11 @@ module Aws::EC2
2766
3217
  # * `association.public-dns-name` - The public DNS name for the network
2767
3218
  # interface (IPv4).
2768
3219
  #
2769
- # * `attachment.attachment-id` - The ID of the interface attachment.
2770
- #
2771
3220
  # * `attachment.attach-time` - The time that the network interface was
2772
3221
  # attached to an instance.
2773
3222
  #
3223
+ # * `attachment.attachment-id` - The ID of the interface attachment.
3224
+ #
2774
3225
  # * `attachment.delete-on-termination` - Indicates whether the
2775
3226
  # attachment is deleted when an instance is terminated.
2776
3227
  #
@@ -2794,12 +3245,18 @@ module Aws::EC2
2794
3245
  # * `group-id` - The ID of a security group associated with the network
2795
3246
  # interface.
2796
3247
  #
2797
- # * `group-name` - The name of a security group associated with the
2798
- # network interface.
2799
- #
2800
3248
  # * `ipv6-addresses.ipv6-address` - An IPv6 address associated with the
2801
3249
  # network interface.
2802
3250
  #
3251
+ # * `interface-type` - The type of network interface
3252
+ # (`api_gateway_managed` \| `aws_codestar_connections_managed` \|
3253
+ # `branch` \| `ec2_instance_connect_endpoint` \| `efa` \| `efs` \|
3254
+ # `gateway_load_balancer` \| `gateway_load_balancer_endpoint` \|
3255
+ # `global_accelerator_managed` \| `interface` \| `iot_rules_managed`
3256
+ # \| `lambda` \| `load_balancer` \| `nat_gateway` \|
3257
+ # `network_load_balancer` \| `quicksight` \| `transit_gateway` \|
3258
+ # `trunk` \| `vpc_endpoint`).
3259
+ #
2803
3260
  # * `mac-address` - The MAC address of the network interface.
2804
3261
  #
2805
3262
  # * `network-interface-id` - The ID of the network interface.
@@ -2807,12 +3264,12 @@ module Aws::EC2
2807
3264
  # * `owner-id` - The Amazon Web Services account ID of the network
2808
3265
  # interface owner.
2809
3266
  #
2810
- # * `private-ip-address` - The private IPv4 address or addresses of the
2811
- # network interface.
2812
- #
2813
3267
  # * `private-dns-name` - The private DNS name of the network interface
2814
3268
  # (IPv4).
2815
3269
  #
3270
+ # * `private-ip-address` - The private IPv4 address or addresses of the
3271
+ # network interface.
3272
+ #
2816
3273
  # * `requester-id` - The alias or Amazon Web Services account ID of the
2817
3274
  # principal or service that created the network interface.
2818
3275
  #
@@ -2833,7 +3290,7 @@ module Aws::EC2
2833
3290
  #
2834
3291
  # * `subnet-id` - The ID of the subnet for the network interface.
2835
3292
  #
2836
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3293
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2837
3294
  # the resource. Use the tag key in the filter name and the tag value
2838
3295
  # as the filter value. For example, to find all resources that have a
2839
3296
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -2850,13 +3307,15 @@ module Aws::EC2
2850
3307
  # If you have the required permissions, the error response is
2851
3308
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2852
3309
  # @option options [Array<String>] :network_interface_ids
2853
- # One or more network interface IDs.
3310
+ # The network interface IDs.
2854
3311
  #
2855
3312
  # Default: Describes all your network interfaces.
2856
3313
  # @return [NetworkInterface::Collection]
2857
3314
  def network_interfaces(options = {})
2858
3315
  batches = Enumerator.new do |y|
2859
- resp = @client.describe_network_interfaces(options)
3316
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3317
+ @client.describe_network_interfaces(options)
3318
+ end
2860
3319
  resp.each_page do |page|
2861
3320
  batch = []
2862
3321
  page.data.network_interfaces.each do |n|
@@ -2900,6 +3359,11 @@ module Aws::EC2
2900
3359
  #
2901
3360
  # * `group-name` - The name of the placement group.
2902
3361
  #
3362
+ # * `group-arn` - The Amazon Resource Name (ARN) of the placement group.
3363
+ #
3364
+ # * `spread-level` - The spread level for the placement group (`host` \|
3365
+ # `rack`).
3366
+ #
2903
3367
  # * `state` - The state of the placement group (`pending` \| `available`
2904
3368
  # \| `deleting` \| `deleted`).
2905
3369
  #
@@ -2931,7 +3395,9 @@ module Aws::EC2
2931
3395
  def placement_groups(options = {})
2932
3396
  batches = Enumerator.new do |y|
2933
3397
  batch = []
2934
- resp = @client.describe_placement_groups(options)
3398
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3399
+ @client.describe_placement_groups(options)
3400
+ end
2935
3401
  resp.data.placement_groups.each do |p|
2936
3402
  batch << PlacementGroup.new(
2937
3403
  name: p.group_name,
@@ -2976,7 +3442,7 @@ module Aws::EC2
2976
3442
  # })
2977
3443
  # @param [Hash] options ({})
2978
3444
  # @option options [Array<Types::Filter>] :filters
2979
- # One or more filters.
3445
+ # The filters.
2980
3446
  #
2981
3447
  # * `association.route-table-association-id` - The ID of an association
2982
3448
  # ID for the route table.
@@ -3034,7 +3500,7 @@ module Aws::EC2
3034
3500
  # * `route.vpc-peering-connection-id` - The ID of a VPC peering
3035
3501
  # connection specified in a route in the table.
3036
3502
  #
3037
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3503
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3038
3504
  # the resource. Use the tag key in the filter name and the tag value
3039
3505
  # as the filter value. For example, to find all resources that have a
3040
3506
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3051,13 +3517,15 @@ module Aws::EC2
3051
3517
  # If you have the required permissions, the error response is
3052
3518
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3053
3519
  # @option options [Array<String>] :route_table_ids
3054
- # One or more route table IDs.
3520
+ # The IDs of the route tables.
3055
3521
  #
3056
3522
  # Default: Describes all your route tables.
3057
3523
  # @return [RouteTable::Collection]
3058
3524
  def route_tables(options = {})
3059
3525
  batches = Enumerator.new do |y|
3060
- resp = @client.describe_route_tables(options)
3526
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3527
+ @client.describe_route_tables(options)
3528
+ end
3061
3529
  resp.each_page do |page|
3062
3530
  batch = []
3063
3531
  page.data.route_tables.each do |r|
@@ -3166,7 +3634,7 @@ module Aws::EC2
3166
3634
  # * `owner-id` - The Amazon Web Services account ID of the owner of the
3167
3635
  # security group.
3168
3636
  #
3169
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3637
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3170
3638
  # the resource. Use the tag key in the filter name and the tag value
3171
3639
  # as the filter value. For example, to find all resources that have a
3172
3640
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3184,10 +3652,8 @@ module Aws::EC2
3184
3652
  #
3185
3653
  # Default: Describes all of your security groups.
3186
3654
  # @option options [Array<String>] :group_names
3187
- # \[EC2-Classic and default VPC only\] The names of the security groups.
3188
- # You can specify either the security group name or the security group
3189
- # ID. For security groups in a nondefault VPC, use the `group-name`
3190
- # filter to describe security groups by name.
3655
+ # \[Default VPC\] The names of the security groups. You can specify
3656
+ # either the security group name or the security group ID.
3191
3657
  #
3192
3658
  # Default: Describes all of your security groups.
3193
3659
  # @option options [Boolean] :dry_run
@@ -3198,7 +3664,9 @@ module Aws::EC2
3198
3664
  # @return [SecurityGroup::Collection]
3199
3665
  def security_groups(options = {})
3200
3666
  batches = Enumerator.new do |y|
3201
- resp = @client.describe_security_groups(options)
3667
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3668
+ @client.describe_security_groups(options)
3669
+ end
3202
3670
  resp.each_page do |page|
3203
3671
  batch = []
3204
3672
  page.data.security_groups.each do |s|
@@ -3267,7 +3735,7 @@ module Aws::EC2
3267
3735
  # * `storage-tier` - The storage tier of the snapshot (`archive` \|
3268
3736
  # `standard`).
3269
3737
  #
3270
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3738
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3271
3739
  # the resource. Use the tag key in the filter name and the tag value
3272
3740
  # as the filter value. For example, to find all resources that have a
3273
3741
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3300,7 +3768,9 @@ module Aws::EC2
3300
3768
  # @return [Snapshot::Collection]
3301
3769
  def snapshots(options = {})
3302
3770
  batches = Enumerator.new do |y|
3303
- resp = @client.describe_snapshots(options)
3771
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3772
+ @client.describe_snapshots(options)
3773
+ end
3304
3774
  resp.each_page do |page|
3305
3775
  batch = []
3306
3776
  page.data.snapshots.each do |s|
@@ -3339,7 +3809,7 @@ module Aws::EC2
3339
3809
  # })
3340
3810
  # @param [Hash] options ({})
3341
3811
  # @option options [Array<Types::Filter>] :filters
3342
- # One or more filters.
3812
+ # The filters.
3343
3813
  #
3344
3814
  # * `availability-zone` - The Availability Zone for the subnet. You can
3345
3815
  # also use `availabilityZone` as the filter name.
@@ -3355,10 +3825,22 @@ module Aws::EC2
3355
3825
  # to be returned for the subnet. You can also use `cidr` or
3356
3826
  # `cidrBlock` as the filter names.
3357
3827
  #
3828
+ # * `customer-owned-ipv4-pool` - The customer-owned IPv4 address pool
3829
+ # associated with the subnet.
3830
+ #
3358
3831
  # * `default-for-az` - Indicates whether this is the default subnet for
3359
3832
  # the Availability Zone (`true` \| `false`). You can also use
3360
3833
  # `defaultForAz` as the filter name.
3361
3834
  #
3835
+ # * `enable-dns64` - Indicates whether DNS queries made to the
3836
+ # Amazon-provided DNS Resolver in this subnet should return synthetic
3837
+ # IPv6 addresses for IPv4-only destinations.
3838
+ #
3839
+ # * `enable-lni-at-device-index` - Indicates the device position for
3840
+ # local network interfaces in this subnet. For example, `1` indicates
3841
+ # local network interfaces in this subnet are the secondary network
3842
+ # interface (eth1).
3843
+ #
3362
3844
  # * `ipv6-cidr-block-association.ipv6-cidr-block` - An IPv6 CIDR block
3363
3845
  # associated with the subnet.
3364
3846
  #
@@ -3371,18 +3853,40 @@ module Aws::EC2
3371
3853
  # * `ipv6-native` - Indicates whether this is an IPv6 only subnet
3372
3854
  # (`true` \| `false`).
3373
3855
  #
3856
+ # * `map-customer-owned-ip-on-launch` - Indicates whether a network
3857
+ # interface created in this subnet (including a network interface
3858
+ # created by RunInstances) receives a customer-owned IPv4 address.
3859
+ #
3860
+ # * `map-public-ip-on-launch` - Indicates whether instances launched in
3861
+ # this subnet receive a public IPv4 address.
3862
+ #
3374
3863
  # * `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost.
3375
3864
  #
3376
3865
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
3377
3866
  # subnet.
3378
3867
  #
3868
+ # * `private-dns-name-options-on-launch.hostname-type` - The type of
3869
+ # hostname to assign to instances in the subnet at launch. For
3870
+ # IPv4-only and dual-stack (IPv4 and IPv6) subnets, an instance DNS
3871
+ # name can be based on the instance IPv4 address (ip-name) or the
3872
+ # instance ID (resource-name). For IPv6 only subnets, an instance DNS
3873
+ # name must be based on the instance ID (resource-name).
3874
+ #
3875
+ # * `private-dns-name-options-on-launch.enable-resource-name-dns-a-record`
3876
+ # - Indicates whether to respond to DNS queries for instance hostnames
3877
+ # with DNS A records.
3878
+ #
3879
+ # * `private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record`
3880
+ # - Indicates whether to respond to DNS queries for instance hostnames
3881
+ # with DNS AAAA records.
3882
+ #
3379
3883
  # * `state` - The state of the subnet (`pending` \| `available`).
3380
3884
  #
3381
3885
  # * `subnet-arn` - The Amazon Resource Name (ARN) of the subnet.
3382
3886
  #
3383
3887
  # * `subnet-id` - The ID of the subnet.
3384
3888
  #
3385
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3889
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3386
3890
  # the resource. Use the tag key in the filter name and the tag value
3387
3891
  # as the filter value. For example, to find all resources that have a
3388
3892
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3394,7 +3898,7 @@ module Aws::EC2
3394
3898
  #
3395
3899
  # * `vpc-id` - The ID of the VPC for the subnet.
3396
3900
  # @option options [Array<String>] :subnet_ids
3397
- # One or more subnet IDs.
3901
+ # The IDs of the subnets.
3398
3902
  #
3399
3903
  # Default: Describes all your subnets.
3400
3904
  # @option options [Boolean] :dry_run
@@ -3405,7 +3909,9 @@ module Aws::EC2
3405
3909
  # @return [Subnet::Collection]
3406
3910
  def subnets(options = {})
3407
3911
  batches = Enumerator.new do |y|
3408
- resp = @client.describe_subnets(options)
3912
+ resp = Aws::Plugins::UserAgent.feature('resource') do
3913
+ @client.describe_subnets(options)
3914
+ end
3409
3915
  resp.each_page do |page|
3410
3916
  batch = []
3411
3917
  page.data.subnets.each do |s|
@@ -3483,7 +3989,7 @@ module Aws::EC2
3483
3989
  # * `status` - The state of the volume (`creating` \| `available` \|
3484
3990
  # `in-use` \| `deleting` \| `deleted` \| `error`).
3485
3991
  #
3486
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
3992
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3487
3993
  # the resource. Use the tag key in the filter name and the tag value
3488
3994
  # as the filter value. For example, to find all resources that have a
3489
3995
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3507,7 +4013,9 @@ module Aws::EC2
3507
4013
  # @return [Volume::Collection]
3508
4014
  def volumes(options = {})
3509
4015
  batches = Enumerator.new do |y|
3510
- resp = @client.describe_volumes(options)
4016
+ resp = Aws::Plugins::UserAgent.feature('resource') do
4017
+ @client.describe_volumes(options)
4018
+ end
3511
4019
  resp.each_page do |page|
3512
4020
  batch = []
3513
4021
  page.data.volumes.each do |v|
@@ -3549,12 +4057,9 @@ module Aws::EC2
3549
4057
  # @option options [Array<Types::Filter>] :filters
3550
4058
  # One or more filters. Filter names and values are case-sensitive.
3551
4059
  #
3552
- # * `allocation-id` - \[EC2-VPC\] The allocation ID for the address.
3553
- #
3554
- # * `association-id` - \[EC2-VPC\] The association ID for the address.
4060
+ # * `allocation-id` - The allocation ID for the address.
3555
4061
  #
3556
- # * `domain` - Indicates whether the address is for use in EC2-Classic
3557
- # (`standard`) or in a VPC (`vpc`).
4062
+ # * `association-id` - The association ID for the address.
3558
4063
  #
3559
4064
  # * `instance-id` - The ID of the instance the address is associated
3560
4065
  # with, if any.
@@ -3563,18 +4068,18 @@ module Aws::EC2
3563
4068
  # Zones, or Wavelength Zones from where Amazon Web Services advertises
3564
4069
  # IP addresses.
3565
4070
  #
3566
- # * `network-interface-id` - \[EC2-VPC\] The ID of the network interface
3567
- # that the address is associated with, if any.
4071
+ # * `network-interface-id` - The ID of the network interface that the
4072
+ # address is associated with, if any.
3568
4073
  #
3569
4074
  # * `network-interface-owner-id` - The Amazon Web Services account ID of
3570
4075
  # the owner.
3571
4076
  #
3572
- # * `private-ip-address` - \[EC2-VPC\] The private IP address associated
3573
- # with the Elastic IP address.
4077
+ # * `private-ip-address` - The private IP address associated with the
4078
+ # Elastic IP address.
3574
4079
  #
3575
4080
  # * `public-ip` - The Elastic IP address, or the carrier IP address.
3576
4081
  #
3577
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
4082
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3578
4083
  # the resource. Use the tag key in the filter name and the tag value
3579
4084
  # as the filter value. For example, to find all resources that have a
3580
4085
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3588,7 +4093,7 @@ module Aws::EC2
3588
4093
  #
3589
4094
  # Default: Describes all your Elastic IP addresses.
3590
4095
  # @option options [Array<String>] :allocation_ids
3591
- # \[EC2-VPC\] Information about the allocation IDs.
4096
+ # Information about the allocation IDs.
3592
4097
  # @option options [Boolean] :dry_run
3593
4098
  # Checks whether you have the required permissions for the action,
3594
4099
  # without actually making the request, and provides an error response.
@@ -3602,7 +4107,9 @@ module Aws::EC2
3602
4107
  name: "domain",
3603
4108
  values: ["vpc"]
3604
4109
  }])
3605
- resp = @client.describe_addresses(options)
4110
+ resp = Aws::Plugins::UserAgent.feature('resource') do
4111
+ @client.describe_addresses(options)
4112
+ end
3606
4113
  resp.data.addresses.each do |a|
3607
4114
  batch << VpcAddress.new(
3608
4115
  allocation_id: a.allocation_id,
@@ -3638,7 +4145,7 @@ module Aws::EC2
3638
4145
  # })
3639
4146
  # @param [Hash] options ({})
3640
4147
  # @option options [Array<Types::Filter>] :filters
3641
- # One or more filters.
4148
+ # The filters.
3642
4149
  #
3643
4150
  # * `accepter-vpc-info.cidr-block` - The IPv4 CIDR block of the accepter
3644
4151
  # VPC.
@@ -3666,7 +4173,7 @@ module Aws::EC2
3666
4173
  # * `status-message` - A message that provides more information about
3667
4174
  # the status of the VPC peering connection, if applicable.
3668
4175
  #
3669
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
4176
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3670
4177
  # the resource. Use the tag key in the filter name and the tag value
3671
4178
  # as the filter value. For example, to find all resources that have a
3672
4179
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3683,13 +4190,15 @@ module Aws::EC2
3683
4190
  # If you have the required permissions, the error response is
3684
4191
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3685
4192
  # @option options [Array<String>] :vpc_peering_connection_ids
3686
- # One or more VPC peering connection IDs.
4193
+ # The IDs of the VPC peering connections.
3687
4194
  #
3688
4195
  # Default: Describes all your VPC peering connections.
3689
4196
  # @return [VpcPeeringConnection::Collection]
3690
4197
  def vpc_peering_connections(options = {})
3691
4198
  batches = Enumerator.new do |y|
3692
- resp = @client.describe_vpc_peering_connections(options)
4199
+ resp = Aws::Plugins::UserAgent.feature('resource') do
4200
+ @client.describe_vpc_peering_connections(options)
4201
+ end
3693
4202
  resp.each_page do |page|
3694
4203
  batch = []
3695
4204
  page.data.vpc_peering_connections.each do |v|
@@ -3719,7 +4228,7 @@ module Aws::EC2
3719
4228
  # })
3720
4229
  # @param [Hash] options ({})
3721
4230
  # @option options [Array<Types::Filter>] :filters
3722
- # One or more filters.
4231
+ # The filters.
3723
4232
  #
3724
4233
  # * `cidr` - The primary IPv4 CIDR block of the VPC. The CIDR block you
3725
4234
  # specify must exactly match the VPC's CIDR block for information to
@@ -3756,7 +4265,7 @@ module Aws::EC2
3756
4265
  #
3757
4266
  # * `state` - The state of the VPC (`pending` \| `available`).
3758
4267
  #
3759
- # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
4268
+ # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3760
4269
  # the resource. Use the tag key in the filter name and the tag value
3761
4270
  # as the filter value. For example, to find all resources that have a
3762
4271
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
@@ -3768,7 +4277,7 @@ module Aws::EC2
3768
4277
  #
3769
4278
  # * `vpc-id` - The ID of the VPC.
3770
4279
  # @option options [Array<String>] :vpc_ids
3771
- # One or more VPC IDs.
4280
+ # The IDs of the VPCs.
3772
4281
  #
3773
4282
  # Default: Describes all your VPCs.
3774
4283
  # @option options [Boolean] :dry_run
@@ -3779,7 +4288,9 @@ module Aws::EC2
3779
4288
  # @return [Vpc::Collection]
3780
4289
  def vpcs(options = {})
3781
4290
  batches = Enumerator.new do |y|
3782
- resp = @client.describe_vpcs(options)
4291
+ resp = Aws::Plugins::UserAgent.feature('resource') do
4292
+ @client.describe_vpcs(options)
4293
+ end
3783
4294
  resp.each_page do |page|
3784
4295
  batch = []
3785
4296
  page.data.vpcs.each do |v|