aws-sdk-ec2 1.402.0 → 1.547.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +735 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-ec2/classic_address.rb +32 -20
  5. data/lib/aws-sdk-ec2/client.rb +14212 -4429
  6. data/lib/aws-sdk-ec2/client_api.rb +4004 -515
  7. data/lib/aws-sdk-ec2/customizations/instance.rb +18 -1
  8. data/lib/aws-sdk-ec2/customizations/resource.rb +46 -3
  9. data/lib/aws-sdk-ec2/customizations/tag.rb +13 -0
  10. data/lib/aws-sdk-ec2/customizations.rb +0 -22
  11. data/lib/aws-sdk-ec2/dhcp_options.rb +12 -12
  12. data/lib/aws-sdk-ec2/endpoint_parameters.rb +9 -6
  13. data/lib/aws-sdk-ec2/endpoint_provider.rb +16 -20
  14. data/lib/aws-sdk-ec2/endpoints.rb +2 -8314
  15. data/lib/aws-sdk-ec2/image.rb +207 -98
  16. data/lib/aws-sdk-ec2/instance.rb +514 -348
  17. data/lib/aws-sdk-ec2/internet_gateway.rb +7 -7
  18. data/lib/aws-sdk-ec2/key_pair.rb +14 -14
  19. data/lib/aws-sdk-ec2/key_pair_info.rb +30 -30
  20. data/lib/aws-sdk-ec2/nat_gateway.rb +7 -8
  21. data/lib/aws-sdk-ec2/network_acl.rb +70 -70
  22. data/lib/aws-sdk-ec2/network_interface.rb +150 -78
  23. data/lib/aws-sdk-ec2/network_interface_association.rb +3 -3
  24. data/lib/aws-sdk-ec2/placement_group.rb +123 -42
  25. data/lib/aws-sdk-ec2/plugins/endpoints.rb +23 -1202
  26. data/lib/aws-sdk-ec2/resource.rb +1118 -864
  27. data/lib/aws-sdk-ec2/route.rb +50 -34
  28. data/lib/aws-sdk-ec2/route_table.rb +47 -44
  29. data/lib/aws-sdk-ec2/route_table_association.rb +3 -3
  30. data/lib/aws-sdk-ec2/security_group.rb +212 -201
  31. data/lib/aws-sdk-ec2/snapshot.rb +169 -105
  32. data/lib/aws-sdk-ec2/subnet.rb +534 -406
  33. data/lib/aws-sdk-ec2/tag.rb +7 -4
  34. data/lib/aws-sdk-ec2/types.rb +18252 -4766
  35. data/lib/aws-sdk-ec2/volume.rb +160 -116
  36. data/lib/aws-sdk-ec2/vpc.rb +387 -262
  37. data/lib/aws-sdk-ec2/vpc_address.rb +37 -25
  38. data/lib/aws-sdk-ec2/vpc_peering_connection.rb +6 -6
  39. data/lib/aws-sdk-ec2/waiters.rb +146 -38
  40. data/lib/aws-sdk-ec2.rb +40 -36
  41. data/sig/classic_address.rbs +108 -0
  42. data/sig/client.rbs +14833 -0
  43. data/sig/dhcp_options.rbs +84 -0
  44. data/sig/errors.rbs +16 -0
  45. data/sig/image.rbs +232 -0
  46. data/sig/instance.rbs +576 -0
  47. data/sig/internet_gateway.rbs +91 -0
  48. data/sig/key_pair.rbs +54 -0
  49. data/sig/key_pair_info.rbs +63 -0
  50. data/sig/nat_gateway.rbs +107 -0
  51. data/sig/network_acl.rbs +144 -0
  52. data/sig/network_interface.rbs +249 -0
  53. data/sig/network_interface_association.rbs +62 -0
  54. data/sig/placement_group.rbs +78 -0
  55. data/sig/resource.rbs +1049 -0
  56. data/sig/route.rbs +120 -0
  57. data/sig/route_table.rbs +118 -0
  58. data/sig/route_table_association.rbs +69 -0
  59. data/sig/security_group.rbs +311 -0
  60. data/sig/snapshot.rbs +204 -0
  61. data/sig/subnet.rbs +442 -0
  62. data/sig/tag.rbs +63 -0
  63. data/sig/types.rbs +17078 -0
  64. data/sig/volume.rbs +213 -0
  65. data/sig/vpc.rbs +404 -0
  66. data/sig/vpc_address.rbs +104 -0
  67. data/sig/vpc_peering_connection.rbs +84 -0
  68. data/sig/waiters.rbs +700 -0
  69. metadata +45 -19
@@ -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, 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
49
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
50
50
  # tags: [
51
51
  # {
52
52
  # key: "String",
@@ -69,7 +69,7 @@ module Aws::EC2
69
69
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
70
70
  # @return [DhcpOptions]
71
71
  def create_dhcp_options(options = {})
72
- resp = Aws::Plugins::UserAgent.feature('resource') do
72
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
73
73
  @client.create_dhcp_options(options)
74
74
  end
