aws-sdk-ec2 1.140.0 → 1.145.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.
@@ -224,7 +224,7 @@ module Aws::EC2
224
224
  # values: ["String"],
225
225
  # },
226
226
  # ],
227
- # instance_ids: ["String"],
227
+ # instance_ids: ["InstanceId"],
228
228
  # dry_run: false,
229
229
  # })
230
230
  # @param [Hash] options ({})
@@ -273,6 +273,7 @@ module Aws::EC2
273
273
  # running, if applicable.
274
274
  #
275
275
  # * `hypervisor` - The hypervisor type of the instance (`ovm` \| `xen`).
276
+ # The value `xen` is used for both Xen and Nitro hypervisors.
276
277
  #
277
278
  # * `iam-instance-profile.arn` - The instance profile associated with
278
279
  # the instance. Specified as an ARN.
@@ -78,7 +78,7 @@ module Aws::EC2
78
78
  # },
79
79
  # ],
80
80
  # kernel_id: "String",
81
- # key_name: "String",
81
+ # key_name: "KeyPairName",
82
82
  # max_count: 1, # required
83
83
  # min_count: 1, # required
84
84
  # monitoring: {
@@ -95,8 +95,8 @@ module Aws::EC2
95
95
  # host_resource_group_arn: "String",
96
96
  # },
97
97
  # ramdisk_id: "String",
98
- # security_group_ids: ["String"],
99
- # security_groups: ["String"],
98
+ # security_group_ids: ["SecurityGroupId"],
99
+ # security_groups: ["SecurityGroupName"],
100
100
  # subnet_id: "String",
101
101
  # user_data: "String",
102
102
  # additional_info: "String",
@@ -115,7 +115,7 @@ module Aws::EC2
115
115
  # delete_on_termination: false,
116
116
  # description: "String",
117
117
  # device_index: 1,
118
- # groups: ["String"],
118
+ # groups: ["SecurityGroupId"],
119
119
  # ipv_6_address_count: 1,
120
120
  # ipv_6_addresses: [
121
121
  # {
@@ -159,7 +159,7 @@ module Aws::EC2
159
159
  # },
160
160
  # ],
161
161
  # launch_template: {
162
- # launch_template_id: "String",
162
+ # launch_template_id: "LaunchTemplateId",
163
163
  # launch_template_name: "String",
164
164
  # version: "String",
165
165
  # },
@@ -183,7 +183,7 @@ module Aws::EC2
183
183
  # capacity_reservation_specification: {
184
184
  # capacity_reservation_preference: "open", # accepts open, none
185
185
  # capacity_reservation_target: {
186
- # capacity_reservation_id: "String",
186
+ # capacity_reservation_id: "CapacityReservationId",
187
187
  # },
188
188
  # },
189
189
  # hibernation_options: {
@@ -339,8 +339,11 @@ module Aws::EC2
339
339
  # Reserved.
340
340
  # @option options [String] :client_token
341
341
  # Unique, case-sensitive identifier you provide to ensure the
342
- # idempotency of the request. For more information, see [Ensuring
343
- # Idempotency][1].
342
+ # idempotency of the request. If you do not specify a client token, a
343
+ # randomly generated token is used for the request to ensure
344
+ # idempotency.
345
+ #
346
+ # For more information, see [Ensuring Idempotency][1].
344
347
  #
345
348
  # Constraints: Maximum 64 ASCII characters
346
349
  #
@@ -515,7 +518,7 @@ module Aws::EC2
515
518
  # @example Request syntax with placeholder values
516
519
  #
517
520
  # keypair = ec2.create_key_pair({
518
- # key_name: "KeyPairName", # required
521
+ # key_name: "String", # required
519
522
  # dry_run: false,
520
523
  # })
521
524
  # @param [Hash] options ({})
@@ -601,7 +604,7 @@ module Aws::EC2
601
604
  # networkinterface = ec2.create_network_interface({
602
605
  # description: "String",
603
606
  # dry_run: false,
604
- # groups: ["String"],
607
+ # groups: ["SecurityGroupId"],
605
608
  # ipv_6_address_count: 1,
606
609
  # ipv_6_addresses: [
607
610
  # {
@@ -880,7 +883,7 @@ module Aws::EC2
880
883
  #
881
884
  # ec2.create_tags({
882
885
  # dry_run: false,
883
- # resources: ["String"], # required
886
+ # resources: ["TaggableResourceId"], # required
884
887
  # tags: [ # required
885
888
  # {
886
889
  # key: "String",
@@ -909,6 +912,45 @@ module Aws::EC2
909
912
  resp.data
910
913
  end
911
914
 
915
+ # @example Request syntax with placeholder values
916
+ #
917
+ # ec2.delete_tags({
918
+ # dry_run: false,
919
+ # resources: ["TaggableResourceId"], # required
920
+ # tags: [
921
+ # {
922
+ # key: "String",
923
+ # value: "String",
924
+ # },
925
+ # ],
926
+ # })
927
+ # @param [Hash] options ({})
928
+ # @option options [Boolean] :dry_run
929
+ # Checks whether you have the required permissions for the action,
930
+ # without actually making the request, and provides an error response.
931
+ # If you have the required permissions, the error response is
932
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
933
+ # @option options [required, Array<String>] :resources
934
+ # The IDs of the resources, separated by spaces.
935
+ #
936
+ # Constraints: Up to 1000 resource IDs. We recommend breaking up this
937
+ # request into smaller batches.
938
+ # @option options [Array<Types::Tag>] :tags
939
+ # The tags to delete. Specify a tag key and an optional tag value to
940
+ # delete specific tags. If you specify a tag key without a tag value, we
941
+ # delete any tag with this key regardless of its value. If you specify a
942
+ # tag key with an empty string as the tag value, we delete the tag only
943
+ # if its value is an empty string.
944
+ #
945
+ # If you omit this parameter, we delete all user-defined tags for the
946
+ # specified resources. We do not delete AWS-generated tags (tags that
947
+ # have the `aws:` prefix).
948
+ # @return [EmptyStructure]
949
+ def delete_tags(options = {})
950
+ resp = @client.delete_tags(options)
951
+ resp.data
952
+ end
953
+
912
954
  # @example Request syntax with placeholder values
913
955
  #
914
956
  # volume = ec2.create_volume({
@@ -932,6 +974,7 @@ module Aws::EC2
932
974
  # ],
933
975
  # },
934
976
  # ],
977
+ # multi_attach_enabled: false,
935
978
  # })
936
979
  # @param [Hash] options ({})
937
980
  # @option options [required, String] :availability_zone
@@ -990,7 +1033,8 @@ module Aws::EC2
990
1033
  # @option options [String] :outpost_arn
991
1034
  # The Amazon Resource Name (ARN) of the Outpost.
992
1035
  # @option options [Integer] :size
993
- # The size of the volume, in GiBs.
1036
+ # The size of the volume, in GiBs. You must specify either a snapshot ID
1037
+ # or a volume size.
994
1038
  #
995
1039
  # Constraints: 1-16,384 for `gp2`, 4-16,384 for `io1`, 500-16,384 for
996
1040
  # `st1`, 500-16,384 for `sc1`, and 1-1,024 for `standard`. If you
@@ -999,16 +1043,9 @@ module Aws::EC2
999
1043
  #
1000
1044
  # Default: If you're creating the volume from a snapshot and don't
1001
1045
  # specify a volume size, the default is the snapshot size.
1002
- #
1003
- # <note markdown="1"> At least one of Size or SnapshotId is required.
1004
- #
1005
- # </note>
1006
1046
  # @option options [String] :snapshot_id
1007
- # The snapshot from which to create the volume.
1008
- #
1009
- # <note markdown="1"> At least one of Size or SnapshotId are required.
1010
- #
1011
- # </note>
1047
+ # The snapshot from which to create the volume. You must specify either
1048
+ # a snapshot ID or a volume size.
1012
1049
  # @option options [String] :volume_type
1013
1050
  # The volume type. This can be `gp2` for General Purpose SSD, `io1` for
1014
1051
  # Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for
@@ -1022,6 +1059,17 @@ module Aws::EC2
1022
1059
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1023
1060
  # @option options [Array<Types::TagSpecification>] :tag_specifications
1024
1061
  # The tags to apply to the volume during creation.
1062
+ # @option options [Boolean] :multi_attach_enabled
1063
+ # Specifies whether to enable Amazon EBS Multi-Attach. If you enable
1064
+ # Multi-Attach, you can attach the volume to up to 16 [Nitro-based
1065
+ # instances][1] in the same Availability Zone. For more information, see
1066
+ # [ Amazon EBS Multi-Attach][2] in the *Amazon Elastic Compute Cloud
1067
+ # User Guide*.
1068
+ #
1069
+ #
1070
+ #
1071
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
1072
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
1025
1073
  # @return [Volume]