75
75
  DhcpOptions.new(
@@ -84,8 +84,6 @@ module Aws::EC2
84
84
  # instance = ec2.create_instances({
85
85
  # block_device_mappings: [
86
86
  # {
87
- # device_name: "String",
88
- # virtual_name: "String",
89
87
  # ebs: {
90
88
  # delete_on_termination: false,
91
89
  # iops: 1,
@@ -95,13 +93,18 @@ module Aws::EC2
95
93
  # kms_key_id: "String",
96
94
  # throughput: 1,
97
95
  # outpost_arn: "String",
96
+ # availability_zone: "String",
98
97
  # encrypted: false,
98
+ # volume_initialization_rate: 1,
99
+ # availability_zone_id: "String",
99
100
  # },
100
101
  # no_device: "String",
102
+ # device_name: "String",
103
+ # virtual_name: "String",
101
104
  # },
102
105
  # ],
103
106
  # image_id: "ImageId",
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
107
+ # 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, dl2q.24xlarge, mac2-m2.metal, i4i.12xlarge, i4i.24xlarge, c7i.metal-24xl, c7i.metal-48xl, m7i.metal-24xl, m7i.metal-48xl, r7i.metal-24xl, r7i.metal-48xl, r7iz.metal-16xl, r7iz.metal-32xl, c7gd.metal, m7gd.metal, r7gd.metal, g6.xlarge, g6.2xlarge, g6.4xlarge, g6.8xlarge, g6.12xlarge, g6.16xlarge, g6.24xlarge, g6.48xlarge, gr6.4xlarge, gr6.8xlarge, c7i-flex.large, c7i-flex.xlarge, c7i-flex.2xlarge, c7i-flex.4xlarge, c7i-flex.8xlarge, u7i-12tb.224xlarge, u7in-16tb.224xlarge, u7in-24tb.224xlarge, u7in-32tb.224xlarge, u7ib-12tb.224xlarge, c7gn.metal, r8g.medium, r8g.large, r8g.xlarge, r8g.2xlarge, r8g.4xlarge, r8g.8xlarge, r8g.12xlarge, r8g.16xlarge, r8g.24xlarge, r8g.48xlarge, r8g.metal-24xl, r8g.metal-48xl, mac2-m1ultra.metal, g6e.xlarge, g6e.2xlarge, g6e.4xlarge, g6e.8xlarge, g6e.12xlarge, g6e.16xlarge, g6e.24xlarge, g6e.48xlarge, c8g.medium, c8g.large, c8g.xlarge, c8g.2xlarge, c8g.4xlarge, c8g.8xlarge, c8g.12xlarge, c8g.16xlarge, c8g.24xlarge, c8g.48xlarge, c8g.metal-24xl, c8g.metal-48xl, m8g.medium, m8g.large, m8g.xlarge, m8g.2xlarge, m8g.4xlarge, m8g.8xlarge, m8g.12xlarge, m8g.16xlarge, m8g.24xlarge, m8g.48xlarge, m8g.metal-24xl, m8g.metal-48xl, x8g.medium, x8g.large, x8g.xlarge, x8g.2xlarge, x8g.4xlarge, x8g.8xlarge, x8g.12xlarge, x8g.16xlarge, x8g.24xlarge, x8g.48xlarge, x8g.metal-24xl, x8g.metal-48xl, i7ie.large, i7ie.xlarge, i7ie.2xlarge, i7ie.3xlarge, i7ie.6xlarge, i7ie.12xlarge, i7ie.18xlarge, i7ie.24xlarge, i7ie.48xlarge, i8g.large, i8g.xlarge, i8g.2xlarge, i8g.4xlarge, i8g.8xlarge, i8g.12xlarge, i8g.16xlarge, i8g.24xlarge, i8g.metal-24xl, u7i-6tb.112xlarge, u7i-8tb.112xlarge, u7inh-32tb.480xlarge, p5e.48xlarge, p5en.48xlarge, f2.12xlarge, f2.48xlarge, trn2.48xlarge, c7i-flex.12xlarge, c7i-flex.16xlarge, m7i-flex.12xlarge, m7i-flex.16xlarge, i7ie.metal-24xl, i7ie.metal-48xl, i8g.48xlarge, c8gd.medium, c8gd.large, c8gd.xlarge, c8gd.2xlarge, c8gd.4xlarge, c8gd.8xlarge, c8gd.12xlarge, c8gd.16xlarge, c8gd.24xlarge, c8gd.48xlarge, c8gd.metal-24xl, c8gd.metal-48xl, i7i.large, i7i.xlarge, i7i.2xlarge, i7i.4xlarge, i7i.8xlarge, i7i.12xlarge, i7i.16xlarge, i7i.24xlarge, i7i.48xlarge, i7i.metal-24xl, i7i.metal-48xl, p6-b200.48xlarge, m8gd.medium, m8gd.large, m8gd.xlarge, m8gd.2xlarge, m8gd.4xlarge, m8gd.8xlarge, m8gd.12xlarge, m8gd.16xlarge, m8gd.24xlarge, m8gd.48xlarge, m8gd.metal-24xl, m8gd.metal-48xl, r8gd.medium, r8gd.large, r8gd.xlarge, r8gd.2xlarge, r8gd.4xlarge, r8gd.8xlarge, r8gd.12xlarge, r8gd.16xlarge, r8gd.24xlarge, r8gd.48xlarge, r8gd.metal-24xl, r8gd.metal-48xl, c8gn.medium, c8gn.large, c8gn.xlarge, c8gn.2xlarge, c8gn.4xlarge, c8gn.8xlarge, c8gn.12xlarge, c8gn.16xlarge, c8gn.24xlarge, c8gn.48xlarge, c8gn.metal-24xl, c8gn.metal-48xl, f2.6xlarge, p6e-gb200.36xlarge
105
108
  # ipv_6_address_count: 1,
106
109
  # ipv_6_addresses: [
107
110
  # {
@@ -117,7 +120,7 @@ module Aws::EC2
117
120
  # enabled: false, # required
118
121
  # },
119
122
  # placement: {
120
- # availability_zone: "String",
123
+ # availability_zone_id: "AvailabilityZoneId",
121
124
  # affinity: "String",
122
125
  # group_name: "PlacementGroupName",
123
126
  # partition_number: 1,
@@ -126,65 +129,13 @@ module Aws::EC2
126
129
  # spread_domain: "String",
127
130
  # host_resource_group_arn: "String",
128
131
  # group_id: "PlacementGroupId",
132
+ # availability_zone: "String",
129
133
  # },
130
134
  # ramdisk_id: "RamdiskId",
131
135
  # security_group_ids: ["SecurityGroupId"],
132
136
  # security_groups: ["SecurityGroupName"],
133
137
  # subnet_id: "SubnetId",
134
138
  # user_data: "RunInstancesUserData",
135
- # additional_info: "String",
136
- # client_token: "String",
137
- # disable_api_termination: false,
138
- # dry_run: false,
139
- # ebs_optimized: false,
140
- # iam_instance_profile: {
141
- # arn: "String",
142
- # name: "String",
143
- # },
144
- # instance_initiated_shutdown_behavior: "stop", # accepts stop, terminate
145
- # network_interfaces: [
146
- # {
147
- # associate_public_ip_address: false,
148
- # delete_on_termination: false,
149
- # description: "String",
150
- # device_index: 1,
151
- # groups: ["SecurityGroupId"],
152
- # ipv_6_address_count: 1,
153
- # ipv_6_addresses: [
154
- # {
155
- # ipv_6_address: "String",
156
- # is_primary_ipv_6: false,
157
- # },
158
- # ],
159
- # network_interface_id: "NetworkInterfaceId",
160
- # private_ip_address: "String",
161
- # private_ip_addresses: [
162
- # {
163
- # primary: false,
164
- # private_ip_address: "String",
165
- # },
166
- # ],
167
- # secondary_private_ip_address_count: 1,
168
- # subnet_id: "String",
169
- # associate_carrier_ip_address: false,
170
- # interface_type: "String",
171
- # network_card_index: 1,
172
- # ipv_4_prefixes: [
173
- # {
174
- # ipv_4_prefix: "String",
175
- # },
176
- # ],
177
- # ipv_4_prefix_count: 1,
178
- # ipv_6_prefixes: [
179
- # {
180
- # ipv_6_prefix: "String",
181
- # },
182
- # ],
183
- # ipv_6_prefix_count: 1,
184
- # primary_ipv_6: false,
185
- # },
186
- # ],
187
- # private_ip_address: "String",
188
139
  # elastic_gpu_specification: [
189
140
  # {
190
141
  # type: "String", # required
@@ -198,7 +149,7 @@ module Aws::EC2
198
149
  # ],
199
150
  # tag_specifications: [
200
151
  # {
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
152
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
202
153
  # tags: [
203
154
  # {
204
155
  # key: "String",
@@ -213,7 +164,7 @@ module Aws::EC2
213
164
  # version: "String",
214
165
  # },
215
166
  # instance_market_options: {
216
- # market_type: "spot", # accepts spot
167
+ # market_type: "spot", # accepts spot, capacity-block
217
168
  # spot_options: {
218
169
  # max_price: "String",
219
170
  # spot_instance_type: "one-time", # accepts one-time, persistent
@@ -231,7 +182,7 @@ module Aws::EC2
231
182
  # amd_sev_snp: "enabled", # accepts enabled, disabled
232
183
  # },
233
184
  # capacity_reservation_specification: {
234
- # capacity_reservation_preference: "open", # accepts open, none
185
+ # capacity_reservation_preference: "capacity-reservations-only", # accepts capacity-reservations-only, open, none
235
186
  # capacity_reservation_target: {
236
187
  # capacity_reservation_id: "CapacityReservationId",
237
188
  # capacity_reservation_resource_group_arn: "String",
@@ -265,6 +216,77 @@ module Aws::EC2
265
216
  # },
266
217
  # disable_api_stop: false,
267
218
  # enable_primary_ipv_6: false,
219
+ # network_performance_options: {
220
+ # bandwidth_weighting: "default", # accepts default, vpc-1, ebs-1
221
+ # },
222
+ # operator: {
223
+ # principal: "String",
224
+ # },
225
+ # dry_run: false,
226
+ # disable_api_termination: false,
227
+ # instance_initiated_shutdown_behavior: "stop", # accepts stop, terminate
228
+ # private_ip_address: "String",
229
+ # client_token: "String",
230
+ # additional_info: "String",
231
+ # network_interfaces: [
232
+ # {
233
+ # associate_public_ip_address: false,
234
+ # delete_on_termination: false,
235
+ # description: "String",
236
+ # device_index: 1,
237
+ # groups: ["SecurityGroupId"],
238
+ # ipv_6_address_count: 1,
239
+ # ipv_6_addresses: [
240
+ # {
241
+ # ipv_6_address: "String",
242
+ # is_primary_ipv_6: false,
243
+ # },
244
+ # ],
245
+ # network_interface_id: "NetworkInterfaceId",
246
+ # private_ip_address: "String",
247
+ # private_ip_addresses: [
248
+ # {
249
+ # primary: false,
250
+ # private_ip_address: "String",
251
+ # },
252
+ # ],
253
+ # secondary_private_ip_address_count: 1,
254
+ # subnet_id: "String",
255
+ # associate_carrier_ip_address: false,
256
+ # interface_type: "String",
257
+ # network_card_index: 1,
258
+ # ipv_4_prefixes: [
259
+ # {
260
+ # ipv_4_prefix: "String",
261
+ # },
262
+ # ],
263
+ # ipv_4_prefix_count: 1,
264
+ # ipv_6_prefixes: [
265
+ # {
266
+ # ipv_6_prefix: "String",
267
+ # },
268
+ # ],
269
+ # ipv_6_prefix_count: 1,
270
+ # primary_ipv_6: false,
271
+ # ena_srd_specification: {
272
+ # ena_srd_enabled: false,
273
+ # ena_srd_udp_specification: {
274
+ # ena_srd_udp_enabled: false,
275
+ # },
276
+ # },
277
+ # connection_tracking_specification: {
278
+ # tcp_established_timeout: 1,
279
+ # udp_stream_timeout: 1,
280
+ # udp_timeout: 1,
281
+ # },
282
+ # ena_queue_count: 1,
283
+ # },
284
+ # ],
285
+ # iam_instance_profile: {
286
+ # arn: "String",
287
+ # name: "String",
288
+ # },
289
+ # ebs_optimized: false,
268
290
  # })
269
291
  # @param [Hash] options ({})
270
292
  # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
@@ -280,12 +302,12 @@ module Aws::EC2
280
302
  # The ID of the AMI. An AMI ID is required to launch an instance and
281
303
  # must be specified here or in a launch template.
282
304
  # @option options [String] :instance_type
283
- # The instance type. For more information, see [Instance types][1] in
284
- # the *Amazon EC2 User Guide*.
305
+ # The instance type. For more information, see [Amazon EC2 Instance
306
+ # Types Guide][1].
285
307
  #
286
308
  #
287
309
  #
288
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
310
+ # [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html
289
311
  # @option options [Integer] :ipv_6_address_count
290
312
  # The number of IPv6 addresses to associate with the primary network
291
313
  # interface. Amazon EC2 chooses the IPv6 addresses from the range of
@@ -314,8 +336,8 @@ module Aws::EC2
314
336
  #
315
337
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html
316
338
  # @option options [String] :key_name
317
- # The name of the key pair. You can create a key pair using
318
- # [CreateKeyPair][1] or [ImportKeyPair][2].
339
+ # The name of the key pair. For more information, see [Create a key pair
340
+ # for your EC2 instance][1].
319
341
  #
320
342
  # If you do not specify a key pair, you can't connect to the instance
321
343
  # unless you choose an AMI that is configured to allow users another way
@@ -323,35 +345,32 @@ module Aws::EC2
323
345
  #
324
346
  #
325
347
  #
326
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html
327
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html
348
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html
328
349
  # @option options [required, Integer] :max_count
329
- # The maximum number of instances to launch. If you specify more
330
- # instances than Amazon EC2 can launch in the target Availability Zone,
331
- # Amazon EC2 launches the largest possible number of instances above
332
- # `MinCount`.
350
+ # The maximum number of instances to launch. If you specify a value that
351
+ # is more capacity than Amazon EC2 can launch in the target Availability
352
+ # Zone, Amazon EC2 launches the largest possible number of instances
353
+ # above the specified minimum count.
333
354
  #
334
- # Constraints: Between 1 and the maximum number you're allowed for the
335
- # specified instance type. For more information about the default
336
- # limits, and how to request an increase, see [How many instances can I
337
- # run in Amazon EC2][1] in the Amazon EC2 FAQ.
355
+ # Constraints: Between 1 and the quota for the specified instance type
356
+ # for your account for this Region. For more information, see [Amazon
357
+ # EC2 instance type quotas][1].
338
358
  #
339
359
  #
340
360
  #
341
- # [1]: http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2
361
+ # [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html
342
362
  # @option options [required, Integer] :min_count
343
- # The minimum number of instances to launch. If you specify a minimum
344
- # that is more instances than Amazon EC2 can launch in the target
345
- # Availability Zone, Amazon EC2 launches no instances.
363
+ # The minimum number of instances to launch. If you specify a value that
364
+ # is more capacity than Amazon EC2 can provide in the target
365
+ # Availability Zone, Amazon EC2 does not launch any instances.
346
366
  #
347
- # Constraints: Between 1 and the maximum number you're allowed for the
348
- # specified instance type. For more information about the default
349
- # limits, and how to request an increase, see [How many instances can I
350
- # run in Amazon EC2][1] in the Amazon EC2 General FAQ.
367
+ # Constraints: Between 1 and the quota for the specified instance type
368
+ # for your account for this Region. For more information, see [Amazon
369
+ # EC2 instance type quotas][1].
351
370
  #
352
371
  #
353
372
  #
354
- # [1]: http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2
373
+ # [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html
355
374
  # @option options [Types::RunInstancesMonitoringEnabled] :monitoring
356
375
  # Specifies whether detailed monitoring is enabled for the instance.
357
376
  # @option options [Types::Placement] :placement
@@ -370,131 +389,43 @@ module Aws::EC2
370
389
  #
371
390
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html
372
391
  # @option options [Array<String>] :security_group_ids
373
- # The IDs of the security groups. You can create a security group using
374
- # [CreateSecurityGroup][1].
392
+ # The IDs of the security groups.
375
393
  #
376
394
  # If you specify a network interface, you must specify any security
377
- # groups as part of the network interface.
378
- #
379
- #
380
- #
381
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html
395
+ # groups as part of the network interface instead of using this
396
+ # parameter.
382
397
  # @option options [Array<String>] :security_groups
383
398
  # \[Default VPC\] The names of the security groups.
384
399
  #
385
400
  # If you specify a network interface, you must specify any security
386
- # groups as part of the network interface.
401
+ # groups as part of the network interface instead of using this
402
+ # parameter.
387
403
  #
388
404
  # Default: Amazon EC2 uses the default security group.
389
405
  # @option options [String] :subnet_id
390
406
  # The ID of the subnet to launch the instance into.
391
407
  #
392
408
  # If you specify a network interface, you must specify any subnets as
393
- # part of the network interface.
409
+ # part of the network interface instead of using this parameter.
394
410
  # @option options [String] :user_data
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.
411
+ # The user data to make available to the instance. User data must be
412
+ # base64-encoded. Depending on the tool or SDK that you're using, the
413
+ # base64-encoding might be performed for you. For more information, see
414
+ # [Run commands at launch using instance user data][1].
401
415
  #
402
416
  #
403
417
  #
404
418
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
405
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html
406
- # @option options [String] :additional_info
407
- # Reserved.
408
- # @option options [String] :client_token
409
- # Unique, case-sensitive identifier you provide to ensure the
410
- # idempotency of the request. If you do not specify a client token, a
411
- # randomly generated token is used for the request to ensure
412
- # idempotency.
413
- #
414
- # For more information, see [Ensuring Idempotency][1].
415
- #
416
- # Constraints: Maximum 64 ASCII characters
417
- #
418
- #
419
- #
420
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
421
- # @option options [Boolean] :disable_api_termination
422
- # If you set this parameter to `true`, you can't terminate the instance
423
- # using the Amazon EC2 console, CLI, or API; otherwise, you can. To
424
- # change this attribute after launch, use [ModifyInstanceAttribute][1].
425
- # Alternatively, if you set `InstanceInitiatedShutdownBehavior` to
426
- # `terminate`, you can terminate the instance by running the shutdown
427
- # command from the instance.
428
- #
429
- # Default: `false`
430
- #
431
- #
432
- #
433
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html
434
- # @option options [Boolean] :dry_run
435
- # Checks whether you have the required permissions for the action,
436
- # without actually making the request, and provides an error response.
437
- # If you have the required permissions, the error response is
438
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
439
- # @option options [Boolean] :ebs_optimized
440
- # Indicates whether the instance is optimized for Amazon EBS I/O. This
441
- # optimization provides dedicated throughput to Amazon EBS and an
442
- # optimized configuration stack to provide optimal Amazon EBS I/O
443
- # performance. This optimization isn't available with all instance
444
- # types. Additional usage charges apply when using an EBS-optimized
445
- # instance.
446
- #
447
- # Default: `false`
448
- # @option options [Types::IamInstanceProfileSpecification] :iam_instance_profile
449
- # The name or Amazon Resource Name (ARN) of an IAM instance profile.
450
- # @option options [String] :instance_initiated_shutdown_behavior
451
- # Indicates whether an instance stops or terminates when you initiate
452
- # shutdown from the instance (using the operating system command for
453
- # system shutdown).
454
- #
455
- # Default: `stop`
456
- # @option options [Array<Types::InstanceNetworkInterfaceSpecification>] :network_interfaces
457
- # The network interfaces to associate with the instance. If you specify
458
- # a network interface, you must specify any security groups and subnets
459
- # as part of the network interface.
460
- # @option options [String] :private_ip_address
461
- # The primary IPv4 address. You must specify a value from the IPv4
462
- # address range of the subnet.
463
- #
464
- # Only one private IP address can be designated as primary. You can't
465
- # specify this option if you've specified the option to designate a
466
- # private IP address as the primary IP address in a network interface
467
- # specification. You cannot specify this option if you're launching
468
- # more than one instance in the request.
469
- #
470
- # You cannot specify this option and the network interfaces option in
471
- # the same request.
472
419
  # @option options [Array<Types::ElasticGpuSpecification>] :elastic_gpu_specification
473
- # An elastic GPU to associate with the instance. An Elastic GPU is a GPU
474
- # resource that you can attach to your Windows instance to accelerate
475
- # the graphics performance of your applications. For more information,
476
- # see [Amazon EC2 Elastic GPUs][1] in the *Amazon EC2 User Guide*.
420
+ # An elastic GPU to associate with the instance.
477
421
  #
422
+ # <note markdown="1"> Amazon Elastic Graphics reached end of life on January 8, 2024.
478
423
  #
479
- #
480
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html
424
+ # </note>
481
425
  # @option options [Array<Types::ElasticInferenceAccelerator>] :elastic_inference_accelerators
482
426
  # An elastic inference accelerator to associate with the instance.
483
- # Elastic inference accelerators are a resource you can attach to your
484
- # Amazon EC2 instances to accelerate your Deep Learning (DL) inference
485
- # workloads.
486
- #
487
- # You cannot specify accelerators from different generations in the same
488
- # request.
489
427
  #
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.
428
+ # <note markdown="1"> Amazon Elastic Inference is no longer available.
498
429
  #
499
430
  # </note>
500
431
  # @option options [Array<Types::TagSpecification>] :tag_specifications
@@ -507,8 +438,6 @@ module Aws::EC2
507
438
  #
508
439
  # * Volumes
509
440
  #
510
- # * Elastic graphics
511
- #
512
441
  # * Spot Instance requests
513
442
  #
514
443
  # * Network interfaces
@@ -519,10 +448,9 @@ module Aws::EC2
519
448
  #
520
449
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html
521
450
  # @option options [Types::LaunchTemplateSpecification] :launch_template
522
- # The launch template to use to launch the instances. Any parameters
523
- # that you specify in RunInstances override the same parameters in the
524
- # launch template. You can specify either the name or ID of a launch
525
- # template, but not both.
451
+ # The launch template. Any additional parameters that you specify for
452
+ # the new instance overwrite the corresponding parameters included in
453
+ # the launch template.
526
454
  # @option options [Types::InstanceMarketOptionsRequest] :instance_market_options
527
455
  # The market (purchasing) option for the instances.
528
456
  #
@@ -557,12 +485,12 @@ module Aws::EC2
557
485
  # not specify this parameter, the instance's Capacity Reservation
558
486
  # preference defaults to `open`, which enables it to run in any open
559
487
  # Capacity Reservation that has matching attributes (instance type,
560
- # platform, Availability Zone).
488
+ # platform, Availability Zone, and tenancy).
561
489
  # @option options [Types::HibernationOptionsRequest] :hibernation_options
562
490
  # Indicates whether an instance is enabled for hibernation. This
563
491
  # 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*.
492
+ # prerequisites][1]. For more information, see [Hibernate your Amazon
493
+ # EC2 instance][2] in the *Amazon EC2 User Guide*.
566
494
  #
567
495
  # You can't enable hibernation and Amazon Web Services Nitro Enclaves
568
496
  # on the same instance.
@@ -575,23 +503,22 @@ module Aws::EC2
575
503
  # The license configurations.
576
504
  # @option options [Types::InstanceMetadataOptionsRequest] :metadata_options
577
505
  # The metadata options for the instance. For more information, see
578
- # [Instance metadata and user data][1].
506
+ # [Configure the Instance Metadata Service options][1].
579
507
  #
580
508
  #
581
509
  #
582
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
510
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html
583
511
  # @option options [Types::EnclaveOptionsRequest] :enclave_options
584
512
  # Indicates whether the instance is enabled for Amazon Web Services
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*.
513
+ # Nitro Enclaves. For more information, see [Amazon Web Services Nitro
514
+ # Enclaves User Guide][1].
588
515
  #
589
516
  # You can't enable Amazon Web Services Nitro Enclaves and hibernation
590
517
  # on the same instance.
591
518
  #
592
519
  #
593
520
  #
594
- # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
521
+ # [1]: https://docs.aws.amazon.com/enclaves/latest/user/
595
522
  # @option options [Types::PrivateDnsNameOptionsRequest] :private_dns_name_options
596
523
  # The options for the instance hostname. The default values are
597
524
  # inherited from the subnet. Applies only if creating a network
@@ -600,11 +527,11 @@ module Aws::EC2
600
527
  # The maintenance and recovery options for the instance.
601
528
  # @option options [Boolean] :disable_api_stop
602
529
  # Indicates whether an instance is enabled for stop protection. For more
603
- # information, see [Stop protection][1].
530
+ # information, see [Enable stop protection for your EC2 instances][1].
604
531
  #
605
532
  #
606
533
  #
607
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection
534
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html
608
535
  # @option options [Boolean] :enable_primary_ipv_6
609
536
  # If you’re launching an instance into a dual-stack or IPv6-only subnet,
610
537
  # you can enable assigning a primary IPv6 address. A primary IPv6
@@ -621,10 +548,73 @@ module Aws::EC2
621
548
  # attached to your instance and you enable a primary IPv6 address, the
622
549
  # first IPv6 GUA address associated with the ENI becomes the primary
623
550
  # IPv6 address.
551
+ # @option options [Types::InstanceNetworkPerformanceOptionsRequest] :network_performance_options
552
+ # Contains settings for the network performance options for the
553
+ # instance.
554
+ # @option options [Types::OperatorRequest] :operator
555
+ # Reserved for internal use.
556
+ # @option options [Boolean] :dry_run
557
+ # Checks whether you have the required permissions for the operation,
558
+ # without actually making the request, and provides an error response.
559
+ # If you have the required permissions, the error response is
560
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
561
+ # @option options [Boolean] :disable_api_termination
562
+ # Indicates whether termination protection is enabled for the instance.
563
+ # The default is `false`, which means that you can terminate the
564
+ # instance using the Amazon EC2 console, command line tools, or API. You
565
+ # can enable termination protection when you launch an instance, while
566
+ # the instance is running, or while the instance is stopped.
567
+ # @option options [String] :instance_initiated_shutdown_behavior
568
+ # Indicates whether an instance stops or terminates when you initiate
569
+ # shutdown from the instance (using the operating system command for
570
+ # system shutdown).
571
+ #
572
+ # Default: `stop`
573
+ # @option options [String] :private_ip_address
574
+ # The primary IPv4 address. You must specify a value from the IPv4
575
+ # address range of the subnet.
576
+ #
577
+ # Only one private IP address can be designated as primary. You can't
578
+ # specify this option if you've specified the option to designate a
579
+ # private IP address as the primary IP address in a network interface
580
+ # specification. You cannot specify this option if you're launching
581
+ # more than one instance in the request.
582
+ #
583
+ # You cannot specify this option and the network interfaces option in
584
+ # the same request.
585
+ # @option options [String] :client_token
586
+ # Unique, case-sensitive identifier you provide to ensure the
587
+ # idempotency of the request. If you do not specify a client token, a
588
+ # randomly generated token is used for the request to ensure
589
+ # idempotency.
590
+ #
591
+ # For more information, see [Ensuring idempotency in Amazon EC2 API
592
+ # requests][1].
593
+ #
594
+ # Constraints: Maximum 64 ASCII characters
595
+ #
596
+ #
597
+ #
598
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
599
+ # @option options [String] :additional_info
600
+ # Reserved.
601
+ # @option options [Array<Types::InstanceNetworkInterfaceSpecification>] :network_interfaces
602
+ # The network interfaces to associate with the instance.
603
+ # @option options [Types::IamInstanceProfileSpecification] :iam_instance_profile
604
+ # The name or Amazon Resource Name (ARN) of an IAM instance profile.
605
+ # @option options [Boolean] :ebs_optimized
606
+ # Indicates whether the instance is optimized for Amazon EBS I/O. This
607
+ # optimization provides dedicated throughput to Amazon EBS and an
608
+ # optimized configuration stack to provide optimal Amazon EBS I/O
609
+ # performance. This optimization isn't available with all instance
610
+ # types. Additional usage charges apply when using an EBS-optimized
611
+ # instance.
612
+ #
613
+ # Default: `false`
624
614
  # @return [Instance::Collection]
625
615
  def create_instances(options = {})
626
616
  batch = []
627
- resp = Aws::Plugins::UserAgent.feature('resource') do
617
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
628
618
  @client.run_instances(options)
629
619
  end
630
620
  resp.data.instances.each do |i|
@@ -642,7 +632,7 @@ module Aws::EC2
642
632
  # internetgateway = ec2.create_internet_gateway({
643
633
  # tag_specifications: [
644
634
  # {
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
635
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
646
636
  # tags: [
647
637
  # {
648
638
  # key: "String",
@@ -663,7 +653,7 @@ module Aws::EC2
663
653
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
664
654
  # @return [InternetGateway]
665
655
  def create_internet_gateway(options = {})
666
- resp = Aws::Plugins::UserAgent.feature('resource') do
656
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
667
657
  @client.create_internet_gateway(options)
668
658
  end
669
659
  InternetGateway.new(
@@ -677,11 +667,10 @@ module Aws::EC2
677
667
  #
678
668
  # keypair = ec2.create_key_pair({
679
669
  # key_name: "String", # required
680
- # dry_run: false,
681
670
  # key_type: "rsa", # accepts rsa, ed25519
682
671
  # tag_specifications: [
683
672
  # {
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
673
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
685
674
  # tags: [
686
675
  # {
687
676
  # key: "String",
@@ -691,17 +680,13 @@ module Aws::EC2
691
680
  # },
692
681
  # ],
693
682
  # key_format: "pem", # accepts pem, ppk
683
+ # dry_run: false,
694
684
  # })
695
685
  # @param [Hash] options ({})
696
686
  # @option options [required, String] :key_name
697
687
  # A unique name for the key pair.
698
688
  #
699
689
  # Constraints: Up to 255 ASCII characters
700
- # @option options [Boolean] :dry_run
701
- # Checks whether you have the required permissions for the action,
702
- # without actually making the request, and provides an error response.
703
- # If you have the required permissions, the error response is
704
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
705
690
  # @option options [String] :key_type
706
691
  # The type of key pair. Note that ED25519 keys are not supported for
707
692
  # Windows instances.
@@ -713,9 +698,14 @@ module Aws::EC2
713
698
  # The format of the key pair.
714
699
  #
715
700
  # Default: `pem`
701
+ # @option options [Boolean] :dry_run
702
+ # Checks whether you have the required permissions for the action,
703
+ # without actually making the request, and provides an error response.
704
+ # If you have the required permissions, the error response is
705
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
716
706
  # @return [KeyPair]
717
707
  def create_key_pair(options = {})
718
- resp = Aws::Plugins::UserAgent.feature('resource') do
708
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
719
709
  @client.create_key_pair(options)
720
710
  end
721
711
  KeyPair.new(
@@ -734,7 +724,7 @@ module Aws::EC2
734
724
  # subnet_id: "SubnetId", # required
735
725
  # tag_specifications: [
736
726
  # {
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
727
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
738
728
  # tags: [
739
729
  # {
740
730
  # key: "String",
@@ -758,14 +748,14 @@ module Aws::EC2
758
748
  # disassociate it.
759
749
  # @option options [String] :client_token
760
750
  # Unique, case-sensitive identifier that you provide to ensure the
761
- # idempotency of the request. For more information, see [How to ensure
751
+ # idempotency of the request. For more information, see [Ensuring
762
752
  # idempotency][1].
763
753
  #
764
754
  # Constraint: Maximum 64 ASCII characters.
765
755
  #
766
756
  #
767
757
  #
768
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
758
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
769
759
  # @option options [Boolean] :dry_run
770
760
  # Checks whether you have the required permissions for the action,
771
761
  # without actually making the request, and provides an error response.
@@ -788,7 +778,7 @@ module Aws::EC2
788
778
  #
789
779
  #
790
780
  #
791
- # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
781
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html
792
782
  # @option options [Array<String>] :secondary_private_ip_addresses
793
783
  # Secondary private IPv4 addresses. For more information about secondary
794
784
  # addresses, see [Create a NAT gateway][1] in the *Amazon VPC User
@@ -796,7 +786,7 @@ module Aws::EC2
796
786
  #
797
787
  #
798
788
  #
799
- # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
789
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html
800
790
  # @option options [Integer] :secondary_private_ip_address_count
801
791
  # \[Private NAT gateway only\] The number of secondary private IPv4
802
792
  # addresses you want to assign to the NAT gateway. For more information
@@ -805,10 +795,10 @@ module Aws::EC2
805
795
  #
806
796
  #
807
797
  #
808
- # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
798
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html
809
799
  # @return [NatGateway]
810
800
  def create_nat_gateway(options = {})
811
- resp = Aws::Plugins::UserAgent.feature('resource') do
801
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
812
802
  @client.create_nat_gateway(options)
813
803
  end
814
804
  NatGateway.new(
@@ -821,11 +811,9 @@ module Aws::EC2
821
811
  # @example Request syntax with placeholder values
822
812
  #
823
813
  # networkacl = ec2.create_network_acl({
824
- # dry_run: false,
825
- # vpc_id: "VpcId", # required
826
814
  # tag_specifications: [
827
815
  # {
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
816
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
829
817
  # tags: [
830
818
  # {
831
819
  # key: "String",
@@ -834,20 +822,31 @@ module Aws::EC2
834
822
  # ],
835
823
  # },
836
824
  # ],
825
+ # client_token: "String",
826
+ # dry_run: false,
827
+ # vpc_id: "VpcId", # required
837
828
  # })
838
829
  # @param [Hash] options ({})
839
- # @option options [Boolean] :dry_run
840
- # Checks whether you have the required permissions for the action,
841
- # without actually making the request, and provides an error response.
842
- # If you have the required permissions, the error response is
843
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
844
- # @option options [required, String] :vpc_id
845
- # The ID of the VPC.
846
830
  # @option options [Array<Types::TagSpecification>] :tag_specifications
847
831
  # The tags to assign to the network ACL.
832
+ # @option options [String] :client_token
833
+ # Unique, case-sensitive identifier that you provide to ensure the
834
+ # idempotency of the request. For more information, see [Ensuring
835
+ # idempotency][1].
836
+ #
837
+ #
838
+ #
839
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
840
+ # @option options [Boolean] :dry_run
841
+ # Checks whether you have the required permissions for the action,
842
+ # without actually making the request, and provides an error response.
843
+ # If you have the required permissions, the error response is
844
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
845
+ # @option options [required, String] :vpc_id
846
+ # The ID of the VPC.
848
847
  # @return [NetworkAcl]
849
848
  def create_network_acl(options = {})
850
- resp = Aws::Plugins::UserAgent.feature('resource') do
849
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
851
850
  @client.create_network_acl(options)
852
851
  end
853
852
  NetworkAcl.new(
@@ -860,24 +859,6 @@ module Aws::EC2
860
859
  # @example Request syntax with placeholder values
861
860
  #
862
861
  # networkinterface = ec2.create_network_interface({
863
- # description: "String",
864
- # dry_run: false,
865
- # groups: ["SecurityGroupId"],
866
- # ipv_6_address_count: 1,
867
- # ipv_6_addresses: [
868
- # {
869
- # ipv_6_address: "String",
870
- # is_primary_ipv_6: false,
871
- # },
872
- # ],
873
- # private_ip_address: "String",
874
- # private_ip_addresses: [
875
- # {
876
- # primary: false,
877
- # private_ip_address: "String",
878
- # },
879
- # ],
880
- # secondary_private_ip_address_count: 1,
881
862
  # ipv_4_prefixes: [
882
863
  # {
883
864
  # ipv_4_prefix: "String",
@@ -890,11 +871,10 @@ module Aws::EC2
890
871
  # },
891
872
  # ],
892
873
  # ipv_6_prefix_count: 1,
893
- # interface_type: "efa", # accepts efa, branch, trunk
894
- # subnet_id: "SubnetId", # required
874
+ # interface_type: "efa", # accepts efa, efa-only, branch, trunk
895
875
  # tag_specifications: [
896
876
  # {
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
877
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
898
878
  # tags: [
899
879
  # {
900
880
  # key: "String",
@@ -905,56 +885,35 @@ module Aws::EC2
905
885
  # ],
906
886
  # client_token: "String",
907
887
  # enable_primary_ipv_6: false,
888
+ # connection_tracking_specification: {
889
+ # tcp_established_timeout: 1,
890
+ # udp_stream_timeout: 1,
891
+ # udp_timeout: 1,
892
+ # },
893
+ # operator: {
894
+ # principal: "String",
895
+ # },
896
+ # subnet_id: "SubnetId", # required
897
+ # description: "String",
898
+ # private_ip_address: "String",
899
+ # groups: ["SecurityGroupId"],
900
+ # private_ip_addresses: [
901
+ # {
902
+ # primary: false,
903
+ # private_ip_address: "String",
904
+ # },
905
+ # ],
906
+ # secondary_private_ip_address_count: 1,
907
+ # ipv_6_addresses: [
908
+ # {
909
+ # ipv_6_address: "String",
910
+ # is_primary_ipv_6: false,
911
+ # },
912
+ # ],
913
+ # ipv_6_address_count: 1,
914
+ # dry_run: false,
908
915
  # })
909
916
  # @param [Hash] options ({})
910
- # @option options [String] :description
911
- # A description for the network interface.
912
- # @option options [Boolean] :dry_run
913
- # Checks whether you have the required permissions for the action,
914
- # without actually making the request, and provides an error response.
915
- # If you have the required permissions, the error response is
916
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
917
- # @option options [Array<String>] :groups
918
- # The IDs of one or more security groups.
919
- # @option options [Integer] :ipv_6_address_count
920
- # The number of IPv6 addresses to assign to a network interface. Amazon
921
- # EC2 automatically selects the IPv6 addresses from the subnet range.
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.
930
- # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_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.
936
- # @option options [String] :private_ip_address
937
- # The primary private IPv4 address of the network interface. If you
938
- # don't specify an IPv4 address, Amazon EC2 selects one for you from
939
- # the subnet's IPv4 CIDR range. If you specify an IP address, you
940
- # cannot indicate any IP addresses specified in `privateIpAddresses` as
941
- # primary (only one IP address can be designated as primary).
942
- # @option options [Array<Types::PrivateIpAddressSpecification>] :private_ip_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.
948
- # @option options [Integer] :secondary_private_ip_address_count
949
- # The number of secondary private IPv4 addresses to assign to a network
950
- # interface. When you specify a number of secondary IPv4 addresses,
951
- # Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR
952
- # range. You can't specify this option and specify more than one
953
- # private IP address using `privateIpAddresses`.
954
- #
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.
958
917
  # @option options [Array<Types::Ipv4PrefixSpecificationRequest>] :ipv_4_prefixes
959
918
  # The IPv4 prefixes assigned to the network interface.
960
919
  #
@@ -984,19 +943,22 @@ module Aws::EC2
984
943
  # @option options [String] :interface_type
985
944
  # The type of network interface. The default is `interface`.
986
945
  #
987
- # The only supported values are `interface`, `efa`, and `trunk`.
988
- # @option options [required, String] :subnet_id
989
- # The ID of the subnet to associate with the network interface.
946
+ # If you specify `efa-only`, do not assign any IP addresses to the
947
+ # network interface. EFA-only network interfaces do not support IP
948
+ # addresses.
949
+ #
950
+ # The only supported values are `interface`, `efa`, `efa-only`, and
951
+ # `trunk`.
990
952
  # @option options [Array<Types::TagSpecification>] :tag_specifications
991
953
  # The tags to apply to the new network interface.
992
954
  # @option options [String] :client_token
993
955
  # Unique, case-sensitive identifier that you provide to ensure the
994
956
  # idempotency of the request. For more information, see [Ensuring
995
- # Idempotency][1].
957
+ # idempotency][1].
996
958
  #
997
959
  #
998
960
  #
999
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
961
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
1000
962
  # @option options [Boolean] :enable_primary_ipv_6
1001
963
  # If you’re creating a network interface in a dual-stack or IPv6-only
1002
964
  # subnet, you have the option to assign a primary IPv6 IP address. A
@@ -1013,9 +975,63 @@ module Aws::EC2
1013
975
  # with an ENI attached to your instance and you enable a primary IPv6
1014
976
  # address, the first IPv6 GUA address associated with the ENI becomes
1015
977
  # the primary IPv6 address.
978
+ # @option options [Types::ConnectionTrackingSpecificationRequest] :connection_tracking_specification
979
+ # A connection tracking specification for the network interface.
980
+ # @option options [Types::OperatorRequest] :operator
981
+ # Reserved for internal use.
982
+ # @option options [required, String] :subnet_id
983
+ # The ID of the subnet to associate with the network interface.
984
+ # @option options [String] :description
985
+ # A description for the network interface.
986
+ # @option options [String] :private_ip_address
987
+ # The primary private IPv4 address of the network interface. If you
988
+ # don't specify an IPv4 address, Amazon EC2 selects one for you from
989
+ # the subnet's IPv4 CIDR range. If you specify an IP address, you
990
+ # cannot indicate any IP addresses specified in `privateIpAddresses` as
991
+ # primary (only one IP address can be designated as primary).
992
+ # @option options [Array<String>] :groups
993
+ # The IDs of the security groups.
994
+ # @option options [Array<Types::PrivateIpAddressSpecification>] :private_ip_addresses
995
+ # The private IPv4 addresses.
996
+ #
997
+ # You can't specify private IPv4 addresses if you've specified one of
998
+ # the following: a count of private IPv4 addresses, specific IPv4
999
+ # prefixes, or a count of IPv4 prefixes.
1000
+ # @option options [Integer] :secondary_private_ip_address_count
1001
+ # The number of secondary private IPv4 addresses to assign to a network
1002
+ # interface. When you specify a number of secondary IPv4 addresses,
1003
+ # Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR
1004
+ # range. You can't specify this option and specify more than one
1005
+ # private IP address using `privateIpAddresses`.
1006
+ #
1007
+ # You can't specify a count of private IPv4 addresses if you've
1008
+ # specified one of the following: specific private IPv4 addresses,
1009
+ # specific IPv4 prefixes, or a count of IPv4 prefixes.
1010
+ # @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
1011
+ # The IPv6 addresses from the IPv6 CIDR block range of your subnet.
1012
+ #
1013
+ # You can't specify IPv6 addresses using this parameter if you've
1014
+ # specified one of the following: a count of IPv6 addresses, specific
1015
+ # IPv6 prefixes, or a count of IPv6 prefixes.
1016
+ # @option options [Integer] :ipv_6_address_count
1017
+ # The number of IPv6 addresses to assign to a network interface. Amazon
1018
+ # EC2 automatically selects the IPv6 addresses from the subnet range.
1019
+ #
1020
+ # You can't specify a count of IPv6 addresses using this parameter if
1021
+ # you've specified one of the following: specific IPv6 addresses,
1022
+ # specific IPv6 prefixes, or a count of IPv6 prefixes.
1023
+ #
1024
+ # If your subnet has the `AssignIpv6AddressOnCreation` attribute set,
1025
+ # you can override that setting by specifying 0 as the IPv6 address
1026
+ # count.
1027
+ # @option options [Boolean] :dry_run
1028
+ # Checks whether you have the required permissions for the action,
1029
+ # without actually making the request, and provides an error response.
1030
+ # If you have the required permissions, the error response is
1031
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1016
1032
  # @return [NetworkInterface]
1017
1033
  def create_network_interface(options = {})
1018
- resp = Aws::Plugins::UserAgent.feature('resource') do
1034
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1019
1035
  @client.create_network_interface(options)
1020
1036
  end
1021
1037
  NetworkInterface.new(
@@ -1028,13 +1044,10 @@ module Aws::EC2
1028
1044
  # @example Request syntax with placeholder values
1029
1045
  #
1030
1046
  # placementgroup = ec2.create_placement_group({
1031
- # dry_run: false,
1032
- # group_name: "String",
1033
- # strategy: "cluster", # accepts cluster, spread, partition
1034
1047
  # partition_count: 1,
1035
1048
  # tag_specifications: [
1036
1049
  # {
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
1050
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1038
1051
  # tags: [
1039
1052
  # {
1040
1053
  # key: "String",
@@ -1044,20 +1057,11 @@ module Aws::EC2
1044
1057
  # },
1045
1058
  # ],
1046
1059
  # spread_level: "host", # accepts host, rack
1060
+ # dry_run: false,
1061
+ # group_name: "String",
1062
+ # strategy: "cluster", # accepts cluster, spread, partition
1047
1063
  # })
1048
1064
  # @param [Hash] options ({})
1049
- # @option options [Boolean] :dry_run
1050
- # Checks whether you have the required permissions for the action,
1051
- # without actually making the request, and provides an error response.
1052
- # If you have the required permissions, the error response is
1053
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1054
- # @option options [String] :group_name
1055
- # A name for the placement group. Must be unique within the scope of
1056
- # your account for the Region.
1057
- #
1058
- # Constraints: Up to 255 ASCII characters
1059
- # @option options [String] :strategy
1060
- # The placement strategy.
1061
1065
  # @option options [Integer] :partition_count
1062
1066
  # The number of partitions. Valid only when **Strategy** is set to
1063
1067
  # `partition`.
@@ -1069,9 +1073,21 @@ module Aws::EC2
1069
1073
  # * Host – You can use `host` only with Outpost placement groups.
1070
1074
  #
1071
1075
  # * Rack – No usage restrictions.
1076
+ # @option options [Boolean] :dry_run
1077
+ # Checks whether you have the required permissions for the operation,
1078
+ # without actually making the request, and provides an error response.
1079
+ # If you have the required permissions, the error response is
1080
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1081
+ # @option options [String] :group_name
1082
+ # A name for the placement group. Must be unique within the scope of
1083
+ # your account for the Region.
1084
+ #
1085
+ # Constraints: Up to 255 ASCII characters
1086
+ # @option options [String] :strategy
1087
+ # The placement strategy.
1072
1088
  # @return [PlacementGroup]
1073
1089
  def create_placement_group(options = {})
1074
- Aws::Plugins::UserAgent.feature('resource') do
1090
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1075
1091
  @client.create_placement_group(options)
1076
1092
  end
1077
1093
  PlacementGroup.new(
@@ -1083,11 +1099,9 @@ module Aws::EC2
1083
1099
  # @example Request syntax with placeholder values
1084
1100
  #
1085
1101
  # routetable = ec2.create_route_table({
1086
- # dry_run: false,
1087
- # vpc_id: "VpcId", # required
1088
1102
  # tag_specifications: [
1089
1103
  # {
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
1104
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1091
1105
  # tags: [
1092
1106
  # {
1093
1107
  # key: "String",
@@ -1096,8 +1110,21 @@ module Aws::EC2
1096
1110
  # ],
1097
1111
  # },
1098
1112
  # ],
1113
+ # client_token: "String",
1114
+ # dry_run: false,
1115
+ # vpc_id: "VpcId", # required
1099
1116
  # })
1100
1117
  # @param [Hash] options ({})
1118
+ # @option options [Array<Types::TagSpecification>] :tag_specifications
1119
+ # The tags to assign to the route table.
1120
+ # @option options [String] :client_token
1121
+ # Unique, case-sensitive identifier that you provide to ensure the
1122
+ # idempotency of the request. For more information, see [Ensuring
1123
+ # idempotency][1].
1124
+ #
1125
+ #
1126
+ #
1127
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
1101
1128
  # @option options [Boolean] :dry_run
1102
1129
  # Checks whether you have the required permissions for the action,
1103
1130
  # without actually making the request, and provides an error response.
@@ -1105,11 +1132,9 @@ module Aws::EC2
1105
1132
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1106
1133
  # @option options [required, String] :vpc_id
1107
1134
  # The ID of the VPC.
1108
- # @option options [Array<Types::TagSpecification>] :tag_specifications
1109
- # The tags to assign to the route table.
1110
1135
  # @return [RouteTable]
1111
1136
  def create_route_table(options = {})
1112
- resp = Aws::Plugins::UserAgent.feature('resource') do
1137
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1113
1138
  @client.create_route_table(options)
1114
1139
  end
1115
1140
  RouteTable.new(
@@ -1127,7 +1152,7 @@ module Aws::EC2
1127
1152
  # vpc_id: "VpcId",
1128
1153
  # tag_specifications: [
1129
1154
  # {
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
1155
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1131
1156
  # tags: [
1132
1157
  # {
1133
1158
  # key: "String",
@@ -1145,14 +1170,15 @@ module Aws::EC2
1145
1170
  # Constraints: Up to 255 characters in length
1146
1171
  #
1147
1172
  # Valid characters: a-z, A-Z, 0-9, spaces, and
1148
- # .\_-:/()#,@\[\]+=&amp;;\\\{\\}!$*
1173
+ # .\_-:/()#,@\[\]+=&amp;;\{}!$*
1149
1174
  # @option options [required, String] :group_name
1150
- # The name of the security group.
1175
+ # The name of the security group. Names are case-insensitive and must be
1176
+ # unique within the VPC.
1151
1177
  #
1152
- # Constraints: Up to 255 characters in length. Cannot start with `sg-`.
1178
+ # Constraints: Up to 255 characters in length. Can't start with `sg-`.
1153
1179
  #
1154
1180
  # Valid characters: a-z, A-Z, 0-9, spaces, and
1155
- # .\_-:/()#,@\[\]+=&amp;;\\\{\\}!$*
1181
+ # .\_-:/()#,@\[\]+=&amp;;\{}!$*
1156
1182
  # @option options [String] :vpc_id
1157
1183
  # The ID of the VPC. Required for a nondefault VPC.
1158
1184
  # @option options [Array<Types::TagSpecification>] :tag_specifications
@@ -1164,7 +1190,7 @@ module Aws::EC2
1164
1190
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1165
1191
  # @return [SecurityGroup]
1166
1192
  def create_security_group(options = {})
1167
- resp = Aws::Plugins::UserAgent.feature('resource') do
1193
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1168
1194
  @client.create_security_group(options)
1169
1195
  end
1170
1196
  SecurityGroup.new(
@@ -1181,7 +1207,7 @@ module Aws::EC2
1181
1207
  # volume_id: "VolumeId", # required
1182
1208
  # tag_specifications: [
1183
1209
  # {
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
1210
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1185
1211
  # tags: [
1186
1212
  # {
1187
1213
  # key: "String",
@@ -1190,36 +1216,48 @@ module Aws::EC2
1190
1216
  # ],
1191
1217
  # },
1192
1218
  # ],
1219
+ # location: "regional", # accepts regional, local
1193
1220
  # dry_run: false,
1194
1221
  # })
1195
1222
  # @param [Hash] options ({})
1196
1223
  # @option options [String] :description
1197
1224
  # A description for the snapshot.
1198
1225
  # @option options [String] :outpost_arn
1199
- # The Amazon Resource Name (ARN) of the Outpost on which to create a
1200
- # local snapshot.
1226
+ # <note markdown="1"> Only supported for volumes on Outposts. If the source volume is not on
1227
+ # an Outpost, omit this parameter.
1201
1228
  #
1202
- # * To create a snapshot of a volume in a Region, omit this parameter.
1203
- # The snapshot is created in the same Region as the volume.
1229
+ # </note>
1204
1230
  #
1205
- # * To create a snapshot of a volume on an Outpost and store the
1206
- # snapshot in the Region, omit this parameter. The snapshot is created
1207
- # in the Region for the Outpost.
1231
+ # * To create the snapshot on the same Outpost as the source volume,
1232
+ # specify the ARN of that Outpost. The snapshot must be created on the
1233
+ # same Outpost as the volume.
1208
1234
  #
1209
- # * To create a snapshot of a volume on an Outpost and store the
1210
- # snapshot on an Outpost, specify the ARN of the destination Outpost.
1211
- # The snapshot must be created on the same Outpost as the volume.
1235
+ # * To create the snapshot in the parent Region of the Outpost, omit
1236
+ # this parameter.
1212
1237
  #
1213
1238
  # For more information, see [Create local snapshots from volumes on an
1214
- # Outpost][1] in the *Amazon Elastic Compute Cloud User Guide*.
1239
+ # Outpost][1] in the *Amazon EBS User Guide*.
1215
1240
  #
1216
1241
  #
1217
1242
  #
1218
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#create-snapshot
1243
+ # [1]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#create-snapshot
1219
1244
  # @option options [required, String] :volume_id
1220
1245
  # The ID of the Amazon EBS volume.
1221
1246
  # @option options [Array<Types::TagSpecification>] :tag_specifications
1222
1247
  # The tags to apply to the snapshot during creation.
1248
+ # @option options [String] :location
1249
+ # <note markdown="1"> Only supported for volumes in Local Zones. If the source volume is not
1250
+ # in a Local Zone, omit this parameter.
1251
+ #
1252
+ # </note>
1253
+ #
1254
+ # * To create a local snapshot in the same Local Zone as the source
1255
+ # volume, specify `local`.
1256
+ #
1257
+ # * To create a regional snapshot in the parent Region of the Local
1258
+ # Zone, specify `regional` or omit this parameter.
1259
+ #
1260
+ # Default value: `regional`
1223
1261
  # @option options [Boolean] :dry_run
1224
1262
  # Checks whether you have the required permissions for the action,
1225
1263
  # without actually making the request, and provides an error response.
@@ -1227,7 +1265,7 @@ module Aws::EC2
1227
1265
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1228
1266
  # @return [Snapshot]
1229
1267
  def create_snapshot(options = {})
1230
- resp = Aws::Plugins::UserAgent.feature('resource') do
1268
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1231
1269
  @client.create_snapshot(options)
1232
1270
  end
1233
1271
  Snapshot.new(
@@ -1242,7 +1280,7 @@ module Aws::EC2
1242
1280
  # subnet = ec2.create_subnet({
1243
1281
  # tag_specifications: [
1244
1282
  # {
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
1283
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1246
1284
  # tags: [
1247
1285
  # {
1248
1286
  # key: "String",
@@ -1257,8 +1295,12 @@ module Aws::EC2
1257
1295
  # ipv_6_cidr_block: "String",
1258
1296
  # outpost_arn: "String",
1259
1297
  # vpc_id: "VpcId", # required
1260
- # dry_run: false,
1261
1298
  # ipv_6_native: false,
1299
+ # ipv_4_ipam_pool_id: "IpamPoolId",
1300
+ # ipv_4_netmask_length: 1,
1301
+ # ipv_6_ipam_pool_id: "IpamPoolId",
1302
+ # ipv_6_netmask_length: 1,
1303
+ # dry_run: false,
1262
1304
  # })
1263
1305
  # @param [Hash] options ({})
1264
1306
  # @option options [Array<Types::TagSpecification>] :tag_specifications
@@ -1272,14 +1314,14 @@ module Aws::EC2
1272
1314
  #
1273
1315
  # To create a subnet in a Local Zone, set this value to the Local Zone
1274
1316
  # ID, for example `us-west-2-lax-1a`. For information about the Regions
1275
- # that support Local Zones, see [Local Zones locations][1].
1317
+ # that support Local Zones, see [Available Local Zones][1].
1276
1318
  #
1277
1319
  # To create a subnet in an Outpost, set this value to the Availability
1278
1320
  # Zone for the Outpost and specify the Outpost ARN.
1279
1321
  #
1280
1322
  #
1281
1323
  #
1282
- # [1]: http://aws.amazon.com/about-aws/global-infrastructure/localzones/locations/
1324
+ # [1]: https://docs.aws.amazon.com/local-zones/latest/ug/available-local-zones.html
1283
1325
  # @option options [String] :availability_zone_id
1284
1326
  # The AZ ID or the Local Zone ID of the subnet.
1285
1327
  # @option options [String] :cidr_block
@@ -1290,26 +1332,32 @@ module Aws::EC2
1290
1332
  #
1291
1333
  # This parameter is not supported for an IPv6 only subnet.
1292
1334
  # @option options [String] :ipv_6_cidr_block
1293
- # The IPv6 network range for the subnet, in CIDR notation. The subnet
1294
- # size must use a /64 prefix length.
1295
- #
1296
- # This parameter is required for an IPv6 only subnet.
1335
+ # The IPv6 network range for the subnet, in CIDR notation. This
1336
+ # parameter is required for an IPv6 only subnet.
1297
1337
  # @option options [String] :outpost_arn
1298
1338
  # The Amazon Resource Name (ARN) of the Outpost. If you specify an
1299
1339
  # Outpost ARN, you must also specify the Availability Zone of the
1300
1340
  # Outpost subnet.
1301
1341
  # @option options [required, String] :vpc_id
1302
1342
  # The ID of the VPC.
1343
+ # @option options [Boolean] :ipv_6_native
1344
+ # Indicates whether to create an IPv6 only subnet.
1345
+ # @option options [String] :ipv_4_ipam_pool_id
1346
+ # An IPv4 IPAM pool ID for the subnet.
1347
+ # @option options [Integer] :ipv_4_netmask_length
1348
+ # An IPv4 netmask length for the subnet.
1349
+ # @option options [String] :ipv_6_ipam_pool_id
1350
+ # An IPv6 IPAM pool ID for the subnet.
1351
+ # @option options [Integer] :ipv_6_netmask_length
1352
+ # An IPv6 netmask length for the subnet.
1303
1353
  # @option options [Boolean] :dry_run
1304
1354
  # Checks whether you have the required permissions for the action,
1305
1355
  # without actually making the request, and provides an error response.
1306
1356
  # If you have the required permissions, the error response is
1307
1357
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1308
- # @option options [Boolean] :ipv_6_native
1309
- # Indicates whether to create an IPv6 only subnet.
1310
1358
  # @return [Subnet]
1311
1359
  def create_subnet(options = {})
1312
- resp = Aws::Plugins::UserAgent.feature('resource') do
1360
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1313
1361
  @client.create_subnet(options)
1314
1362
  end
1315
1363
  Subnet.new(
@@ -1348,7 +1396,7 @@ module Aws::EC2
1348
1396
  # set the value to an empty string.
1349
1397
  # @return [EmptyStructure]
1350
1398
  def create_tags(options = {})
1351
- resp = Aws::Plugins::UserAgent.feature('resource') do
1399
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1352
1400
  @client.create_tags(options)
1353
1401
  end
1354
1402
  resp.data
@@ -1391,7 +1439,7 @@ module Aws::EC2
1391
1439
  # Constraints: Up to 1000 tags.
1392
1440
  # @return [EmptyStructure]
1393
1441
  def delete_tags(options = {})
1394
- resp = Aws::Plugins::UserAgent.feature('resource') do
1442
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1395
1443
  @client.delete_tags(options)
1396
1444
  end
1397
1445
  resp.data
@@ -1400,7 +1448,8 @@ module Aws::EC2
1400
1448
  # @example Request syntax with placeholder values
1401
1449
  #
1402
1450
  # volume = ec2.create_volume({
1403
- # availability_zone: "AvailabilityZoneName", # required
1451
+ # availability_zone: "AvailabilityZoneName",
1452
+ # availability_zone_id: "AvailabilityZoneId",
1404
1453
  # encrypted: false,
1405
1454
  # iops: 1,
1406
1455
  # kms_key_id: "KmsKeyId",
@@ -1408,10 +1457,9 @@ module Aws::EC2
1408
1457
  # size: 1,
1409
1458
  # snapshot_id: "SnapshotId",
1410
1459
  # volume_type: "standard", # accepts standard, io1, io2, gp2, sc1, st1, gp3
1411
- # dry_run: false,
1412
1460
  # tag_specifications: [
1413
1461
  # {
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
1462
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1415
1463
  # tags: [
1416
1464
  # {
1417
1465
  # key: "String",
@@ -1423,18 +1471,31 @@ module Aws::EC2
1423
1471
  # multi_attach_enabled: false,
1424
1472
  # throughput: 1,
1425
1473
  # client_token: "String",
1474
+ # volume_initialization_rate: 1,
1475
+ # operator: {
1476
+ # principal: "String",
1477
+ # },
1478
+ # dry_run: false,
1426
1479
  # })
1427
1480
  # @param [Hash] options ({})
1428
- # @option options [required, String] :availability_zone
1481
+ # @option options [String] :availability_zone
1429
1482
  # The ID of the Availability Zone in which to create the volume. For
1430
1483
  # example, `us-east-1a`.
1484
+ #
1485
+ # Either `AvailabilityZone` or `AvailabilityZoneId` must be specified,
1486
+ # but not both.
1487
+ # @option options [String] :availability_zone_id
1488
+ # The ID of the Availability Zone in which to create the volume. For
1489
+ # example, `use1-az1`.
1490
+ #
1491
+ # Either `AvailabilityZone` or `AvailabilityZoneId` must be specified,
1492
+ # but not both.
1431
1493
  # @option options [Boolean] :encrypted
1432
1494
  # Indicates whether the volume should be encrypted. The effect of
1433
1495
  # setting the encryption state to `true` depends on the volume origin
1434
1496
  # (new or from a snapshot), starting encryption state, ownership, and
1435
1497
  # whether encryption by default is enabled. For more information, see
1436
- # [Encryption by default][1] in the *Amazon Elastic Compute Cloud User
1437
- # Guide*.
1498
+ # [Encryption by default][1] in the *Amazon EBS User Guide*.
1438
1499
  #
1439
1500
  # Encrypted Amazon EBS volumes must be attached to instances that
1440
1501
  # support Amazon EBS encryption. For more information, see [Supported
@@ -1442,8 +1503,8 @@ module Aws::EC2
1442
1503
  #
1443
1504
  #
1444
1505
  #
1445
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default
1446
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
1506
+ # [1]: https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default
1507
+ # [2]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances
1447
1508
  # @option options [Integer] :iops
1448
1509
  # The number of I/O operations per second (IOPS). For `gp3`, `io1`, and
1449
1510
  # `io2` volumes, this represents the number of IOPS that are provisioned
@@ -1453,14 +1514,14 @@ module Aws::EC2
1453
1514
  #
1454
1515
  # The following are the supported values for each volume type:
1455
1516
  #
1456
- # * `gp3`: 3,000-16,000 IOPS
1517
+ # * `gp3`: 3,000 - 16,000 IOPS
1457
1518
  #
1458
- # * `io1`: 100-64,000 IOPS
1519
+ # * `io1`: 100 - 64,000 IOPS
1459
1520
  #
1460
- # * `io2`: 100-64,000 IOPS
1521
+ # * `io2`: 100 - 256,000 IOPS
1461
1522
  #
1462
- # `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances
1463
- # built on the Nitro System][1]. Other instance families support
1523
+ # For `io2` volumes, you can achieve up to 256,000 IOPS on [instances
1524
+ # built on the Nitro System][1]. On other instances, you can achieve
1464
1525
  # performance up to 32,000 IOPS.
1465
1526
  #
1466
1527
  # This parameter is required for `io1` and `io2` volumes. The default
@@ -1469,12 +1530,11 @@ module Aws::EC2
1469
1530
  #
1470
1531
  #
1471
1532
  #
1472
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
1533
+ # [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html
1473
1534
  # @option options [String] :kms_key_id
1474
- # The identifier of the Key Management Service (KMS) KMS key to use for
1475
- # Amazon EBS encryption. If this parameter is not specified, your KMS
1476
- # key for Amazon EBS is used. If `KmsKeyId` is specified, the encrypted
1477
- # state must be `true`.
1535
+ # The identifier of the KMS key to use for Amazon EBS encryption. If
1536
+ # this parameter is not specified, your KMS key for Amazon EBS is used.
1537
+ # If `KmsKeyId` is specified, the encrypted state must be `true`.
1478
1538
  #
1479
1539
  # You can specify the KMS key using any of the following:
1480
1540
  #
@@ -1492,7 +1552,14 @@ module Aws::EC2
1492
1552
  # Therefore, if you specify an ID, alias, or ARN that is not valid, the
1493
1553
  # action can appear to complete, but eventually fails.
1494
1554
  # @option options [String] :outpost_arn
1495
- # The Amazon Resource Name (ARN) of the Outpost.
1555
+ # The Amazon Resource Name (ARN) of the Outpost on which to create the
1556
+ # volume.
1557
+ #
1558
+ # If you intend to use a volume with an instance running on an outpost,
1559
+ # then you must create the volume on the same outpost as the instance.
1560
+ # You can't use a volume created in an Amazon Web Services Region with
1561
+ # an instance on an Amazon Web Services outpost, or the other way
1562
+ # around.
1496
1563
  # @option options [Integer] :size
1497
1564
  # The size of the volume, in GiBs. You must specify either a snapshot ID
1498
1565
  # or a volume size. If you specify a snapshot, the default is the
@@ -1501,13 +1568,15 @@ module Aws::EC2
1501
1568
  #
1502
1569
  # The following are the supported volumes sizes for each volume type:
1503
1570
  #
1504
- # * `gp2` and `gp3`: 1-16,384
1571
+ # * `gp2` and `gp3`: 1 - 16,384 GiB
1505
1572
  #
1506
- # * `io1` and `io2`: 4-16,384
1573
+ # * `io1`: 4 - 16,384 GiB
1507
1574
  #
1508
- # * `st1` and `sc1`: 125-16,384
1575
+ # * `io2`: 4 - 65,536 GiB
1509
1576
  #
1510
- # * `standard`: 1-1,024
1577
+ # * `st1` and `sc1`: 125 - 16,384 GiB
1578
+ #
1579
+ # * `standard`: 1 - 1024 GiB
1511
1580
  # @option options [String] :snapshot_id
1512
1581
  # The snapshot from which to create the volume. You must specify either
1513
1582
  # a snapshot ID or a volume size.
@@ -1528,18 +1597,13 @@ module Aws::EC2
1528
1597
  # be used as boot volumes.
1529
1598
  #
1530
1599
  # For more information, see [Amazon EBS volume types][1] in the *Amazon
1531
- # Elastic Compute Cloud User Guide*.
1600
+ # EBS User Guide*.
1532
1601
  #
1533
1602
  # Default: `gp2`
1534
1603
  #
1535
1604
  #
1536
1605
  #
1537
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
1538
- # @option options [Boolean] :dry_run
1539
- # Checks whether you have the required permissions for the action,
1540
- # without actually making the request, and provides an error response.
1541
- # If you have the required permissions, the error response is
1542
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1606
+ # [1]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html
1543
1607
  # @option options [Array<Types::TagSpecification>] :tag_specifications
1544
1608
  # The tags to apply to the volume during creation.
1545
1609
  # @option options [Boolean] :multi_attach_enabled
@@ -1547,13 +1611,12 @@ module Aws::EC2
1547
1611
  # Multi-Attach, you can attach the volume to up to 16 [Instances built
1548
1612
  # on the Nitro System][1] in the same Availability Zone. This parameter
1549
1613
  # is supported with `io1` and `io2` volumes only. For more information,
1550
- # see [ Amazon EBS Multi-Attach][2] in the *Amazon Elastic Compute Cloud
1551
- # User Guide*.
1614
+ # see [ Amazon EBS Multi-Attach][2] in the *Amazon EBS User Guide*.
1552
1615
  #
1553
1616
  #
1554
1617
  #
1555
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
1556
- # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
1618
+ # [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html
1619
+ # [2]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html
1557
1620
  # @option options [Integer] :throughput
1558
1621
  # The throughput to provision for a volume, with a maximum of 1,000
1559
1622
  # MiB/s.
@@ -1568,10 +1631,48 @@ module Aws::EC2
1568
1631
  #
1569
1632
  #
1570
1633
  #
1571
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
1634
+ # [1]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
1635
+ # @option options [Integer] :volume_initialization_rate
1636
+ # Specifies the Amazon EBS Provisioned Rate for Volume Initialization
1637
+ # (volume initialization rate), in MiB/s, at which to download the
1638
+ # snapshot blocks from Amazon S3 to the volume. This is also known as
1639
+ # *volume initialization*. Specifying a volume initialization rate
1640
+ # ensures that the volume is initialized at a predictable and consistent
1641
+ # rate after creation.
1642
+ #
1643
+ # This parameter is supported only for volumes created from snapshots.
1644
+ # Omit this parameter if:
1645
+ #
1646
+ # * You want to create the volume using fast snapshot restore. You must
1647
+ # specify a snapshot that is enabled for fast snapshot restore. In
1648
+ # this case, the volume is fully initialized at creation.
1649
+ #
1650
+ # <note markdown="1"> If you specify a snapshot that is enabled for fast snapshot restore
1651
+ # and a volume initialization rate, the volume will be initialized at
1652
+ # the specified rate instead of fast snapshot restore.
1653
+ #
1654
+ # </note>
1655
+ #
1656
+ # * You want to create a volume that is initialized at the default rate.
1657
+ #
1658
+ # For more information, see [ Initialize Amazon EBS volumes][1] in the
1659
+ # *Amazon EC2 User Guide*.
1660
+ #
1661
+ # Valid range: 100 - 300 MiB/s
1662
+ #
1663
+ #
1664
+ #
1665
+ # [1]: https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html
1666
+ # @option options [Types::OperatorRequest] :operator
1667
+ # Reserved for internal use.
1668
+ # @option options [Boolean] :dry_run
1669
+ # Checks whether you have the required permissions for the action,
1670
+ # without actually making the request, and provides an error response.
1671
+ # If you have the required permissions, the error response is
1672
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1572
1673
  # @return [Volume]
1573
1674
  def create_volume(options = {})
1574
- resp = Aws::Plugins::UserAgent.feature('resource') do
1675
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1575
1676
  @client.create_volume(options)
1576
1677
  end
1577
1678
  Volume.new(
@@ -1585,19 +1686,16 @@ module Aws::EC2
1585
1686
  #
1586
1687
  # vpc = ec2.create_vpc({
1587
1688
  # cidr_block: "String",
1588
- # amazon_provided_ipv_6_cidr_block: false,
1589
1689
  # ipv_6_pool: "Ipv6PoolEc2Id",
1590
1690
  # ipv_6_cidr_block: "String",
1591
1691
  # ipv_4_ipam_pool_id: "IpamPoolId",
1592
1692
  # ipv_4_netmask_length: 1,
1593
1693
  # ipv_6_ipam_pool_id: "IpamPoolId",
1594
1694
  # ipv_6_netmask_length: 1,
1595
- # dry_run: false,
1596
- # instance_tenancy: "default", # accepts default, dedicated, host
1597
1695
  # ipv_6_cidr_block_network_border_group: "String",
1598
1696
  # tag_specifications: [
1599
1697
  # {
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
1698
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1601
1699
  # tags: [
1602
1700
  # {
1603
1701
  # key: "String",
@@ -1606,17 +1704,16 @@ module Aws::EC2
1606
1704
  # ],
1607
1705
  # },
1608
1706
  # ],
1609
- # })
1707
+ # dry_run: false,
1708
+ # instance_tenancy: "default", # accepts default, dedicated, host
1709
+ # amazon_provided_ipv_6_cidr_block: false,
1710
+ # })
1610
1711
  # @param [Hash] options ({})
1611
1712
  # @option options [String] :cidr_block
1612
1713
  # The IPv4 network range for the VPC, in CIDR notation. For example,
1613
1714
  # `10.0.0.0/16`. We modify the specified CIDR block to its canonical
1614
1715
  # form; for example, if you specify `100.68.0.18/18`, we modify it to
1615
1716
  # `100.68.0.0/18`.
1616
- # @option options [Boolean] :amazon_provided_ipv_6_cidr_block
1617
- # Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length
1618
- # for the VPC. You cannot specify the range of IP addresses, or the size
1619
- # of the CIDR block.
1620
1717
  # @option options [String] :ipv_6_pool
1621
1718
  # The ID of an IPv6 address pool from which to allocate the IPv6 CIDR
1622
1719
  # block.
@@ -1663,6 +1760,14 @@ module Aws::EC2
1663
1760
  #
1664
1761
  #
1665
1762
  # [1]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
1763
+ # @option options [String] :ipv_6_cidr_block_network_border_group
1764
+ # The name of the location from which we advertise the IPV6 CIDR block.
1765
+ # Use this parameter to limit the address to this location.
1766
+ #
1767
+ # You must set `AmazonProvidedIpv6CidrBlock` to `true` to use this
1768
+ # parameter.
1769
+ # @option options [Array<Types::TagSpecification>] :tag_specifications
1770
+ # The tags to assign to the VPC.
1666
1771
  # @option options [Boolean] :dry_run
1667
1772
  # Checks whether you have the required permissions for the action,
1668
1773
  # without actually making the request, and provides an error response.
@@ -1680,17 +1785,13 @@ module Aws::EC2
1680
1785
  # Use the `default` or `dedicated` values only.
1681
1786
  #
1682
1787
  # Default: `default`
1683
- # @option options [String] :ipv_6_cidr_block_network_border_group
1684
- # The name of the location from which we advertise the IPV6 CIDR block.
1685
- # Use this parameter to limit the address to this location.
1686
- #
1687
- # You must set `AmazonProvidedIpv6CidrBlock` to `true` to use this
1688
- # parameter.
1689
- # @option options [Array<Types::TagSpecification>] :tag_specifications
1690
- # The tags to assign to the VPC.
1788
+ # @option options [Boolean] :amazon_provided_ipv_6_cidr_block
1789
+ # Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length
1790
+ # for the VPC. You cannot specify the range of IP addresses, or the size
1791
+ # of the CIDR block.
1691
1792
  # @return [Vpc]
1692
1793
  def create_vpc(options = {})
1693
- resp = Aws::Plugins::UserAgent.feature('resource') do
1794
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1694
1795
  @client.create_vpc(options)
1695
1796
  end
1696
1797
  Vpc.new(
@@ -1703,14 +1804,10 @@ module Aws::EC2
1703
1804
  # @example Request syntax with placeholder values
1704
1805
  #
1705
1806
  # vpcpeeringconnection = ec2.create_vpc_peering_connection({
1706
- # dry_run: false,
1707
- # peer_owner_id: "String",
1708
- # peer_vpc_id: "String",
1709
- # vpc_id: "VpcId", # required
1710
1807
  # peer_region: "String",
1711
1808
  # tag_specifications: [
1712
1809
  # {
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
1810
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1714
1811
  # tags: [
1715
1812
  # {
1716
1813
  # key: "String",
@@ -1719,33 +1816,37 @@ module Aws::EC2
1719
1816
  # ],
1720
1817
  # },
1721
1818
  # ],
1819
+ # dry_run: false,
1820
+ # vpc_id: "VpcId", # required
1821
+ # peer_vpc_id: "String",
1822
+ # peer_owner_id: "String",
1722
1823
  # })
1723
1824
  # @param [Hash] options ({})
1825
+ # @option options [String] :peer_region
1826
+ # The Region code for the accepter VPC, if the accepter VPC is located
1827
+ # in a Region other than the Region in which you make the request.
1828
+ #
1829
+ # Default: The Region in which you make the request.
1830
+ # @option options [Array<Types::TagSpecification>] :tag_specifications
1831
+ # The tags to assign to the peering connection.
1724
1832
  # @option options [Boolean] :dry_run
1725
1833
  # Checks whether you have the required permissions for the action,
1726
1834
  # without actually making the request, and provides an error response.
1727
1835
  # If you have the required permissions, the error response is
1728
1836
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1729
- # @option options [String] :peer_owner_id
1730
- # The Amazon Web Services account ID of the owner of the accepter VPC.
1731
- #
1732
- # Default: Your Amazon Web Services account ID
1733
- # @option options [String] :peer_vpc_id
1734
- # The ID of the VPC with which you are creating the VPC peering
1735
- # connection. You must specify this parameter in the request.
1736
1837
  # @option options [required, String] :vpc_id
1737
1838
  # The ID of the requester VPC. You must specify this parameter in the
1738
1839
  # request.
1739
- # @option options [String] :peer_region
1740
- # The Region code for the accepter VPC, if the accepter VPC is located
1741
- # in a Region other than the Region in which you make the request.
1840
+ # @option options [String] :peer_vpc_id
1841
+ # The ID of the VPC with which you are creating the VPC peering
1842
+ # connection. You must specify this parameter in the request.
1843
+ # @option options [String] :peer_owner_id
1844
+ # The Amazon Web Services account ID of the owner of the accepter VPC.
1742
1845
  #
1743
- # Default: The Region in which you make the request.
1744
- # @option options [Array<Types::TagSpecification>] :tag_specifications
1745
- # The tags to assign to the peering connection.
1846
+ # Default: Your Amazon Web Services account ID
1746
1847
  # @return [VpcPeeringConnection]
1747
1848
  def create_vpc_peering_connection(options = {})
1748
- resp = Aws::Plugins::UserAgent.feature('resource') do
1849
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1749
1850
  @client.create_vpc_peering_connection(options)
1750
1851
  end
1751
1852
  VpcPeeringConnection.new(
@@ -1758,21 +1859,21 @@ module Aws::EC2
1758
1859
  # @example Request syntax with placeholder values
1759
1860
  #
1760
1861
  # ec2.disassociate_route_table({
1761
- # association_id: "RouteTableAssociationId", # required
1762
1862
  # dry_run: false,
1863
+ # association_id: "RouteTableAssociationId", # required
1763
1864
  # })
1764
1865
  # @param [Hash] options ({})
1765
- # @option options [required, String] :association_id
1766
- # The association ID representing the current association between the
1767
- # route table and subnet or gateway.
1768
1866
  # @option options [Boolean] :dry_run
1769
1867
  # Checks whether you have the required permissions for the action,
1770
1868
  # without actually making the request, and provides an error response.
1771
1869
  # If you have the required permissions, the error response is
1772
1870
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1871
+ # @option options [required, String] :association_id
1872
+ # The association ID representing the current association between the
1873
+ # route table and subnet or gateway.
1773
1874
  # @return [EmptyStructure]
1774
1875
  def disassociate_route_table(options = {})
1775
- resp = Aws::Plugins::UserAgent.feature('resource') do
1876
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1776
1877
  @client.disassociate_route_table(options)
1777
1878
  end
1778
1879
  resp.data
@@ -1781,12 +1882,9 @@ module Aws::EC2
1781
1882
  # @example Request syntax with placeholder values
1782
1883
  #
1783
1884
  # keypairinfo = ec2.import_key_pair({
1784
- # dry_run: false,
1785
- # key_name: "String", # required
1786
- # public_key_material: "data", # required
1787
1885
  # tag_specifications: [
1788
1886
  # {
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
1887
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1790
1888
  # tags: [
1791
1889
  # {
1792
1890
  # key: "String",
@@ -1795,8 +1893,13 @@ module Aws::EC2
1795
1893
  # ],
1796
1894
  # },
1797
1895
  # ],
1896
+ # dry_run: false,
1897
+ # key_name: "String", # required
1898
+ # public_key_material: "data", # required
1798
1899
  # })
1799
1900
  # @param [Hash] options ({})
1901
+ # @option options [Array<Types::TagSpecification>] :tag_specifications
1902
+ # The tags to apply to the imported key pair.
1800
1903
  # @option options [Boolean] :dry_run
1801
1904
  # Checks whether you have the required permissions for the action,
1802
1905
  # without actually making the request, and provides an error response.
@@ -1805,13 +1908,10 @@ module Aws::EC2
1805
1908
  # @option options [required, String] :key_name
1806
1909
  # A unique name for the key pair.
1807
1910
  # @option options [required, String, StringIO, File] :public_key_material
1808
- # The public key. For API calls, the text must be base64-encoded. For
1809
- # command line tools, base64 encoding is performed for you.
1810
- # @option options [Array<Types::TagSpecification>] :tag_specifications
1811
- # The tags to apply to the imported key pair.
1911
+ # The public key.
1812
1912
  # @return [KeyPairInfo]
1813
1913
  def import_key_pair(options = {})
1814
- resp = Aws::Plugins::UserAgent.feature('resource') do
1914
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1815
1915
  @client.import_key_pair(options)
1816
1916
  end
1817
1917
  KeyPairInfo.new(
@@ -1824,11 +1924,31 @@ module Aws::EC2
1824
1924
  #
1825
1925
  # image = ec2.register_image({
1826
1926
  # image_location: "String",
1927
+ # billing_products: ["String"],
1928
+ # boot_mode: "legacy-bios", # accepts legacy-bios, uefi, uefi-preferred
1929
+ # tpm_support: "v2.0", # accepts v2.0
1930
+ # uefi_data: "StringType",
1931
+ # imds_support: "v2.0", # accepts v2.0
1932
+ # tag_specifications: [
1933
+ # {
1934
+ # resource_type: "capacity-reservation", # accepts capacity-reservation, client-vpn-endpoint, customer-gateway, carrier-gateway, coip-pool, declarative-policies-report, 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, outpost-lag, placement-group, prefix-list, replace-root-volume-task, reserved-instances, route-table, security-group, security-group-rule, service-link-virtual-interface, 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, route-server, route-server-endpoint, route-server-peer, ipam-resource-discovery, ipam-resource-discovery-association, instance-connect-endpoint, verified-access-endpoint-target, ipam-external-resource-verification-token, capacity-block, mac-modification-task
1935
+ # tags: [
1936
+ # {
1937
+ # key: "String",
1938
+ # value: "String",
1939
+ # },
1940
+ # ],
1941
+ # },
1942
+ # ],
1943
+ # dry_run: false,
1944
+ # name: "String", # required
1945
+ # description: "String",
1827
1946
  # architecture: "i386", # accepts i386, x86_64, arm64, x86_64_mac, arm64_mac
1947
+ # kernel_id: "KernelId",
1948
+ # ramdisk_id: "RamdiskId",
1949
+ # root_device_name: "String",
1828
1950
  # block_device_mappings: [
1829
1951
  # {
1830
- # device_name: "String",
1831
- # virtual_name: "String",
1832
1952
  # ebs: {
1833
1953
  # delete_on_termination: false,
1834
1954
  # iops: 1,
@@ -1838,77 +1958,30 @@ module Aws::EC2
1838
1958
  # kms_key_id: "String",
1839
1959
  # throughput: 1,
1840
1960
  # outpost_arn: "String",
1961
+ # availability_zone: "String",
1841
1962
  # encrypted: false,
1963
+ # volume_initialization_rate: 1,
1964
+ # availability_zone_id: "String",
1842
1965
  # },
1843
1966
  # no_device: "String",
1967
+ # device_name: "String",
1968
+ # virtual_name: "String",
1844
1969
  # },
1845
1970
  # ],
1846
- # description: "String",
1847
- # dry_run: false,
1848
- # ena_support: false,
1849
- # kernel_id: "KernelId",
1850
- # name: "String", # required
1851
- # billing_products: ["String"],
1852
- # ramdisk_id: "RamdiskId",
1853
- # root_device_name: "String",
1854
- # sriov_net_support: "String",
1855
1971
  # virtualization_type: "String",
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
1972
+ # sriov_net_support: "String",
1973
+ # ena_support: false,
1860
1974
  # })
1861
1975
  # @param [Hash] options ({})
1862
1976
  # @option options [String] :image_location
1863
1977
  # The full path to your AMI manifest in Amazon S3 storage. The specified
1864
1978
  # bucket must have the `aws-exec-read` canned access control list (ACL)
1865
1979
  # to ensure that it can be accessed by Amazon EC2. For more information,
1866
- # see [Canned ACLs][1] in the *Amazon S3 Service Developer Guide*.
1980
+ # see [Canned ACL][1] in the *Amazon S3 Service Developer Guide*.
1867
1981
  #
1868
1982
  #
1869
1983
  #
1870
1984
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
1871
- # @option options [String] :architecture
1872
- # The architecture of the AMI.
1873
- #
1874
- # Default: For Amazon EBS-backed AMIs, `i386`. For instance store-backed
1875
- # AMIs, the architecture specified in the manifest file.
1876
- # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
1877
- # The block device mapping entries.
1878
- #
1879
- # If you specify an Amazon EBS volume using the ID of an Amazon EBS
1880
- # snapshot, you can't specify the encryption state of the volume.
1881
- #
1882
- # If you create an AMI on an Outpost, then all backing snapshots must be
1883
- # on the same Outpost or in the Region of that Outpost. AMIs on an
1884
- # Outpost that include local snapshots can be used to launch instances
1885
- # on the same Outpost only. For more information, [Amazon EBS local
1886
- # snapshots on Outposts][1] in the *Amazon EC2 User Guide*.
1887
- #
1888
- #
1889
- #
1890
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami
1891
- # @option options [String] :description
1892
- # A description for your AMI.
1893
- # @option options [Boolean] :dry_run
1894
- # Checks whether you have the required permissions for the action,
1895
- # without actually making the request, and provides an error response.
1896
- # If you have the required permissions, the error response is
1897
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1898
- # @option options [Boolean] :ena_support
1899
- # Set to `true` to enable enhanced networking with ENA for the AMI and
1900
- # any instances that you launch from the AMI.
1901
- #
1902
- # This option is supported only for HVM AMIs. Specifying this option
1903
- # with a PV AMI can make instances launched from the AMI unreachable.
1904
- # @option options [String] :kernel_id
1905
- # The ID of the kernel.
1906
- # @option options [required, String] :name
1907
- # A name for your AMI.
1908
- #
1909
- # Constraints: 3-128 alphanumeric characters, parentheses (()), square
1910
- # brackets (\[\]), spaces ( ), periods (.), slashes (/), dashes (-),
1911
- # single quotes ('), at-signs (@), or underscores(\_)
1912
1985
  # @option options [Array<String>] :billing_products
1913
1986
  # The billing product codes. Your account must be authorized to specify
1914
1987
  # billing product codes.
@@ -1917,30 +1990,14 @@ module Aws::EC2
1917
1990
  # you can publish AMIs that include billable software and list them on
1918
1991
  # the Amazon Web Services Marketplace. You must first register as a
1919
1992
  # 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*.
1993
+ # see [Getting started as an Amazon Web Services Marketplace seller][1]
1994
+ # and [AMI-based products in Amazon Web Services Marketplace][2] in the
1995
+ # *Amazon Web Services Marketplace Seller Guide*.
1922
1996
  #
1923
1997
  #
1924
1998
  #
1925
1999
  # [1]: https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html
1926
2000
  # [2]: https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html
1927
- # @option options [String] :ramdisk_id
1928
- # The ID of the RAM disk.
1929
- # @option options [String] :root_device_name
1930
- # The device name of the root device volume (for example, `/dev/sda1`).
1931
- # @option options [String] :sriov_net_support
1932
- # Set to `simple` to enable enhanced networking with the Intel 82599
1933
- # Virtual Function interface for the AMI and any instances that you
1934
- # launch from the AMI.
1935
- #
1936
- # There is no way to disable `sriovNetSupport` at this time.
1937
- #
1938
- # This option is supported only for HVM AMIs. Specifying this option
1939
- # with a PV AMI can make instances launched from the AMI unreachable.
1940
- # @option options [String] :virtualization_type
1941
- # The type of virtualization (`hvm` \| `paravirtual`).
1942
- #
1943
- # Default: `paravirtual`
1944
2001
  # @option options [String] :boot_mode
1945
2002
  # The boot mode of the AMI. A value of `uefi-preferred` indicates that
1946
2003
  # the AMI supports both UEFI and Legacy BIOS.
@@ -1950,8 +2007,8 @@ module Aws::EC2
1950
2007
  #
1951
2008
  # </note>
1952
2009
  #
1953
- # For more information, see [Boot modes][1] in the *Amazon EC2 User
1954
- # Guide*.
2010
+ # For more information, see [Instance launch behavior with Amazon EC2
2011
+ # boot modes][1] in the *Amazon EC2 User Guide*.
1955
2012
  #
1956
2013
  #
1957
2014
  #
@@ -1967,8 +2024,8 @@ module Aws::EC2
1967
2024
  # Base64 representation of the non-volatile UEFI variable store. To
1968
2025
  # retrieve the UEFI data, use the [GetInstanceUefiData][1] command. You
1969
2026
  # 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*.
2027
+ # tool][2] on GitHub. For more information, see [UEFI Secure Boot for
2028
+ # Amazon EC2 instances][3] in the *Amazon EC2 User Guide*.
1972
2029
  #
1973
2030
  #
1974
2031
  #
@@ -1991,9 +2048,78 @@ module Aws::EC2
1991
2048
  #
1992
2049
  #
1993
2050
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration
2051
+ # @option options [Array<Types::TagSpecification>] :tag_specifications
2052
+ # The tags to apply to the AMI.
2053
+ #
2054
+ # To tag the AMI, the value for `ResourceType` must be `image`. If you
2055
+ # specify another value for `ResourceType`, the request fails.
2056
+ #
2057
+ # To tag an AMI after it has been registered, see [CreateTags][1].
2058
+ #
2059
+ #
2060
+ #
2061
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html
2062
+ # @option options [Boolean] :dry_run
2063
+ # Checks whether you have the required permissions for the action,
2064
+ # without actually making the request, and provides an error response.
2065
+ # If you have the required permissions, the error response is
2066
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2067
+ # @option options [required, String] :name
2068
+ # A name for your AMI.
2069
+ #
2070
+ # Constraints: 3-128 alphanumeric characters, parentheses (()), square
2071
+ # brackets (\[\]), spaces ( ), periods (.), slashes (/), dashes (-),
2072
+ # single quotes ('), at-signs (@), or underscores(\_)
2073
+ # @option options [String] :description
2074
+ # A description for your AMI.
2075
+ # @option options [String] :architecture
2076
+ # The architecture of the AMI.
2077
+ #
2078
+ # Default: For Amazon EBS-backed AMIs, `i386`. For instance store-backed
2079
+ # AMIs, the architecture specified in the manifest file.
2080
+ # @option options [String] :kernel_id
2081
+ # The ID of the kernel.
2082
+ # @option options [String] :ramdisk_id
2083
+ # The ID of the RAM disk.
2084
+ # @option options [String] :root_device_name
2085
+ # The device name of the root device volume (for example, `/dev/sda1`).
2086
+ # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
2087
+ # The block device mapping entries.
2088
+ #
2089
+ # If you specify an Amazon EBS volume using the ID of an Amazon EBS
2090
+ # snapshot, you can't specify the encryption state of the volume.
2091
+ #
2092
+ # If you create an AMI on an Outpost, then all backing snapshots must be
2093
+ # on the same Outpost or in the Region of that Outpost. AMIs on an
2094
+ # Outpost that include local snapshots can be used to launch instances
2095
+ # on the same Outpost only. For more information, [Create AMIs from
2096
+ # local snapshots][1] in the *Amazon EBS User Guide*.
2097
+ #
2098
+ #
2099
+ #
2100
+ # [1]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#ami
2101
+ # @option options [String] :virtualization_type
2102
+ # The type of virtualization (`hvm` \| `paravirtual`).
2103
+ #
2104
+ # Default: `paravirtual`
2105
+ # @option options [String] :sriov_net_support
2106
+ # Set to `simple` to enable enhanced networking with the Intel 82599
2107
+ # Virtual Function interface for the AMI and any instances that you
2108
+ # launch from the AMI.
2109
+ #
2110
+ # There is no way to disable `sriovNetSupport` at this time.
2111
+ #
2112
+ # This option is supported only for HVM AMIs. Specifying this option
2113
+ # with a PV AMI can make instances launched from the AMI unreachable.
2114
+ # @option options [Boolean] :ena_support
2115
+ # Set to `true` to enable enhanced networking with ENA for the AMI and
2116
+ # any instances that you launch from the AMI.
2117
+ #
2118
+ # This option is supported only for HVM AMIs. Specifying this option
2119
+ # with a PV AMI can make instances launched from the AMI unreachable.
1994
2120
  # @return [Image]
1995
2121
  def register_image(options = {})
1996
- resp = Aws::Plugins::UserAgent.feature('resource') do
2122
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1997
2123
  @client.register_image(options)
1998
2124
  end
1999
2125
  Image.new(
@@ -2007,17 +2133,26 @@ module Aws::EC2
2007
2133
  # @example Request syntax with placeholder values
2008
2134
  #
2009
2135
  # classic_addresses = ec2.classic_addresses({
2136
+ # public_ips: ["String"],
2137
+ # dry_run: false,
2010
2138
  # filters: [
2011
2139
  # {
2012
2140
  # name: "String",
2013
2141
  # values: ["String"],
2014
2142
  # },
2015
2143
  # ],
2016
- # public_ips: ["String"],
2017
2144
  # allocation_ids: ["AllocationId"],
2018
- # dry_run: false,
2019
2145
  # })
2020
2146
  # @param [Hash] options ({})
2147
+ # @option options [Array<String>] :public_ips
2148
+ # One or more Elastic IP addresses.
2149
+ #
2150
+ # Default: Describes all your Elastic IP addresses.
2151
+ # @option options [Boolean] :dry_run
2152
+ # Checks whether you have the required permissions for the action,
2153
+ # without actually making the request, and provides an error response.
2154
+ # If you have the required permissions, the error response is
2155
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2021
2156
  # @option options [Array<Types::Filter>] :filters
2022
2157
  # One or more filters. Filter names and values are case-sensitive.
2023
2158
  #
@@ -2052,17 +2187,8 @@ module Aws::EC2
2052
2187
  # * `tag-key` - The key of a tag assigned to the resource. Use this
2053
2188
  # filter to find all resources assigned a tag with a specific key,
2054
2189
  # regardless of the tag value.
2055
- # @option options [Array<String>] :public_ips
2056
- # One or more Elastic IP addresses.
2057
- #
2058
- # Default: Describes all your Elastic IP addresses.
2059
2190
  # @option options [Array<String>] :allocation_ids
2060
2191
  # Information about the allocation IDs.
2061
- # @option options [Boolean] :dry_run
2062
- # Checks whether you have the required permissions for the action,
2063
- # without actually making the request, and provides an error response.
2064
- # If you have the required permissions, the error response is
2065
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2066
2192
  # @return [ClassicAddress::Collection]
2067
2193
  def classic_addresses(options = {})
2068
2194
  batches = Enumerator.new do |y|
@@ -2071,7 +2197,7 @@ module Aws::EC2
2071
2197
  name: "domain",
2072
2198
  values: ["standard"]
2073
2199
  }])
2074
- resp = Aws::Plugins::UserAgent.feature('resource') do
2200
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2075
2201
  @client.describe_addresses(options)
2076
2202
  end
2077
2203
  resp.data.addresses.each do |a|
@@ -2099,19 +2225,22 @@ module Aws::EC2
2099
2225
  #
2100
2226
  # dhcp_options_sets = ec2.dhcp_options_sets({
2101
2227
  # dhcp_options_ids: ["DhcpOptionsId"],
2228
+ # dry_run: false,
2102
2229
  # filters: [
2103
2230
  # {
2104
2231
  # name: "String",
2105
2232
  # values: ["String"],
2106
2233
  # },
2107
2234
  # ],
2108
- # dry_run: false,
2109
2235
  # })
2110
2236
  # @param [Hash] options ({})
2111
2237
  # @option options [Array<String>] :dhcp_options_ids
2112
- # The IDs of one or more DHCP options sets.
2113
- #
2114
- # Default: Describes all your DHCP options sets.
2238
+ # The IDs of DHCP option sets.
2239
+ # @option options [Boolean] :dry_run
2240
+ # Checks whether you have the required permissions for the action,
2241
+ # without actually making the request, and provides an error response.
2242
+ # If you have the required permissions, the error response is
2243
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2115
2244
  # @option options [Array<Types::Filter>] :filters
2116
2245
  # The filters.
2117
2246
  #
@@ -2124,24 +2253,19 @@ module Aws::EC2
2124
2253
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
2125
2254
  # DHCP options set.
2126
2255
  #
2127
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2128
- # the resource. Use the tag key in the filter name and the tag value
2129
- # as the filter value. For example, to find all resources that have a
2130
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
2131
- # for the filter name and `TeamA` for the filter value.
2256
+ # * `tag` - The key/value combination of a tag assigned to the resource.
2257
+ # Use the tag key in the filter name and the tag value as the filter
2258
+ # value. For example, to find all resources that have a tag with the
2259
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
2260
+ # filter name and `TeamA` for the filter value.
2132
2261
  #
2133
2262
  # * `tag-key` - The key of a tag assigned to the resource. Use this
2134
2263
  # filter to find all resources assigned a tag with a specific key,
2135
2264
  # regardless of the tag value.
2136
- # @option options [Boolean] :dry_run
2137
- # Checks whether you have the required permissions for the action,
2138
- # without actually making the request, and provides an error response.
2139
- # If you have the required permissions, the error response is
2140
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2141
2265
  # @return [DhcpOptions::Collection]
2142
2266
  def dhcp_options_sets(options = {})
2143
2267
  batches = Enumerator.new do |y|
2144
- resp = Aws::Plugins::UserAgent.feature('resource') do
2268
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2145
2269
  @client.describe_dhcp_options(options)
2146
2270
  end
2147
2271
  resp.each_page do |page|
@@ -2172,16 +2296,17 @@ module Aws::EC2
2172
2296
  #
2173
2297
  # images = ec2.images({
2174
2298
  # executable_users: ["String"],
2299
+ # image_ids: ["ImageId"],
2300
+ # owners: ["String"],
2301
+ # include_deprecated: false,
2302
+ # include_disabled: false,
2303
+ # dry_run: false,
2175
2304
  # filters: [
2176
2305
  # {
2177
2306
  # name: "String",
2178
2307
  # values: ["String"],
2179
2308
  # },
2180
2309
  # ],
2181
- # image_ids: ["ImageId"],
2182
- # owners: ["String"],
2183
- # include_deprecated: false,
2184
- # dry_run: false,
2185
2310
  # })
2186
2311
  # @param [Hash] options ({})
2187
2312
  # @option options [Array<String>] :executable_users
@@ -2194,12 +2319,40 @@ module Aws::EC2
2194
2319
  # ID are returned. However, AMIs that are shared with the account’s
2195
2320
  # organization or organizational unit (OU) are not returned.
2196
2321
  #
2197
- # * If you specify `self` or your own Amazon Web Services account ID,
2198
- # AMIs shared with your account are returned. In addition, AMIs that
2199
- # are shared with the organization or OU of which you are member are
2200
- # also returned.
2322
+ # * If you specify `self` or your own Amazon Web Services account ID,
2323
+ # AMIs shared with your account are returned. In addition, AMIs that
2324
+ # are shared with the organization or OU of which you are member are
2325
+ # also returned.
2326
+ #
2327
+ # * If you specify `all`, all public AMIs are returned.
2328
+ # @option options [Array<String>] :image_ids
2329
+ # The image IDs.
2330
+ #
2331
+ # Default: Describes all images available to you.
2332
+ # @option options [Array<String>] :owners
2333
+ # Scopes the results to images with the specified owners. You can
2334
+ # specify a combination of Amazon Web Services account IDs, `self`,
2335
+ # `amazon`, `aws-backup-vault`, and `aws-marketplace`. If you omit this
2336
+ # parameter, the results include all images for which you have launch
2337
+ # permissions, regardless of ownership.
2338
+ # @option options [Boolean] :include_deprecated
2339
+ # Specifies whether to include deprecated AMIs.
2340
+ #
2341
+ # Default: No deprecated AMIs are included in the response.
2342
+ #
2343
+ # <note markdown="1"> If you are the AMI owner, all deprecated AMIs appear in the response
2344
+ # regardless of what you specify for this parameter.
2201
2345
  #
2202
- # * If you specify `all`, all public AMIs are returned.
2346
+ # </note>
2347
+ # @option options [Boolean] :include_disabled
2348
+ # Specifies whether to include disabled AMIs.
2349
+ #
2350
+ # Default: No disabled AMIs are included in the response.
2351
+ # @option options [Boolean] :dry_run
2352
+ # Checks whether you have the required permissions for the action,
2353
+ # without actually making the request, and provides an error response.
2354
+ # If you have the required permissions, the error response is
2355
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2203
2356
  # @option options [Array<Types::Filter>] :filters
2204
2357
  # The filters.
2205
2358
  #
@@ -2237,8 +2390,15 @@ module Aws::EC2
2237
2390
  # * `ena-support` - A Boolean that indicates whether enhanced networking
2238
2391
  # with ENA is enabled.
2239
2392
  #
2393
+ # * `free-tier-eligible` - A Boolean that indicates whether this image
2394
+ # can be used under the Amazon Web Services Free Tier (`true` \|
2395
+ # `false`).
2396
+ #
2240
2397
  # * `hypervisor` - The hypervisor type (`ovm` \| `xen`).
2241
2398
  #
2399
+ # * `image-allowed` - A Boolean that indicates whether the image meets
2400
+ # the criteria specified for Allowed AMIs.
2401
+ #
2242
2402
  # * `image-id` - The ID of the image.
2243
2403
  #
2244
2404
  # * `image-type` - The image type (`machine` \| `kernel` \| `ramdisk`).
@@ -2251,11 +2411,11 @@ module Aws::EC2
2251
2411
  #
2252
2412
  # * `name` - The name of the AMI (provided during image creation).
2253
2413
  #
2254
- # * `owner-alias` - The owner alias (`amazon` \| `aws-marketplace`). The
2255
- # valid aliases are defined in an Amazon-maintained list. This is not
2256
- # the Amazon Web Services account alias that can be set using the IAM
2257
- # console. We recommend that you use the **Owner** request parameter
2258
- # instead of this filter.
2414
+ # * `owner-alias` - The owner alias (`amazon` \| `aws-backup-vault` \|
2415
+ # `aws-marketplace`). The valid aliases are defined in an
2416
+ # Amazon-maintained list. This is not the Amazon Web Services account
2417
+ # alias that can be set using the IAM console. We recommend that you
2418
+ # use the **Owner** request parameter instead of this filter.
2259
2419
  #
2260
2420
  # * `owner-id` - The Amazon Web Services account ID of the owner. We
2261
2421
  # recommend that you use the **Owner** request parameter instead of
@@ -2275,6 +2435,15 @@ module Aws::EC2
2275
2435
  # * `root-device-type` - The type of the root device volume (`ebs` \|
2276
2436
  # `instance-store`).
2277
2437
  #
2438
+ # * `source-image-id` - The ID of the source AMI from which the AMI was
2439
+ # created.
2440
+ #
2441
+ # * `source-image-region` - The Region of the source AMI.
2442
+ #
2443
+ # * `source-instance-id` - The ID of the instance that the AMI was
2444
+ # created from if the AMI was created using CreateImage. This filter
2445
+ # is applicable only if the AMI was created using [CreateImage][1].
2446
+ #
2278
2447
  # * `state` - The state of the image (`available` \| `pending` \|
2279
2448
  # `failed`).
2280
2449
  #
@@ -2285,11 +2454,11 @@ module Aws::EC2
2285
2454
  # * `sriov-net-support` - A value of `simple` indicates that enhanced
2286
2455
  # networking with the Intel 82599 VF interface is enabled.
2287
2456
  #
2288
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2289
- # the resource. Use the tag key in the filter name and the tag value
2290
- # as the filter value. For example, to find all resources that have a
2291
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
2292
- # for the filter name and `TeamA` for the filter value.
2457
+ # * `tag:<key>` - The key/value combination of a tag assigned to the
2458
+ # resource. Use the tag key in the filter name and the tag value as
2459
+ # the filter value. For example, to find all resources that have a tag
2460
+ # with the key `Owner` and the value `TeamA`, specify `tag:Owner` for
2461
+ # the filter name and `TeamA` for the filter value.
2293
2462
  #
2294
2463
  # * `tag-key` - The key of a tag assigned to the resource. Use this
2295
2464
  # filter to find all resources assigned a tag with a specific key,
@@ -2297,34 +2466,14 @@ module Aws::EC2
2297
2466
  #
2298
2467
  # * `virtualization-type` - The virtualization type (`paravirtual` \|
2299
2468
  # `hvm`).
2300
- # @option options [Array<String>] :image_ids
2301
- # The image IDs.
2302
- #
2303
- # Default: Describes all images available to you.
2304
- # @option options [Array<String>] :owners
2305
- # Scopes the results to images with the specified owners. You can
2306
- # specify a combination of Amazon Web Services account IDs, `self`,
2307
- # `amazon`, and `aws-marketplace`. If you omit this parameter, the
2308
- # results include all images for which you have launch permissions,
2309
- # regardless of ownership.
2310
- # @option options [Boolean] :include_deprecated
2311
- # Specifies whether to include deprecated AMIs.
2312
2469
  #
2313
- # Default: No deprecated AMIs are included in the response.
2314
2470
  #
2315
- # <note markdown="1"> If you are the AMI owner, all deprecated AMIs appear in the response
2316
- # regardless of what you specify for this parameter.
2317
2471
  #
2318
- # </note>
2319
- # @option options [Boolean] :dry_run
2320
- # Checks whether you have the required permissions for the action,
2321
- # without actually making the request, and provides an error response.
2322
- # If you have the required permissions, the error response is
2323
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2472
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html
2324
2473
  # @return [Image::Collection]
2325
2474
  def images(options = {})
2326
2475
  batches = Enumerator.new do |y|
2327
- resp = Aws::Plugins::UserAgent.feature('resource') do
2476
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2328
2477
  @client.describe_images(options)
2329
2478
  end
2330
2479
  resp.each_page do |page|
@@ -2354,16 +2503,25 @@ module Aws::EC2
2354
2503
  # @example Request syntax with placeholder values
2355
2504
  #
2356
2505
  # instances = ec2.instances({
2506
+ # instance_ids: ["InstanceId"],
2507
+ # dry_run: false,
2357
2508
  # filters: [
2358
2509
  # {
2359
2510
  # name: "String",
2360
2511
  # values: ["String"],
2361
2512
  # },
2362
2513
  # ],
2363
- # instance_ids: ["InstanceId"],
2364
- # dry_run: false,
2365
2514
  # })
2366
2515
  # @param [Hash] options ({})
2516
+ # @option options [Array<String>] :instance_ids
2517
+ # The instance IDs.
2518
+ #
2519
+ # Default: Describes all your instances.
2520
+ # @option options [Boolean] :dry_run
2521
+ # Checks whether you have the required permissions for the operation,
2522
+ # without actually making the request, and provides an error response.
2523
+ # If you have the required permissions, the error response is
2524
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2367
2525
  # @option options [Array<Types::Filter>] :filters
2368
2526
  # The filters.
2369
2527
  #
@@ -2375,6 +2533,9 @@ module Aws::EC2
2375
2533
  #
2376
2534
  # * `availability-zone` - The Availability Zone of the instance.
2377
2535
  #
2536
+ # * `availability-zone-id` - The ID of the Availability Zone of the
2537
+ # instance.
2538
+ #
2378
2539
  # * `block-device-mapping.attach-time` - The attach time for an EBS
2379
2540
  # volume mapped to the instance, for example,
2380
2541
  # `2022-09-15T17:15:20.000Z`.
@@ -2439,15 +2600,13 @@ module Aws::EC2
2439
2600
  # * `iam-instance-profile.id` - The instance profile associated with the
2440
2601
  # instance. Specified as an ID.
2441
2602
  #
2442
- # * `iam-instance-profile.name` - The instance profile associated with
2443
- # the instance. Specified as an name.
2444
- #
2445
2603
  # * `image-id` - The ID of the image used to launch the instance.
2446
2604
  #
2447
2605
  # * `instance-id` - The ID of the instance.
2448
2606
  #
2449
- # * `instance-lifecycle` - Indicates whether this is a Spot Instance or
2450
- # a Scheduled Instance (`spot` \| `scheduled`).
2607
+ # * `instance-lifecycle` - Indicates whether this is a Spot Instance, a
2608
+ # Scheduled Instance, or a Capacity Block (`spot` \| `scheduled` \|
2609
+ # `capacity-block`).
2451
2610
  #
2452
2611
  # * `instance-state-code` - The state of the instance, as a 16-bit
2453
2612
  # unsigned integer. The high byte is used for internal purposes and
@@ -2484,8 +2643,6 @@ module Aws::EC2
2484
2643
  # example, `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`),
2485
2644
  # for example, `2021-09-29T*`, which matches an entire day.
2486
2645
  #
2487
- # * `license-pool` -
2488
- #
2489
2646
  # * `maintenance-options.auto-recovery` - The current automatic recovery
2490
2647
  # behavior of the instance (`disabled` \| `default`).
2491
2648
  #
@@ -2514,25 +2671,37 @@ module Aws::EC2
2514
2671
  # * `monitoring-state` - Indicates whether detailed monitoring is
2515
2672
  # enabled (`disabled` \| `enabled`).
2516
2673
  #
2517
- # * `network-interface.addresses.primary` - Specifies whether the IPv4
2518
- # address of the network interface is the primary private IPv4
2519
- # address.
2674
+ # * `network-interface.addresses.association.allocation-id` - The
2675
+ # allocation ID.
2520
2676
  #
2521
- # * `network-interface.addresses.private-ip-address` - The private IPv4
2522
- # address associated with the network interface.
2677
+ # * `network-interface.addresses.association.association-id` - The
2678
+ # association ID.
2679
+ #
2680
+ # * `network-interface.addresses.association.carrier-ip` - The carrier
2681
+ # IP address.
2682
+ #
2683
+ # * `network-interface.addresses.association.customer-owned-ip` - The
2684
+ # customer-owned IP address.
2685
+ #
2686
+ # * `network-interface.addresses.association.ip-owner-id` - The owner ID
2687
+ # of the private IPv4 address associated with the network interface.
2688
+ #
2689
+ # * `network-interface.addresses.association.public-dns-name` - The
2690
+ # public DNS name.
2523
2691
  #
2524
2692
  # * `network-interface.addresses.association.public-ip` - The ID of the
2525
2693
  # association of an Elastic IP address (IPv4) with a network
2526
2694
  # interface.
2527
2695
  #
2528
- # * `network-interface.addresses.association.ip-owner-id` - The owner ID
2529
- # of the private IPv4 address associated with the network interface.
2696
+ # * `network-interface.addresses.primary` - Specifies whether the IPv4
2697
+ # address of the network interface is the primary private IPv4
2698
+ # address.
2530
2699
  #
2531
- # * `network-interface.association.public-ip` - The address of the
2532
- # Elastic IP address (IPv4) bound to the network interface.
2700
+ # * `network-interface.addresses.private-dns-name` - The private DNS
2701
+ # name.
2533
2702
  #
2534
- # * `network-interface.association.ip-owner-id` - The owner of the
2535
- # Elastic IP address (IPv4) associated with the network interface.
2703
+ # * `network-interface.addresses.private-ip-address` - The private IPv4
2704
+ # address associated with the network interface.
2536
2705
  #
2537
2706
  # * `network-interface.association.allocation-id` - The allocation ID
2538
2707
  # returned when you allocated the Elastic IP address (IPv4) for your
@@ -2542,30 +2711,52 @@ module Aws::EC2
2542
2711
  # returned when the network interface was associated with an IPv4
2543
2712
  # address.
2544
2713
  #
2714
+ # * `network-interface.association.carrier-ip` - The customer-owned IP
2715
+ # address.
2716
+ #
2717
+ # * `network-interface.association.customer-owned-ip` - The
2718
+ # customer-owned IP address.
2719
+ #
2720
+ # * `network-interface.association.ip-owner-id` - The owner of the
2721
+ # Elastic IP address (IPv4) associated with the network interface.
2722
+ #
2723
+ # * `network-interface.association.public-dns-name` - The public DNS
2724
+ # name.
2725
+ #
2726
+ # * `network-interface.association.public-ip` - The address of the
2727
+ # Elastic IP address (IPv4) bound to the network interface.
2728
+ #
2729
+ # * `network-interface.attachment.attach-time` - The time that the
2730
+ # network interface was attached to an instance.
2731
+ #
2545
2732
  # * `network-interface.attachment.attachment-id` - The ID of the
2546
2733
  # interface attachment.
2547
2734
  #
2735
+ # * `network-interface.attachment.delete-on-termination` - Specifies
2736
+ # whether the attachment is deleted when an instance is terminated.
2737
+ #
2738
+ # * `network-interface.attachment.device-index` - The device index to
2739
+ # which the network interface is attached.
2740
+ #
2548
2741
  # * `network-interface.attachment.instance-id` - The ID of the instance
2549
2742
  # to which the network interface is attached.
2550
2743
  #
2551
2744
  # * `network-interface.attachment.instance-owner-id` - The owner ID of
2552
2745
  # the instance to which the network interface is attached.
2553
2746
  #
2554
- # * `network-interface.attachment.device-index` - The device index to
2555
- # which the network interface is attached.
2747
+ # * `network-interface.attachment.network-card-index` - The index of the
2748
+ # network card.
2556
2749
  #
2557
2750
  # * `network-interface.attachment.status` - The status of the attachment
2558
2751
  # (`attaching` \| `attached` \| `detaching` \| `detached`).
2559
2752
  #
2560
- # * `network-interface.attachment.attach-time` - The time that the
2561
- # network interface was attached to an instance.
2562
- #
2563
- # * `network-interface.attachment.delete-on-termination` - Specifies
2564
- # whether the attachment is deleted when an instance is terminated.
2565
- #
2566
2753
  # * `network-interface.availability-zone` - The Availability Zone for
2567
2754
  # the network interface.
2568
2755
  #
2756
+ # * `network-interface.deny-all-igw-traffic` - A Boolean that indicates
2757
+ # whether a network interface with an IPv6 address is unreachable from
2758
+ # the public internet.
2759
+ #
2569
2760
  # * `network-interface.description` - The description of the network
2570
2761
  # interface.
2571
2762
  #
@@ -2575,21 +2766,49 @@ module Aws::EC2
2575
2766
  # * `network-interface.group-name` - The name of a security group
2576
2767
  # associated with the network interface.
2577
2768
  #
2769
+ # * `network-interface.ipv4-prefixes.ipv4-prefix` - The IPv4 prefixes
2770
+ # that are assigned to the network interface.
2771
+ #
2772
+ # * `network-interface.ipv6-address` - The IPv6 address associated with
2773
+ # the network interface.
2774
+ #
2578
2775
  # * `network-interface.ipv6-addresses.ipv6-address` - The IPv6 address
2579
2776
  # associated with the network interface.
2580
2777
  #
2778
+ # * `network-interface.ipv6-addresses.is-primary-ipv6` - A Boolean that
2779
+ # indicates whether this is the primary IPv6 address.
2780
+ #
2781
+ # * `network-interface.ipv6-native` - A Boolean that indicates whether
2782
+ # this is an IPv6 only network interface.
2783
+ #
2784
+ # * `network-interface.ipv6-prefixes.ipv6-prefix` - The IPv6 prefix
2785
+ # assigned to the network interface.
2786
+ #
2581
2787
  # * `network-interface.mac-address` - The MAC address of the network
2582
2788
  # interface.
2583
2789
  #
2584
2790
  # * `network-interface.network-interface-id` - The ID of the network
2585
2791
  # interface.
2586
2792
  #
2793
+ # * `network-interface.operator.managed` - A Boolean that indicates
2794
+ # whether the instance has a managed network interface.
2795
+ #
2796
+ # * `network-interface.operator.principal` - The principal that manages
2797
+ # the network interface. Only valid for instances with managed network
2798
+ # interfaces, where `managed` is `true`.
2799
+ #
2800
+ # * `network-interface.outpost-arn` - The ARN of the Outpost.
2801
+ #
2587
2802
  # * `network-interface.owner-id` - The ID of the owner of the network
2588
2803
  # interface.
2589
2804
  #
2590
2805
  # * `network-interface.private-dns-name` - The private DNS name of the
2591
2806
  # network interface.
2592
2807
  #
2808
+ # * `network-interface.private-ip-address` - The private IPv4 address.
2809
+ #
2810
+ # * `network-interface.public-dns-name` - The public DNS name.
2811
+ #
2593
2812
  # * `network-interface.requester-id` - The requester ID for the network
2594
2813
  # interface.
2595
2814
  #
@@ -2608,9 +2827,25 @@ module Aws::EC2
2608
2827
  # * `network-interface.subnet-id` - The ID of the subnet for the network
2609
2828
  # interface.
2610
2829
  #
2830
+ # * `network-interface.tag-key` - The key of a tag assigned to the
2831
+ # network interface.
2832
+ #
2833
+ # * `network-interface.tag-value` - The value of a tag assigned to the
2834
+ # network interface.
2835
+ #
2611
2836
  # * `network-interface.vpc-id` - The ID of the VPC for the network
2612
2837
  # interface.
2613
2838
  #
2839
+ # * `network-performance-options.bandwidth-weighting` - Where the
2840
+ # performance boost is applied, if applicable. Valid values:
2841
+ # `default`, `vpc-1`, `ebs-1`.
2842
+ #
2843
+ # * `operator.managed` - A Boolean that indicates whether this is a
2844
+ # managed instance.
2845
+ #
2846
+ # * `operator.principal` - The principal that manages the instance. Only
2847
+ # valid for managed instances, where `managed` is `true`.
2848
+ #
2614
2849
  # * `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost.
2615
2850
  #
2616
2851
  # * `owner-id` - The Amazon Web Services account ID of the instance
@@ -2651,6 +2886,10 @@ module Aws::EC2
2651
2886
  # (`ip-name` \| `resource-name`).
2652
2887
  #
2653
2888
  # * `private-ip-address` - The private IPv4 address of the instance.
2889
+ # This can only be used to filter by the primary IP address of the
2890
+ # network interface attached to the instance. To filter by additional
2891
+ # IP addresses assigned to the network interface, use the filter
2892
+ # `network-interface.addresses.private-ip-address`.
2654
2893
  #
2655
2894
  # * `product-code` - The product code associated with the AMI used to
2656
2895
  # launch the instance.
@@ -2729,19 +2968,10 @@ module Aws::EC2
2729
2968
  # (`paravirtual` \| `hvm`).
2730
2969
  #
2731
2970
  # * `vpc-id` - The ID of the VPC that the instance is running in.
2732
- # @option options [Array<String>] :instance_ids
2733
- # The instance IDs.
2734
- #
2735
- # Default: Describes all your instances.
2736
- # @option options [Boolean] :dry_run
2737
- # Checks whether you have the required permissions for the action,
2738
- # without actually making the request, and provides an error response.
2739
- # If you have the required permissions, the error response is
2740
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2741
2971
  # @return [Instance::Collection]
2742
2972
  def instances(options = {})
2743
2973
  batches = Enumerator.new do |y|
2744
- resp = Aws::Plugins::UserAgent.feature('resource') do
2974
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2745
2975
  @client.describe_instances(options)
2746
2976
  end
2747
2977
  resp.each_page do |page|
@@ -2773,16 +3003,25 @@ module Aws::EC2
2773
3003
  # @example Request syntax with placeholder values
2774
3004
  #
2775
3005
  # internet_gateways = ec2.internet_gateways({
3006
+ # dry_run: false,
3007
+ # internet_gateway_ids: ["InternetGatewayId"],
2776
3008
  # filters: [
2777
3009
  # {
2778
3010
  # name: "String",
2779
3011
  # values: ["String"],
2780
3012
  # },
2781
3013
  # ],
2782
- # dry_run: false,
2783
- # internet_gateway_ids: ["InternetGatewayId"],
2784
3014
  # })
2785
3015
  # @param [Hash] options ({})
3016
+ # @option options [Boolean] :dry_run
3017
+ # Checks whether you have the required permissions for the action,
3018
+ # without actually making the request, and provides an error response.
3019
+ # If you have the required permissions, the error response is
3020
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3021
+ # @option options [Array<String>] :internet_gateway_ids
3022
+ # The IDs of the internet gateways.
3023
+ #
3024
+ # Default: Describes all your internet gateways.
2786
3025
  # @option options [Array<Types::Filter>] :filters
2787
3026
  # The filters.
2788
3027
  #
@@ -2797,28 +3036,19 @@ module Aws::EC2
2797
3036
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
2798
3037
  # internet gateway.
2799
3038
  #
2800
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2801
- # the resource. Use the tag key in the filter name and the tag value
2802
- # as the filter value. For example, to find all resources that have a
2803
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
2804
- # for the filter name and `TeamA` for the filter value.
3039
+ # * `tag` - The key/value combination of a tag assigned to the resource.
3040
+ # Use the tag key in the filter name and the tag value as the filter
3041
+ # value. For example, to find all resources that have a tag with the
3042
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
3043
+ # filter name and `TeamA` for the filter value.
2805
3044
  #
2806
3045
  # * `tag-key` - The key of a tag assigned to the resource. Use this
2807
3046
  # filter to find all resources assigned a tag with a specific key,
2808
3047
  # regardless of the tag value.
2809
- # @option options [Boolean] :dry_run
2810
- # Checks whether you have the required permissions for the action,
2811
- # without actually making the request, and provides an error response.
2812
- # If you have the required permissions, the error response is
2813
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2814
- # @option options [Array<String>] :internet_gateway_ids
2815
- # The IDs of the internet gateways.
2816
- #
2817
- # Default: Describes all your internet gateways.
2818
3048
  # @return [InternetGateway::Collection]
2819
3049
  def internet_gateways(options = {})
2820
3050
  batches = Enumerator.new do |y|
2821
- resp = Aws::Plugins::UserAgent.feature('resource') do
3051
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2822
3052
  @client.describe_internet_gateways(options)
2823
3053
  end
2824
3054
  resp.each_page do |page|
@@ -2848,18 +3078,33 @@ module Aws::EC2
2848
3078
  # @example Request syntax with placeholder values
2849
3079
  #
2850
3080
  # key_pairs = ec2.key_pairs({
3081
+ # key_names: ["KeyPairName"],
3082
+ # key_pair_ids: ["KeyPairId"],
3083
+ # include_public_key: false,
3084
+ # dry_run: false,
2851
3085
  # filters: [
2852
3086
  # {
2853
3087
  # name: "String",
2854
3088
  # values: ["String"],
2855
3089
  # },
2856
3090
  # ],
2857
- # key_names: ["KeyPairName"],
2858
- # key_pair_ids: ["KeyPairId"],
2859
- # dry_run: false,
2860
- # include_public_key: false,
2861
3091
  # })
2862
3092
  # @param [Hash] options ({})
3093
+ # @option options [Array<String>] :key_names
3094
+ # The key pair names.
3095
+ #
3096
+ # Default: Describes all of your key pairs.
3097
+ # @option options [Array<String>] :key_pair_ids
3098
+ # The IDs of the key pairs.
3099
+ # @option options [Boolean] :include_public_key
3100
+ # If `true`, the public key material is included in the response.
3101
+ #
3102
+ # Default: `false`
3103
+ # @option options [Boolean] :dry_run
3104
+ # Checks whether you have the required permissions for the action,
3105
+ # without actually making the request, and provides an error response.
3106
+ # If you have the required permissions, the error response is
3107
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2863
3108
  # @option options [Array<Types::Filter>] :filters
2864
3109
  # The filters.
2865
3110
  #
@@ -2878,26 +3123,11 @@ module Aws::EC2
2878
3123
  # as the filter value. For example, to find all resources that have a
2879
3124
  # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
2880
3125
  # for the filter name and `TeamA` for the filter value.
2881
- # @option options [Array<String>] :key_names
2882
- # The key pair names.
2883
- #
2884
- # Default: Describes all of your key pairs.
2885
- # @option options [Array<String>] :key_pair_ids
2886
- # The IDs of the key pairs.
2887
- # @option options [Boolean] :dry_run
2888
- # Checks whether you have the required permissions for the action,
2889
- # without actually making the request, and provides an error response.
2890
- # If you have the required permissions, the error response is
2891
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
2892
- # @option options [Boolean] :include_public_key
2893
- # If `true`, the public key material is included in the response.
2894
- #
2895
- # Default: `false`
2896
3126
  # @return [KeyPairInfo::Collection]
2897
3127
  def key_pairs(options = {})
2898
3128
  batches = Enumerator.new do |y|
2899
3129
  batch = []
2900
- resp = Aws::Plugins::UserAgent.feature('resource') do
3130
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2901
3131
  @client.describe_key_pairs(options)
2902
3132
  end
2903
3133
  resp.data.key_pairs.each do |k|
@@ -2949,11 +3179,11 @@ module Aws::EC2
2949
3179
  #
2950
3180
  # * `subnet-id` - The ID of the subnet in which the NAT gateway resides.
2951
3181
  #
2952
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
2953
- # the resource. Use the tag key in the filter name and the tag value
2954
- # as the filter value. For example, to find all resources that have a
2955
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
2956
- # for the filter name and `TeamA` for the filter value.
3182
+ # * `tag` - The key/value combination of a tag assigned to the resource.
3183
+ # Use the tag key in the filter name and the tag value as the filter
3184
+ # value. For example, to find all resources that have a tag with the
3185
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
3186
+ # filter name and `TeamA` for the filter value.
2957
3187
  #
2958
3188
  # * `tag-key` - The key of a tag assigned to the resource. Use this
2959
3189
  # filter to find all resources assigned a tag with a specific key,
@@ -2965,7 +3195,7 @@ module Aws::EC2
2965
3195
  # @return [NatGateway::Collection]
2966
3196
  def nat_gateways(options = {})
2967
3197
  batches = Enumerator.new do |y|
2968
- resp = Aws::Plugins::UserAgent.feature('resource') do
3198
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2969
3199
  @client.describe_nat_gateways(options)
2970
3200
  end
2971
3201
  resp.each_page do |page|
@@ -2995,16 +3225,23 @@ module Aws::EC2
2995
3225
  # @example Request syntax with placeholder values
2996
3226
  #
2997
3227
  # network_acls = ec2.network_acls({
3228
+ # dry_run: false,
3229
+ # network_acl_ids: ["NetworkAclId"],
2998
3230
  # filters: [
2999
3231
  # {
3000
3232
  # name: "String",
3001
3233
  # values: ["String"],
3002
3234
  # },
3003
3235
  # ],
3004
- # dry_run: false,
3005
- # network_acl_ids: ["NetworkAclId"],
3006
3236
  # })
3007
3237
  # @param [Hash] options ({})
3238
+ # @option options [Boolean] :dry_run
3239
+ # Checks whether you have the required permissions for the action,
3240
+ # without actually making the request, and provides an error response.
3241
+ # If you have the required permissions, the error response is
3242
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3243
+ # @option options [Array<String>] :network_acl_ids
3244
+ # The IDs of the network ACLs.
3008
3245
  # @option options [Array<Types::Filter>] :filters
3009
3246
  # The filters.
3010
3247
  #
@@ -3051,30 +3288,21 @@ module Aws::EC2
3051
3288
  # * `owner-id` - The ID of the Amazon Web Services account that owns the
3052
3289
  # network ACL.
3053
3290
  #
3054
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3055
- # the resource. Use the tag key in the filter name and the tag value
3056
- # as the filter value. For example, to find all resources that have a
3057
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
3058
- # for the filter name and `TeamA` for the filter value.
3291
+ # * `tag` - The key/value combination of a tag assigned to the resource.
3292
+ # Use the tag key in the filter name and the tag value as the filter
3293
+ # value. For example, to find all resources that have a tag with the
3294
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
3295
+ # filter name and `TeamA` for the filter value.
3059
3296
  #
3060
3297
  # * `tag-key` - The key of a tag assigned to the resource. Use this
3061
3298
  # filter to find all resources assigned a tag with a specific key,
3062
3299
  # regardless of the tag value.
3063
3300
  #
3064
3301
  # * `vpc-id` - The ID of the VPC for the network ACL.
3065
- # @option options [Boolean] :dry_run
3066
- # Checks whether you have the required permissions for the action,
3067
- # without actually making the request, and provides an error response.
3068
- # If you have the required permissions, the error response is
3069
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3070
- # @option options [Array<String>] :network_acl_ids
3071
- # The IDs of the network ACLs.
3072
- #
3073
- # Default: Describes all your network ACLs.
3074
3302
  # @return [NetworkAcl::Collection]
3075
3303
  def network_acls(options = {})
3076
3304
  batches = Enumerator.new do |y|
3077
- resp = Aws::Plugins::UserAgent.feature('resource') do
3305
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3078
3306
  @client.describe_network_acls(options)
3079
3307
  end
3080
3308
  resp.each_page do |page|
@@ -3104,37 +3332,46 @@ module Aws::EC2
3104
3332
  # @example Request syntax with placeholder values
3105
3333
  #
3106
3334
  # network_interfaces = ec2.network_interfaces({
3335
+ # dry_run: false,
3336
+ # network_interface_ids: ["NetworkInterfaceId"],
3107
3337
  # filters: [
3108
3338
  # {
3109
3339
  # name: "String",
3110
3340
  # values: ["String"],
3111
3341
  # },
3112
3342
  # ],
3113
- # dry_run: false,
3114
- # network_interface_ids: ["NetworkInterfaceId"],
3115
3343
  # })
3116
3344
  # @param [Hash] options ({})
3345
+ # @option options [Boolean] :dry_run
3346
+ # Checks whether you have the required permissions for the action,
3347
+ # without actually making the request, and provides an error response.
3348
+ # If you have the required permissions, the error response is
3349
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3350
+ # @option options [Array<String>] :network_interface_ids
3351
+ # The network interface IDs.
3352
+ #
3353
+ # Default: Describes all your network interfaces.
3117
3354
  # @option options [Array<Types::Filter>] :filters
3118
3355
  # One or more filters.
3119
3356
  #
3120
- # * `addresses.private-ip-address` - The private IPv4 addresses
3121
- # associated with the network interface.
3357
+ # * `association.allocation-id` - The allocation ID returned when you
3358
+ # allocated the Elastic IP address (IPv4) for your network interface.
3359
+ #
3360
+ # * `association.association-id` - The association ID returned when the
3361
+ # network interface was associated with an IPv4 address.
3122
3362
  #
3123
- # * `addresses.primary` - Whether the private IPv4 address is the
3124
- # primary IP address associated with the network interface.
3363
+ # * `addresses.association.owner-id` - The owner ID of the addresses
3364
+ # associated with the network interface.
3125
3365
  #
3126
3366
  # * `addresses.association.public-ip` - The association ID returned when
3127
3367
  # the network interface was associated with the Elastic IP address
3128
3368
  # (IPv4).
3129
3369
  #
3130
- # * `addresses.association.owner-id` - The owner ID of the addresses
3131
- # associated with the network interface.
3132
- #
3133
- # * `association.association-id` - The association ID returned when the
3134
- # network interface was associated with an IPv4 address.
3370
+ # * `addresses.primary` - Whether the private IPv4 address is the
3371
+ # primary IP address associated with the network interface.
3135
3372
  #
3136
- # * `association.allocation-id` - The allocation ID returned when you
3137
- # allocated the Elastic IP address (IPv4) for your network interface.
3373
+ # * `addresses.private-ip-address` - The private IPv4 addresses
3374
+ # associated with the network interface.
3138
3375
  #
3139
3376
  # * `association.ip-owner-id` - The owner of the Elastic IP address
3140
3377
  # (IPv4) associated with the network interface.
@@ -3145,11 +3382,11 @@ module Aws::EC2
3145
3382
  # * `association.public-dns-name` - The public DNS name for the network
3146
3383
  # interface (IPv4).
3147
3384
  #
3148
- # * `attachment.attachment-id` - The ID of the interface attachment.
3149
- #
3150
3385
  # * `attachment.attach-time` - The time that the network interface was
3151
3386
  # attached to an instance.
3152
3387
  #
3388
+ # * `attachment.attachment-id` - The ID of the interface attachment.
3389
+ #
3153
3390
  # * `attachment.delete-on-termination` - Indicates whether the
3154
3391
  # attachment is deleted when an instance is terminated.
3155
3392
  #
@@ -3173,15 +3410,13 @@ module Aws::EC2
3173
3410
  # * `group-id` - The ID of a security group associated with the network
3174
3411
  # interface.
3175
3412
  #
3176
- # * `group-name` - The name of a security group associated with the
3177
- # network interface.
3178
- #
3179
3413
  # * `ipv6-addresses.ipv6-address` - An IPv6 address associated with the
3180
3414
  # network interface.
3181
3415
  #
3182
3416
  # * `interface-type` - The type of network interface
3183
3417
  # (`api_gateway_managed` \| `aws_codestar_connections_managed` \|
3184
- # `branch` \| `efa` \| `gateway_load_balancer` \|
3418
+ # `branch` \| `ec2_instance_connect_endpoint` \| `efa` \| `efa-only`
3419
+ # \| `efs` \| `evs` \| `gateway_load_balancer` \|
3185
3420
  # `gateway_load_balancer_endpoint` \| `global_accelerator_managed` \|
3186
3421
  # `interface` \| `iot_rules_managed` \| `lambda` \| `load_balancer` \|
3187
3422
  # `nat_gateway` \| `network_load_balancer` \| `quicksight` \|
@@ -3191,21 +3426,28 @@ module Aws::EC2
3191
3426
  #
3192
3427
  # * `network-interface-id` - The ID of the network interface.
3193
3428
  #
3429
+ # * `operator.managed` - A Boolean that indicates whether this is a
3430
+ # managed network interface.
3431
+ #
3432
+ # * `operator.principal` - The principal that manages the network
3433
+ # interface. Only valid for managed network interfaces, where
3434
+ # `managed` is `true`.
3435
+ #
3194
3436
  # * `owner-id` - The Amazon Web Services account ID of the network
3195
3437
  # interface owner.
3196
3438
  #
3197
- # * `private-ip-address` - The private IPv4 address or addresses of the
3198
- # network interface.
3199
- #
3200
3439
  # * `private-dns-name` - The private DNS name of the network interface
3201
3440
  # (IPv4).
3202
3441
  #
3442
+ # * `private-ip-address` - The private IPv4 address or addresses of the
3443
+ # network interface.
3444
+ #
3203
3445
  # * `requester-id` - The alias or Amazon Web Services account ID of the
3204
3446
  # principal or service that created the network interface.
3205
3447
  #
3206
3448
  # * `requester-managed` - Indicates whether the network interface is
3207
- # being managed by an Amazon Web Service (for example, Amazon Web
3208
- # Services Management Console, Auto Scaling, and so on).
3449
+ # being managed by an Amazon Web Services service (for example, Amazon
3450
+ # Web Services Management Console, Auto Scaling, and so on).
3209
3451
  #
3210
3452
  # * `source-dest-check` - Indicates whether the network interface
3211
3453
  # performs source/destination checking. A value of `true` means
@@ -3231,19 +3473,10 @@ module Aws::EC2
3231
3473
  # regardless of the tag value.
3232
3474
  #
3233
3475
  # * `vpc-id` - The ID of the VPC for the network interface.
3234
- # @option options [Boolean] :dry_run
3235
- # Checks whether you have the required permissions for the action,
3236
- # without actually making the request, and provides an error response.
3237
- # If you have the required permissions, the error response is
3238
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3239
- # @option options [Array<String>] :network_interface_ids
3240
- # The network interface IDs.
3241
- #
3242
- # Default: Describes all your network interfaces.
3243
3476
  # @return [NetworkInterface::Collection]
3244
3477
  def network_interfaces(options = {})
3245
3478
  batches = Enumerator.new do |y|
3246
- resp = Aws::Plugins::UserAgent.feature('resource') do
3479
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3247
3480
  @client.describe_network_interfaces(options)
3248
3481
  end
3249
3482
  resp.each_page do |page|
@@ -3273,17 +3506,35 @@ module Aws::EC2
3273
3506
  # @example Request syntax with placeholder values
3274
3507
  #
3275
3508
  # placement_groups = ec2.placement_groups({
3509
+ # group_ids: ["PlacementGroupId"],
3510
+ # dry_run: false,
3511
+ # group_names: ["PlacementGroupName"],
3276
3512
  # filters: [
3277
3513
  # {
3278
3514
  # name: "String",
3279
3515
  # values: ["String"],
3280
3516
  # },
3281
3517
  # ],
3282
- # dry_run: false,
3283
- # group_names: ["PlacementGroupName"],
3284
- # group_ids: ["PlacementGroupId"],
3285
3518
  # })
3286
3519
  # @param [Hash] options ({})
3520
+ # @option options [Array<String>] :group_ids
3521
+ # The IDs of the placement groups.
3522
+ # @option options [Boolean] :dry_run
3523
+ # Checks whether you have the required permissions for the operation,
3524
+ # without actually making the request, and provides an error response.
3525
+ # If you have the required permissions, the error response is
3526
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3527
+ # @option options [Array<String>] :group_names
3528
+ # The names of the placement groups.
3529
+ #
3530
+ # Constraints:
3531
+ #
3532
+ # * You can specify a name only if the placement group is owned by your
3533
+ # account.
3534
+ #
3535
+ # * If a placement group is *shared* with your account, specifying the
3536
+ # name results in an error. You must use the `GroupId` parameter
3537
+ # instead.
3287
3538
  # @option options [Array<Types::Filter>] :filters
3288
3539
  # The filters.
3289
3540
  #
@@ -3309,23 +3560,11 @@ module Aws::EC2
3309
3560
  # * `tag-key` - The key of a tag assigned to the resource. Use this
3310
3561
  # filter to find all resources that have a tag with a specific key,
3311
3562
  # regardless of the tag value.
3312
- # @option options [Boolean] :dry_run
3313
- # Checks whether you have the required permissions for the action,
3314
- # without actually making the request, and provides an error response.
3315
- # If you have the required permissions, the error response is
3316
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3317
- # @option options [Array<String>] :group_names
3318
- # The names of the placement groups.
3319
- #
3320
- # Default: Describes all your placement groups, or only those otherwise
3321
- # specified.
3322
- # @option options [Array<String>] :group_ids
3323
- # The IDs of the placement groups.
3324
3563
  # @return [PlacementGroup::Collection]
3325
3564
  def placement_groups(options = {})
3326
3565
  batches = Enumerator.new do |y|
3327
3566
  batch = []
3328
- resp = Aws::Plugins::UserAgent.feature('resource') do
3567
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3329
3568
  @client.describe_placement_groups(options)
3330
3569
  end
3331
3570
  resp.data.placement_groups.each do |p|
@@ -3361,19 +3600,29 @@ module Aws::EC2
3361
3600
  # @example Request syntax with placeholder values
3362
3601
  #
3363
3602
  # route_tables = ec2.route_tables({
3603
+ # dry_run: false,
3604
+ # route_table_ids: ["RouteTableId"],
3364
3605
  # filters: [
3365
3606
  # {
3366
3607
  # name: "String",
3367
3608
  # values: ["String"],
3368
3609
  # },
3369
3610
  # ],
3370
- # dry_run: false,
3371
- # route_table_ids: ["RouteTableId"],
3372
3611
  # })
3373
3612
  # @param [Hash] options ({})
3613
+ # @option options [Boolean] :dry_run
3614
+ # Checks whether you have the required permissions for the action,
3615
+ # without actually making the request, and provides an error response.
3616
+ # If you have the required permissions, the error response is
3617
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3618
+ # @option options [Array<String>] :route_table_ids
3619
+ # The IDs of the route tables.
3374
3620
  # @option options [Array<Types::Filter>] :filters
3375
3621
  # The filters.
3376
3622
  #
3623
+ # * `association.gateway-id` - The ID of the gateway involved in the
3624
+ # association.
3625
+ #
3377
3626
  # * `association.route-table-association-id` - The ID of an association
3378
3627
  # ID for the route table.
3379
3628
  #
@@ -3399,7 +3648,7 @@ module Aws::EC2
3399
3648
  # in a route in the route table.
3400
3649
  #
3401
3650
  # * `route.destination-prefix-list-id` - The ID (prefix) of the Amazon
3402
- # Web Service specified in a route in the table.
3651
+ # Web Services service specified in a route in the table.
3403
3652
  #
3404
3653
  # * `route.egress-only-internet-gateway-id` - The ID of an egress-only
3405
3654
  # Internet gateway specified in a route in the route table.
@@ -3430,30 +3679,21 @@ module Aws::EC2
3430
3679
  # * `route.vpc-peering-connection-id` - The ID of a VPC peering
3431
3680
  # connection specified in a route in the table.
3432
3681
  #
3433
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3434
- # the resource. Use the tag key in the filter name and the tag value
3435
- # as the filter value. For example, to find all resources that have a
3436
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
3437
- # for the filter name and `TeamA` for the filter value.
3682
+ # * `tag` - The key/value combination of a tag assigned to the resource.
3683
+ # Use the tag key in the filter name and the tag value as the filter
3684
+ # value. For example, to find all resources that have a tag with the
3685
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
3686
+ # filter name and `TeamA` for the filter value.
3438
3687
  #
3439
3688
  # * `tag-key` - The key of a tag assigned to the resource. Use this
3440
3689
  # filter to find all resources assigned a tag with a specific key,
3441
3690
  # regardless of the tag value.
3442
3691
  #
3443
3692
  # * `vpc-id` - The ID of the VPC for the route table.
3444
- # @option options [Boolean] :dry_run
3445
- # Checks whether you have the required permissions for the action,
3446
- # without actually making the request, and provides an error response.
3447
- # If you have the required permissions, the error response is
3448
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3449
- # @option options [Array<String>] :route_table_ids
3450
- # The IDs of the route tables.
3451
- #
3452
- # Default: Describes all your route tables.
3453
3693
  # @return [RouteTable::Collection]
3454
3694
  def route_tables(options = {})
3455
3695
  batches = Enumerator.new do |y|
3456
- resp = Aws::Plugins::UserAgent.feature('resource') do
3696
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3457
3697
  @client.describe_route_tables(options)
3458
3698
  end
3459
3699
  resp.each_page do |page|
@@ -3483,17 +3723,32 @@ module Aws::EC2
3483
3723
  # @example Request syntax with placeholder values
3484
3724
  #
3485
3725
  # security_groups = ec2.security_groups({
3726
+ # group_ids: ["SecurityGroupId"],
3727
+ # group_names: ["SecurityGroupName"],
3728
+ # dry_run: false,
3486
3729
  # filters: [
3487
3730
  # {
3488
3731
  # name: "String",
3489
3732
  # values: ["String"],
3490
3733
  # },
3491
3734
  # ],
3492
- # group_ids: ["SecurityGroupId"],
3493
- # group_names: ["SecurityGroupName"],
3494
- # dry_run: false,
3495
3735
  # })
3496
3736
  # @param [Hash] options ({})
3737
+ # @option options [Array<String>] :group_ids
3738
+ # The IDs of the security groups. Required for security groups in a
3739
+ # nondefault VPC.
3740
+ #
3741
+ # Default: Describes all of your security groups.
3742
+ # @option options [Array<String>] :group_names
3743
+ # \[Default VPC\] The names of the security groups. You can specify
3744
+ # either the security group name or the security group ID.
3745
+ #
3746
+ # Default: Describes all of your security groups.
3747
+ # @option options [Boolean] :dry_run
3748
+ # Checks whether you have the required permissions for the action,
3749
+ # without actually making the request, and provides an error response.
3750
+ # If you have the required permissions, the error response is
3751
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3497
3752
  # @option options [Array<Types::Filter>] :filters
3498
3753
  # The filters. If using multiple filters for rules, the results include
3499
3754
  # security groups for which any combination of rules - not necessarily a
@@ -3576,25 +3831,10 @@ module Aws::EC2
3576
3831
  #
3577
3832
  # * `vpc-id` - The ID of the VPC specified when the security group was
3578
3833
  # created.
3579
- # @option options [Array<String>] :group_ids
3580
- # The IDs of the security groups. Required for security groups in a
3581
- # nondefault VPC.
3582
- #
3583
- # Default: Describes all of your security groups.
3584
- # @option options [Array<String>] :group_names
3585
- # \[Default VPC\] The names of the security groups. You can specify
3586
- # either the security group name or the security group ID.
3587
- #
3588
- # Default: Describes all of your security groups.
3589
- # @option options [Boolean] :dry_run
3590
- # Checks whether you have the required permissions for the action,
3591
- # without actually making the request, and provides an error response.
3592
- # If you have the required permissions, the error response is
3593
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3594
3834
  # @return [SecurityGroup::Collection]
3595
3835
  def security_groups(options = {})
3596
3836
  batches = Enumerator.new do |y|
3597
- resp = Aws::Plugins::UserAgent.feature('resource') do
3837
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3598
3838
  @client.describe_security_groups(options)
3599
3839
  end
3600
3840
  resp.each_page do |page|
@@ -3624,18 +3864,35 @@ module Aws::EC2
3624
3864
  # @example Request syntax with placeholder values
3625
3865
  #
3626
3866
  # snapshots = ec2.snapshots({
3867
+ # owner_ids: ["String"],
3868
+ # restorable_by_user_ids: ["String"],
3869
+ # snapshot_ids: ["SnapshotId"],
3870
+ # dry_run: false,
3627
3871
  # filters: [
3628
3872
  # {
3629
3873
  # name: "String",
3630
3874
  # values: ["String"],
3631
3875
  # },
3632
3876
  # ],
3633
- # owner_ids: ["String"],
3634
- # restorable_by_user_ids: ["String"],
3635
- # snapshot_ids: ["SnapshotId"],
3636
- # dry_run: false,
3637
3877
  # })
3638
3878
  # @param [Hash] options ({})
3879
+ # @option options [Array<String>] :owner_ids
3880
+ # Scopes the results to snapshots with the specified owners. You can
3881
+ # specify a combination of Amazon Web Services account IDs, `self`, and
3882
+ # `amazon`.
3883
+ # @option options [Array<String>] :restorable_by_user_ids
3884
+ # The IDs of the Amazon Web Services accounts that can create volumes
3885
+ # from the snapshot.
3886
+ # @option options [Array<String>] :snapshot_ids
3887
+ # The snapshot IDs.
3888
+ #
3889
+ # Default: Describes the snapshots for which you have create volume
3890
+ # permissions.
3891
+ # @option options [Boolean] :dry_run
3892
+ # Checks whether you have the required permissions for the action,
3893
+ # without actually making the request, and provides an error response.
3894
+ # If you have the required permissions, the error response is
3895
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3639
3896
  # @option options [Array<Types::Filter>] :filters
3640
3897
  # The filters.
3641
3898
  #
@@ -3665,6 +3922,9 @@ module Aws::EC2
3665
3922
  # * `storage-tier` - The storage tier of the snapshot (`archive` \|
3666
3923
  # `standard`).
3667
3924
  #
3925
+ # * `transfer-type` - The type of operation used to create the snapshot
3926
+ # (`time-based` \| `standard`).
3927
+ #
3668
3928
  # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3669
3929
  # the resource. Use the tag key in the filter name and the tag value
3670
3930
  # as the filter value. For example, to find all resources that have a
@@ -3678,27 +3938,10 @@ module Aws::EC2
3678
3938
  # * `volume-id` - The ID of the volume the snapshot is for.
3679
3939
  #
3680
3940
  # * `volume-size` - The size of the volume, in GiB.
3681
- # @option options [Array<String>] :owner_ids
3682
- # Scopes the results to snapshots with the specified owners. You can
3683
- # specify a combination of Amazon Web Services account IDs, `self`, and
3684
- # `amazon`.
3685
- # @option options [Array<String>] :restorable_by_user_ids
3686
- # The IDs of the Amazon Web Services accounts that can create volumes
3687
- # from the snapshot.
3688
- # @option options [Array<String>] :snapshot_ids
3689
- # The snapshot IDs.
3690
- #
3691
- # Default: Describes the snapshots for which you have create volume
3692
- # permissions.
3693
- # @option options [Boolean] :dry_run
3694
- # Checks whether you have the required permissions for the action,
3695
- # without actually making the request, and provides an error response.
3696
- # If you have the required permissions, the error response is
3697
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3698
3941
  # @return [Snapshot::Collection]
3699
3942
  def snapshots(options = {})
3700
3943
  batches = Enumerator.new do |y|
3701
- resp = Aws::Plugins::UserAgent.feature('resource') do
3944
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3702
3945
  @client.describe_snapshots(options)
3703
3946
  end
3704
3947
  resp.each_page do |page|
@@ -3816,11 +4059,11 @@ module Aws::EC2
3816
4059
  #
3817
4060
  # * `subnet-id` - The ID of the subnet.
3818
4061
  #
3819
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
3820
- # the resource. Use the tag key in the filter name and the tag value
3821
- # as the filter value. For example, to find all resources that have a
3822
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
3823
- # for the filter name and `TeamA` for the filter value.
4062
+ # * `tag` - The key/value combination of a tag assigned to the resource.
4063
+ # Use the tag key in the filter name and the tag value as the filter
4064
+ # value. For example, to find all resources that have a tag with the
4065
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
4066
+ # filter name and `TeamA` for the filter value.
3824
4067
  #
3825
4068
  # * `tag-key` - The key of a tag assigned to the resource. Use this
3826
4069
  # filter to find all resources assigned a tag with a specific key,
@@ -3839,7 +4082,7 @@ module Aws::EC2
3839
4082
  # @return [Subnet::Collection]
3840
4083
  def subnets(options = {})
3841
4084
  batches = Enumerator.new do |y|
3842
- resp = Aws::Plugins::UserAgent.feature('resource') do
4085
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3843
4086
  @client.describe_subnets(options)
3844
4087
  end
3845
4088
  resp.each_page do |page|
@@ -3869,16 +4112,24 @@ module Aws::EC2
3869
4112
  # @example Request syntax with placeholder values
3870
4113
  #
3871
4114
  # volumes = ec2.volumes({
4115
+ # volume_ids: ["VolumeId"],
4116
+ # dry_run: false,
3872
4117
  # filters: [
3873
4118
  # {
3874
4119
  # name: "String",
3875
4120
  # values: ["String"],
3876
4121
  # },
3877
4122
  # ],
3878
- # volume_ids: ["VolumeId"],
3879
- # dry_run: false,
3880
4123
  # })
3881
4124
  # @param [Hash] options ({})
4125
+ # @option options [Array<String>] :volume_ids
4126
+ # The volume IDs. If not specified, then all volumes are included in the
4127
+ # response.
4128
+ # @option options [Boolean] :dry_run
4129
+ # Checks whether you have the required permissions for the action,
4130
+ # without actually making the request, and provides an error response.
4131
+ # If you have the required permissions, the error response is
4132
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3882
4133
  # @option options [Array<Types::Filter>] :filters
3883
4134
  # The filters.
3884
4135
  #
@@ -3900,18 +4151,27 @@ module Aws::EC2
3900
4151
  # * `availability-zone` - The Availability Zone in which the volume was
3901
4152
  # created.
3902
4153
  #
4154
+ # * `availability-zone-id` - The ID of the Availability Zone in which
4155
+ # the volume was created.
4156
+ #
3903
4157
  # * `create-time` - The time stamp when the volume was created.
3904
4158
  #
3905
4159
  # * `encrypted` - Indicates whether the volume is encrypted (`true` \|
3906
4160
  # `false`)
3907
4161
  #
3908
- # * `multi-attach-enabled` - Indicates whether the volume is enabled for
3909
- # Multi-Attach (`true` \| `false`)
3910
- #
3911
4162
  # * `fast-restored` - Indicates whether the volume was created from a
3912
4163
  # snapshot that is enabled for fast snapshot restore (`true` \|
3913
4164
  # `false`).
3914
4165
  #
4166
+ # * `multi-attach-enabled` - Indicates whether the volume is enabled for
4167
+ # Multi-Attach (`true` \| `false`)
4168
+ #
4169
+ # * `operator.managed` - A Boolean that indicates whether this is a
4170
+ # managed volume.
4171
+ #
4172
+ # * `operator.principal` - The principal that manages the volume. Only
4173
+ # valid for managed volumes, where `managed` is `true`.
4174
+ #
3915
4175
  # * `size` - The size of the volume, in GiB.
3916
4176
  #
3917
4177
  # * `snapshot-id` - The snapshot from which the volume was created.
@@ -3933,17 +4193,10 @@ module Aws::EC2
3933
4193
  #
3934
4194
  # * `volume-type` - The Amazon EBS volume type (`gp2` \| `gp3` \| `io1`
3935
4195
  # \| `io2` \| `st1` \| `sc1`\| `standard`)
3936
- # @option options [Array<String>] :volume_ids
3937
- # The volume IDs.
3938
- # @option options [Boolean] :dry_run
3939
- # Checks whether you have the required permissions for the action,
3940
- # without actually making the request, and provides an error response.
3941
- # If you have the required permissions, the error response is
3942
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3943
4196
  # @return [Volume::Collection]
3944
4197
  def volumes(options = {})
3945
4198
  batches = Enumerator.new do |y|
3946
- resp = Aws::Plugins::UserAgent.feature('resource') do
4199
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3947
4200
  @client.describe_volumes(options)
3948
4201
  end
3949
4202
  resp.each_page do |page|
@@ -3973,17 +4226,26 @@ module Aws::EC2
3973
4226
  # @example Request syntax with placeholder values
3974
4227
  #
3975
4228
  # vpc_addresses = ec2.vpc_addresses({
4229
+ # public_ips: ["String"],
4230
+ # dry_run: false,
3976
4231
  # filters: [
3977
4232
  # {
3978
4233
  # name: "String",
3979
4234
  # values: ["String"],
3980
4235
  # },
3981
4236
  # ],
3982
- # public_ips: ["String"],
3983
4237
  # allocation_ids: ["AllocationId"],
3984
- # dry_run: false,
3985
4238
  # })
3986
4239
  # @param [Hash] options ({})
4240
+ # @option options [Array<String>] :public_ips
4241
+ # One or more Elastic IP addresses.
4242
+ #
4243
+ # Default: Describes all your Elastic IP addresses.
4244
+ # @option options [Boolean] :dry_run
4245
+ # Checks whether you have the required permissions for the action,
4246
+ # without actually making the request, and provides an error response.
4247
+ # If you have the required permissions, the error response is
4248
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
3987
4249
  # @option options [Array<Types::Filter>] :filters
3988
4250
  # One or more filters. Filter names and values are case-sensitive.
3989
4251
  #
@@ -4018,17 +4280,8 @@ module Aws::EC2
4018
4280
  # * `tag-key` - The key of a tag assigned to the resource. Use this
4019
4281
  # filter to find all resources assigned a tag with a specific key,
4020
4282
  # regardless of the tag value.
4021
- # @option options [Array<String>] :public_ips
4022
- # One or more Elastic IP addresses.
4023
- #
4024
- # Default: Describes all your Elastic IP addresses.
4025
4283
  # @option options [Array<String>] :allocation_ids
4026
4284
  # Information about the allocation IDs.
4027
- # @option options [Boolean] :dry_run
4028
- # Checks whether you have the required permissions for the action,
4029
- # without actually making the request, and provides an error response.
4030
- # If you have the required permissions, the error response is
4031
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
4032
4285
  # @return [VpcAddress::Collection]
4033
4286
  def vpc_addresses(options = {})
4034
4287
  batches = Enumerator.new do |y|
@@ -4037,7 +4290,7 @@ module Aws::EC2
4037
4290
  name: "domain",
4038
4291
  values: ["vpc"]
4039
4292
  }])
4040
- resp = Aws::Plugins::UserAgent.feature('resource') do
4293
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
4041
4294
  @client.describe_addresses(options)
4042
4295
  end
4043
4296
  resp.data.addresses.each do |a|
@@ -4064,16 +4317,25 @@ module Aws::EC2
4064
4317
  # @example Request syntax with placeholder values
4065
4318
  #
4066
4319
  # vpc_peering_connections = ec2.vpc_peering_connections({
4320
+ # dry_run: false,
4321
+ # vpc_peering_connection_ids: ["VpcPeeringConnectionId"],
4067
4322
  # filters: [
4068
4323
  # {
4069
4324
  # name: "String",
4070
4325
  # values: ["String"],
4071
4326
  # },
4072
4327
  # ],
4073
- # dry_run: false,
4074
- # vpc_peering_connection_ids: ["VpcPeeringConnectionId"],
4075
4328
  # })
4076
4329
  # @param [Hash] options ({})
4330
+ # @option options [Boolean] :dry_run
4331
+ # Checks whether you have the required permissions for the action,
4332
+ # without actually making the request, and provides an error response.
4333
+ # If you have the required permissions, the error response is
4334
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
4335
+ # @option options [Array<String>] :vpc_peering_connection_ids
4336
+ # The IDs of the VPC peering connections.
4337
+ #
4338
+ # Default: Describes all your VPC peering connections.
4077
4339
  # @option options [Array<Types::Filter>] :filters
4078
4340
  # The filters.
4079
4341
  #
@@ -4103,30 +4365,21 @@ module Aws::EC2
4103
4365
  # * `status-message` - A message that provides more information about
4104
4366
  # the status of the VPC peering connection, if applicable.
4105
4367
  #
4106
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
4107
- # the resource. Use the tag key in the filter name and the tag value
4108
- # as the filter value. For example, to find all resources that have a
4109
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
4110
- # for the filter name and `TeamA` for the filter value.
4368
+ # * `tag` - The key/value combination of a tag assigned to the resource.
4369
+ # Use the tag key in the filter name and the tag value as the filter
4370
+ # value. For example, to find all resources that have a tag with the
4371
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
4372
+ # filter name and `TeamA` for the filter value.
4111
4373
  #
4112
4374
  # * `tag-key` - The key of a tag assigned to the resource. Use this
4113
4375
  # filter to find all resources assigned a tag with a specific key,
4114
4376
  # regardless of the tag value.
4115
4377
  #
4116
4378
  # * `vpc-peering-connection-id` - The ID of the VPC peering connection.
4117
- # @option options [Boolean] :dry_run
4118
- # Checks whether you have the required permissions for the action,
4119
- # without actually making the request, and provides an error response.
4120
- # If you have the required permissions, the error response is
4121
- # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
4122
- # @option options [Array<String>] :vpc_peering_connection_ids
4123
- # The IDs of the VPC peering connections.
4124
- #
4125
- # Default: Describes all your VPC peering connections.
4126
4379
  # @return [VpcPeeringConnection::Collection]
4127
4380
  def vpc_peering_connections(options = {})
4128
4381
  batches = Enumerator.new do |y|
4129
- resp = Aws::Plugins::UserAgent.feature('resource') do
4382
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
4130
4383
  @client.describe_vpc_peering_connections(options)
4131
4384
  end
4132
4385
  resp.each_page do |page|
@@ -4195,11 +4448,11 @@ module Aws::EC2
4195
4448
  #
4196
4449
  # * `state` - The state of the VPC (`pending` \| `available`).
4197
4450
  #
4198
- # * `tag`:&lt;key&gt; - The key/value combination of a tag assigned to
4199
- # the resource. Use the tag key in the filter name and the tag value
4200
- # as the filter value. For example, to find all resources that have a
4201
- # tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
4202
- # for the filter name and `TeamA` for the filter value.
4451
+ # * `tag` - The key/value combination of a tag assigned to the resource.
4452
+ # Use the tag key in the filter name and the tag value as the filter
4453
+ # value. For example, to find all resources that have a tag with the
4454
+ # key `Owner` and the value `TeamA`, specify `tag:Owner` for the
4455
+ # filter name and `TeamA` for the filter value.
4203
4456
  #
4204
4457
  # * `tag-key` - The key of a tag assigned to the resource. Use this
4205
4458
  # filter to find all resources assigned a tag with a specific key,
@@ -4208,8 +4461,6 @@ module Aws::EC2
4208
4461
  # * `vpc-id` - The ID of the VPC.
4209
4462
  # @option options [Array<String>] :vpc_ids
4210
4463
  # The IDs of the VPCs.
4211
- #
4212
- # Default: Describes all your VPCs.
4213
4464
  # @option options [Boolean] :dry_run
4214
4465
  # Checks whether you have the required permissions for the action,
4215
4466
  # without actually making the request, and provides an error response.
@@ -4218,7 +4469,7 @@ module Aws::EC2
4218
4469
  # @return [Vpc::Collection]
4219
4470
  def vpcs(options = {})
4220
4471
  batches = Enumerator.new do |y|
4221
- resp = Aws::Plugins::UserAgent.feature('resource') do
4472
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
4222
4473
  @client.describe_vpcs(options)
4223
4474
  end
4224
4475
  resp.each_page do |page|
@@ -4238,3 +4489,6 @@ module Aws::EC2
4238
4489
 
4239
4490
  end
4240
4491
  end
4492
+
4493
+ # Load customizations if they exist
4494
+ require 'aws-sdk-ec2/customizations/resource'