1026
1074
  def create_volume(options = {})
1027
1075
  resp = @client.create_volume(options)
@@ -1037,7 +1085,7 @@ module Aws::EC2
1037
1085
  # vpc = ec2.create_vpc({
1038
1086
  # cidr_block: "String", # required
1039
1087
  # amazon_provided_ipv_6_cidr_block: false,
1040
- # ipv_6_pool: "String",
1088
+ # ipv_6_pool: "Ipv6PoolEc2Id",
1041
1089
  # ipv_6_cidr_block: "String",
1042
1090
  # dry_run: false,
1043
1091
  # instance_tenancy: "default", # accepts default, dedicated, host
@@ -1157,7 +1205,7 @@ module Aws::EC2
1157
1205
  #
1158
1206
  # keypairinfo = ec2.import_key_pair({
1159
1207
  # dry_run: false,
1160
- # key_name: "KeyPairName", # required
1208
+ # key_name: "String", # required
1161
1209
  # public_key_material: "data", # required
1162
1210
  # })
1163
1211
  # @param [Hash] options ({})
@@ -1375,7 +1423,7 @@ module Aws::EC2
1375
1423
  # @example Request syntax with placeholder values
1376
1424
  #
1377
1425
  # dhcp_options_sets = ec2.dhcp_options_sets({
1378
- # dhcp_options_ids: ["String"],
1426
+ # dhcp_options_ids: ["DhcpOptionsId"],
1379
1427
  # filters: [
1380
1428
  # {
1381
1429
  # name: "String",
@@ -1453,7 +1501,7 @@ module Aws::EC2
1453
1501
  # values: ["String"],
1454
1502
  # },
1455
1503
  # ],
1456
- # image_ids: ["String"],
1504
+ # image_ids: ["ImageId"],
1457
1505
  # owners: ["String"],
1458
1506
  # dry_run: false,
1459
1507
  # })
@@ -1602,7 +1650,7 @@ module Aws::EC2
1602
1650
  # values: ["String"],
1603
1651
  # },
1604
1652
  # ],
1605
- # instance_ids: ["String"],
1653
+ # instance_ids: ["InstanceId"],
1606
1654
  # dry_run: false,
1607
1655
  # })
1608
1656
  # @param [Hash] options ({})
@@ -1651,6 +1699,7 @@ module Aws::EC2
1651
1699
  # running, if applicable.
1652
1700
  #
1653
1701
  # * `hypervisor` - The hypervisor type of the instance (`ovm` \| `xen`).
1702
+ # The value `xen` is used for both Xen and Nitro hypervisors.
1654
1703
  #
1655
1704
  # * `iam-instance-profile.arn` - The instance profile associated with
1656
1705
  # the instance. Specified as an ARN.
@@ -1928,7 +1977,7 @@ module Aws::EC2
1928
1977
  # },
1929
1978
  # ],
1930
1979
  # dry_run: false,
1931
- # internet_gateway_ids: ["String"],
1980
+ # internet_gateway_ids: ["InternetGatewayId"],
1932
1981
  # })
1933
1982
  # @param [Hash] options ({})
1934
1983
  # @option options [Array<Types::Filter>] :filters
@@ -2000,8 +2049,8 @@ module Aws::EC2
2000
2049
  # values: ["String"],
2001
2050
  # },
2002
2051
  # ],
2003
- # key_names: ["String"],
2004
- # key_pair_ids: ["String"],
2052
+ # key_names: ["KeyPairName"],
2053
+ # key_pair_ids: ["KeyPairId"],
2005
2054
  # dry_run: false,
2006
2055
  # })
2007
2056
  # @param [Hash] options ({})
@@ -2057,7 +2106,7 @@ module Aws::EC2
2057
2106
  # values: ["String"],
2058
2107
  # },
2059
2108
  # ],
2060
- # nat_gateway_ids: ["String"],
2109
+ # nat_gateway_ids: ["NatGatewayId"],
2061
2110
  # })
2062
2111
  # @param [Hash] options ({})
2063
2112
  # @option options [Array<Types::Filter>] :filter
@@ -2121,7 +2170,7 @@ module Aws::EC2
2121
2170
  # },
2122
2171
  # ],
2123
2172
  # dry_run: false,
2124
- # network_acl_ids: ["String"],
2173
+ # network_acl_ids: ["NetworkAclId"],
2125
2174
  # })
2126
2175
  # @param [Hash] options ({})
2127
2176
  # @option options [Array<Types::Filter>] :filters
@@ -2224,7 +2273,7 @@ module Aws::EC2
2224
2273
  # },
2225
2274
  # ],
2226
2275
  # dry_run: false,
2227
- # network_interface_ids: ["String"],
2276
+ # network_interface_ids: ["NetworkInterfaceId"],
2228
2277
  # })
2229
2278
  # @param [Hash] options ({})
2230
2279
  # @option options [Array<Types::Filter>] :filters
@@ -2386,8 +2435,8 @@ module Aws::EC2
2386
2435
  # },
2387
2436
  # ],
2388
2437
  # dry_run: false,
2389
- # group_names: ["String"],
2390
- # group_ids: ["String"],
2438
+ # group_names: ["PlacementGroupName"],
2439
+ # group_ids: ["PlacementGroupId"],
2391
2440
  # })
2392
2441
  # @param [Hash] options ({})
2393
2442
  # @option options [Array<Types::Filter>] :filters
@@ -2457,7 +2506,7 @@ module Aws::EC2
2457
2506
  # },
2458
2507
  # ],
2459
2508
  # dry_run: false,
2460
- # route_table_ids: ["String"],
2509
+ # route_table_ids: ["RouteTableId"],
2461
2510
  # })
2462
2511
  # @param [Hash] options ({})
2463
2512
  # @option options [Array<Types::Filter>] :filters
@@ -2578,7 +2627,7 @@ module Aws::EC2
2578
2627
  # },
2579
2628
  # ],
2580
2629
  # group_ids: ["String"],
2581
- # group_names: ["String"],
2630
+ # group_names: ["SecurityGroupName"],
2582
2631
  # dry_run: false,
2583
2632
  # })
2584
2633
  # @param [Hash] options ({})
@@ -2717,7 +2766,7 @@ module Aws::EC2
2717
2766
  # ],
2718
2767
  # owner_ids: ["String"],
2719
2768
  # restorable_by_user_ids: ["String"],
2720
- # snapshot_ids: ["String"],
2769
+ # snapshot_ids: ["SnapshotId"],
2721
2770
  # dry_run: false,
2722
2771
  # })
2723
2772
  # @param [Hash] options ({})
@@ -2810,7 +2859,7 @@ module Aws::EC2
2810
2859
  # values: ["String"],
2811
2860
  # },
2812
2861
  # ],
2813
- # subnet_ids: ["String"],
2862
+ # subnet_ids: ["SubnetId"],
2814
2863
  # dry_run: false,
2815
2864
  # })
2816
2865
  # @param [Hash] options ({})
@@ -2909,7 +2958,7 @@ module Aws::EC2
2909
2958
  # values: ["String"],
2910
2959
  # },
2911
2960
  # ],
2912
- # volume_ids: ["String"],
2961
+ # volume_ids: ["VolumeId"],
2913
2962
  # dry_run: false,
2914
2963
  # })
2915
2964
  # @param [Hash] options ({})
@@ -2939,6 +2988,13 @@ module Aws::EC2
2939
2988
  # * `encrypted` - Indicates whether the volume is encrypted (`true` \|
2940
2989
  # `false`)
2941
2990
  #
2991
+ # * `multi-attach-enabled` - Indicates whether the volume is enabled for
2992
+ # Multi-Attach (`true` \| `false`)
2993
+ #
2994
+ # * `fast-restored` - Indicates whether the volume was created from a
2995
+ # snapshot that is enabled for fast snapshot restore (`true` \|
2996
+ # `false`).
2997
+ #
2942
2998
  # * `size` - The size of the volume, in GiB.
2943
2999
  #
2944
3000
  # * `snapshot-id` - The snapshot from which the volume was created.
@@ -3097,7 +3153,7 @@ module Aws::EC2
3097
3153
  # },
3098
3154
  # ],
3099
3155
  # dry_run: false,
3100
- # vpc_peering_connection_ids: ["String"],
3156
+ # vpc_peering_connection_ids: ["VpcPeeringConnectionId"],
3101
3157
  # })
3102
3158
  # @param [Hash] options ({})
3103
3159
  # @option options [Array<Types::Filter>] :filters
@@ -3177,7 +3233,7 @@ module Aws::EC2
3177
3233
  # values: ["String"],
3178
3234
  # },
3179
3235
  # ],
3180
- # vpc_ids: ["String"],
3236
+ # vpc_ids: ["VpcId"],
3181
3237
  # dry_run: false,
3182
3238
  # })
3183
3239
  # @param [Hash] options ({})
@@ -286,12 +286,12 @@ module Aws::EC2
286
286
  # destination_ipv_6_cidr_block: "String",
287
287
  # dry_run: false,
288
288
  # egress_only_internet_gateway_id: "EgressOnlyInternetGatewayId",
289
- # gateway_id: "RouteTableGatewayId",
289
+ # gateway_id: "RouteGatewayId",
290
290
  # instance_id: "InstanceId",
291
291
  # local_target: false,
292
292
  # nat_gateway_id: "NatGatewayId",
293
293
  # transit_gateway_id: "TransitGatewayId",
294
- # local_gateway_id: "String",
294
+ # local_gateway_id: "LocalGatewayId",
295
295
  # network_interface_id: "NetworkInterfaceId",
296
296
  # vpc_peering_connection_id: "VpcPeeringConnectionId",
297
297
  # })
@@ -192,8 +192,8 @@ module Aws::EC2
192
192
  #
193
193
  # routetableassociation = route_table.associate_with_subnet({
194
194
  # dry_run: false,
195
- # subnet_id: "String",
196
- # gateway_id: "String",
195
+ # subnet_id: "SubnetId",
196
+ # gateway_id: "RouteGatewayId",
197
197
  # })
198
198
  # @param [Hash] options ({})
199
199
  # @option options [Boolean] :dry_run
@@ -222,11 +222,11 @@ module Aws::EC2
222
222
  # destination_ipv_6_cidr_block: "String",
223
223
  # dry_run: false,
224
224
  # egress_only_internet_gateway_id: "EgressOnlyInternetGatewayId",
225
- # gateway_id: "RouteTableGatewayId",
225
+ # gateway_id: "RouteGatewayId",
226
226
  # instance_id: "InstanceId",
227
227
  # nat_gateway_id: "NatGatewayId",
228
228
  # transit_gateway_id: "TransitGatewayId",
229
- # local_gateway_id: "String",
229
+ # local_gateway_id: "LocalGatewayId",
230
230
  # network_interface_id: "NetworkInterfaceId",
231
231
  # vpc_peering_connection_id: "VpcPeeringConnectionId",
232
232
  # })
@@ -309,6 +309,49 @@ module Aws::EC2
309
309
  Tag::Collection.new([batch], size: batch.size)
310
310
  end
311
311
 
312
+ # @example Request syntax with placeholder values
313
+ #
314
+ # tag = route_table.delete_tags({
315
+ # dry_run: false,
316
+ # tags: [
317
+ # {
318
+ # key: "String",
319
+ # value: "String",
320
+ # },
321
+ # ],
322
+ # })
323
+ # @param [Hash] options ({})
324
+ # @option options [Boolean] :dry_run
325
+ # Checks whether you have the required permissions for the action,
326
+ # without actually making the request, and provides an error response.
327
+ # If you have the required permissions, the error response is
328
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
329
+ # @option options [Array<Types::Tag>] :tags
330
+ # The tags to delete. Specify a tag key and an optional tag value to
331
+ # delete specific tags. If you specify a tag key without a tag value, we
332
+ # delete any tag with this key regardless of its value. If you specify a
333
+ # tag key with an empty string as the tag value, we delete the tag only
334
+ # if its value is an empty string.
335
+ #
336
+ # If you omit this parameter, we delete all user-defined tags for the
337
+ # specified resources. We do not delete AWS-generated tags (tags that
338
+ # have the `aws:` prefix).
339
+ # @return [Tag::Collection]
340
+ def delete_tags(options = {})
341
+ batch = []
342
+ options = Aws::Util.deep_merge(options, resources: [@id])
343
+ resp = @client.delete_tags(options)
344
+ options[:tags].each do |t|
345
+ batch << Tag.new(
346
+ resource_id: @id,
347
+ key: t[:key],
348
+ value: t[:value],
349
+ client: @client
350
+ )
351
+ end
352
+ Tag::Collection.new([batch], size: batch.size)
353
+ end
354
+
312
355
  # @example Request syntax with placeholder values
313
356
  #
314
357
  # route_table.delete({