aws-sdk-ec2 1.138.0 → 1.143.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.
@@ -302,6 +302,49 @@ module Aws::EC2
302
302
  Tag::Collection.new([batch], size: batch.size)
303
303
  end
304
304
 
305
+ # @example Request syntax with placeholder values
306
+ #
307
+ # tag = network_acl.delete_tags({
308
+ # dry_run: false,
309
+ # tags: [
310
+ # {
311
+ # key: "String",
312
+ # value: "String",
313
+ # },
314
+ # ],
315
+ # })
316
+ # @param [Hash] options ({})
317
+ # @option options [Boolean] :dry_run
318
+ # Checks whether you have the required permissions for the action,
319
+ # without actually making the request, and provides an error response.
320
+ # If you have the required permissions, the error response is
321
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
322
+ # @option options [Array<Types::Tag>] :tags
323
+ # The tags to delete. Specify a tag key and an optional tag value to
324
+ # delete specific tags. If you specify a tag key without a tag value, we
325
+ # delete any tag with this key regardless of its value. If you specify a
326
+ # tag key with an empty string as the tag value, we delete the tag only
327
+ # if its value is an empty string.
328
+ #
329
+ # If you omit this parameter, we delete all user-defined tags for the
330
+ # specified resources. We do not delete AWS-generated tags (tags that
331
+ # have the `aws:` prefix).
332
+ # @return [Tag::Collection]
333
+ def delete_tags(options = {})
334
+ batch = []
335
+ options = Aws::Util.deep_merge(options, resources: [@id])
336
+ resp = @client.delete_tags(options)
337
+ options[:tags].each do |t|
338
+ batch << Tag.new(
339
+ resource_id: @id,
340
+ key: t[:key],
341
+ value: t[:value],
342
+ client: @client
343
+ )
344
+ end
345
+ Tag::Collection.new([batch], size: batch.size)
346
+ end
347
+
305
348
  # @example Request syntax with placeholder values
306
349
  #
307
350
  # network_acl.delete({
@@ -370,6 +370,49 @@ module Aws::EC2
370
370
  Tag::Collection.new([batch], size: batch.size)
371
371
  end
372
372
 
373
+ # @example Request syntax with placeholder values
374
+ #
375
+ # tag = network_interface.delete_tags({
376
+ # dry_run: false,
377
+ # tags: [
378
+ # {
379
+ # key: "String",
380
+ # value: "String",
381
+ # },
382
+ # ],
383
+ # })
384
+ # @param [Hash] options ({})
385
+ # @option options [Boolean] :dry_run
386
+ # Checks whether you have the required permissions for the action,
387
+ # without actually making the request, and provides an error response.
388
+ # If you have the required permissions, the error response is
389
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
390
+ # @option options [Array<Types::Tag>] :tags
391
+ # The tags to delete. Specify a tag key and an optional tag value to
392
+ # delete specific tags. If you specify a tag key without a tag value, we
393
+ # delete any tag with this key regardless of its value. If you specify a
394
+ # tag key with an empty string as the tag value, we delete the tag only
395
+ # if its value is an empty string.
396
+ #
397
+ # If you omit this parameter, we delete all user-defined tags for the
398
+ # specified resources. We do not delete AWS-generated tags (tags that
399
+ # have the `aws:` prefix).
400
+ # @return [Tag::Collection]
401
+ def delete_tags(options = {})
402
+ batch = []
403
+ options = Aws::Util.deep_merge(options, resources: [@id])
404
+ resp = @client.delete_tags(options)
405
+ options[:tags].each do |t|
406
+ batch << Tag.new(
407
+ resource_id: @id,
408
+ key: t[:key],
409
+ value: t[:value],
410
+ client: @client
411
+ )
412
+ end
413
+ Tag::Collection.new([batch], size: batch.size)
414
+ end
415
+
373
416
  # @example Request syntax with placeholder values
374
417
  #
375
418
  # network_interface.delete({
@@ -909,6 +909,45 @@ module Aws::EC2
909
909
  resp.data
910
910
  end
911
911
 
912
+ # @example Request syntax with placeholder values
913
+ #
914
+ # ec2.delete_tags({
915
+ # dry_run: false,
916
+ # resources: ["String"], # required
917
+ # tags: [
918
+ # {
919
+ # key: "String",
920
+ # value: "String",
921
+ # },
922
+ # ],
923
+ # })
924
+ # @param [Hash] options ({})
925
+ # @option options [Boolean] :dry_run
926
+ # Checks whether you have the required permissions for the action,
927
+ # without actually making the request, and provides an error response.
928
+ # If you have the required permissions, the error response is
929
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
930
+ # @option options [required, Array<String>] :resources
931
+ # The IDs of the resources, separated by spaces.
932
+ #
933
+ # Constraints: Up to 1000 resource IDs. We recommend breaking up this
934
+ # request into smaller batches.
935
+ # @option options [Array<Types::Tag>] :tags
936
+ # The tags to delete. Specify a tag key and an optional tag value to
937
+ # delete specific tags. If you specify a tag key without a tag value, we
938
+ # delete any tag with this key regardless of its value. If you specify a
939
+ # tag key with an empty string as the tag value, we delete the tag only
940
+ # if its value is an empty string.
941
+ #
942
+ # If you omit this parameter, we delete all user-defined tags for the
943
+ # specified resources. We do not delete AWS-generated tags (tags that
944
+ # have the `aws:` prefix).
945
+ # @return [EmptyStructure]
946
+ def delete_tags(options = {})
947
+ resp = @client.delete_tags(options)
948
+ resp.data
949
+ end
950
+
912
951
  # @example Request syntax with placeholder values
913
952
  #
914
953
  # volume = ec2.create_volume({
@@ -932,6 +971,7 @@ module Aws::EC2
932
971
  # ],
933
972
  # },
934
973
  # ],
974
+ # multi_attach_enabled: false,
935
975
  # })
936
976
  # @param [Hash] options ({})
937
977
  # @option options [required, String] :availability_zone
@@ -990,7 +1030,8 @@ module Aws::EC2
990
1030
  # @option options [String] :outpost_arn
991
1031
  # The Amazon Resource Name (ARN) of the Outpost.
992
1032
  # @option options [Integer] :size
993
- # The size of the volume, in GiBs.
1033
+ # The size of the volume, in GiBs. You must specify either a snapshot ID
1034
+ # or a volume size.
994
1035
  #
995
1036
  # Constraints: 1-16,384 for `gp2`, 4-16,384 for `io1`, 500-16,384 for
996
1037
  # `st1`, 500-16,384 for `sc1`, and 1-1,024 for `standard`. If you
@@ -999,16 +1040,9 @@ module Aws::EC2
999
1040
  #
1000
1041
  # Default: If you're creating the volume from a snapshot and don't
1001
1042
  # 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
1043
  # @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>
1044
+ # The snapshot from which to create the volume. You must specify either
1045
+ # a snapshot ID or a volume size.
1012
1046
  # @option options [String] :volume_type
1013
1047
  # The volume type. This can be `gp2` for General Purpose SSD, `io1` for
1014
1048
  # Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for
@@ -1022,6 +1056,17 @@ module Aws::EC2
1022
1056
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1023
1057
  # @option options [Array<Types::TagSpecification>] :tag_specifications
1024
1058
  # The tags to apply to the volume during creation.
1059
+ # @option options [Boolean] :multi_attach_enabled
1060
+ # Specifies whether to enable Amazon EBS Multi-Attach. If you enable
1061
+ # Multi-Attach, you can attach the volume to up to 16 [Nitro-based
1062
+ # instances][1] in the same Availability Zone. For more information, see
1063
+ # [ Amazon EBS Multi-Attach][2] in the *Amazon Elastic Compute Cloud
1064
+ # User Guide*.
1065
+ #
1066
+ #
1067
+ #
1068
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
1069
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
1025
1070
  # @return [Volume]
1026
1071
  def create_volume(options = {})
1027
1072
  resp = @client.create_volume(options)
@@ -2909,7 +2954,7 @@ module Aws::EC2
2909
2954
  # values: ["String"],
2910
2955
  # },
2911
2956
  # ],
2912
- # volume_ids: ["String"],
2957
+ # volume_ids: ["VolumeId"],
2913
2958
  # dry_run: false,
2914
2959
  # })
2915
2960
  # @param [Hash] options ({})
@@ -2939,6 +2984,13 @@ module Aws::EC2
2939
2984
  # * `encrypted` - Indicates whether the volume is encrypted (`true` \|
2940
2985
  # `false`)
2941
2986
  #
2987
+ # * `multi-attach-enabled` - Indicates whether the volume is enabled for
2988
+ # Multi-Attach (`true` \| `false`)
2989
+ #
2990
+ # * `fast-restored` - Indicates whether the volume was created from a
2991
+ # snapshot that is enabled for fast snapshot restore (`true` \|
2992
+ # `false`).
2993
+ #
2942
2994
  # * `size` - The size of the volume, in GiB.
2943
2995
  #
2944
2996
  # * `snapshot-id` - The snapshot from which the volume was created.
@@ -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({
@@ -439,6 +439,49 @@ module Aws::EC2
439
439
  Tag::Collection.new([batch], size: batch.size)
440
440
  end
441
441
 
442
+ # @example Request syntax with placeholder values
443
+ #
444
+ # tag = security_group.delete_tags({
445
+ # dry_run: false,
446
+ # tags: [
447
+ # {
448
+ # key: "String",
449
+ # value: "String",
450
+ # },
451
+ # ],
452
+ # })
453
+ # @param [Hash] options ({})
454
+ # @option options [Boolean] :dry_run
455
+ # Checks whether you have the required permissions for the action,
456
+ # without actually making the request, and provides an error response.
457
+ # If you have the required permissions, the error response is
458
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
459
+ # @option options [Array<Types::Tag>] :tags
460
+ # The tags to delete. Specify a tag key and an optional tag value to
461
+ # delete specific tags. If you specify a tag key without a tag value, we
462
+ # delete any tag with this key regardless of its value. If you specify a
463
+ # tag key with an empty string as the tag value, we delete the tag only
464
+ # if its value is an empty string.
465
+ #
466
+ # If you omit this parameter, we delete all user-defined tags for the
467
+ # specified resources. We do not delete AWS-generated tags (tags that
468
+ # have the `aws:` prefix).
469
+ # @return [Tag::Collection]
470
+ def delete_tags(options = {})
471
+ batch = []
472
+ options = Aws::Util.deep_merge(options, resources: [@id])
473
+ resp = @client.delete_tags(options)
474
+ options[:tags].each do |t|
475
+ batch << Tag.new(
476
+ resource_id: @id,
477
+ key: t[:key],
478
+ value: t[:value],
479
+ client: @client
480
+ )
481
+ end
482
+ Tag::Collection.new([batch], size: batch.size)
483
+ end
484
+
442
485
  # @example Request syntax with placeholder values
443
486
  #
444
487
  # security_group.delete({
@@ -417,6 +417,49 @@ module Aws::EC2
417
417
  Tag::Collection.new([batch], size: batch.size)
418
418
  end
419
419
 
420
+ # @example Request syntax with placeholder values
421
+ #
422
+ # tag = snapshot.delete_tags({
423
+ # dry_run: false,
424
+ # tags: [
425
+ # {
426
+ # key: "String",
427
+ # value: "String",
428
+ # },
429
+ # ],
430
+ # })
431
+ # @param [Hash] options ({})
432
+ # @option options [Boolean] :dry_run
433
+ # Checks whether you have the required permissions for the action,
434
+ # without actually making the request, and provides an error response.
435
+ # If you have the required permissions, the error response is
436
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
437
+ # @option options [Array<Types::Tag>] :tags
438
+ # The tags to delete. Specify a tag key and an optional tag value to
439
+ # delete specific tags. If you specify a tag key without a tag value, we
440
+ # delete any tag with this key regardless of its value. If you specify a
441
+ # tag key with an empty string as the tag value, we delete the tag only
442
+ # if its value is an empty string.
443
+ #
444
+ # If you omit this parameter, we delete all user-defined tags for the
445
+ # specified resources. We do not delete AWS-generated tags (tags that
446
+ # have the `aws:` prefix).
447
+ # @return [Tag::Collection]
448
+ def delete_tags(options = {})
449
+ batch = []
450
+ options = Aws::Util.deep_merge(options, resources: [@id])
451
+ resp = @client.delete_tags(options)
452
+ options[:tags].each do |t|
453
+ batch << Tag.new(
454
+ resource_id: @id,
455
+ key: t[:key],
456
+ value: t[:value],
457
+ client: @client
458
+ )
459
+ end
460
+ Tag::Collection.new([batch], size: batch.size)
461
+ end
462
+
420
463
  # @example Request syntax with placeholder values
421
464
  #
422
465
  # snapshot.delete({
@@ -810,6 +810,49 @@ module Aws::EC2
810
810
  Tag::Collection.new([batch], size: batch.size)
811
811
  end
812
812
 
813
+ # @example Request syntax with placeholder values
814
+ #
815
+ # tag = subnet.delete_tags({
816
+ # dry_run: false,
817
+ # tags: [
818
+ # {
819
+ # key: "String",
820
+ # value: "String",
821
+ # },
822
+ # ],
823
+ # })
824
+ # @param [Hash] options ({})
825
+ # @option options [Boolean] :dry_run
826
+ # Checks whether you have the required permissions for the action,
827
+ # without actually making the request, and provides an error response.
828
+ # If you have the required permissions, the error response is
829
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
830
+ # @option options [Array<Types::Tag>] :tags
831
+ # The tags to delete. Specify a tag key and an optional tag value to
832
+ # delete specific tags. If you specify a tag key without a tag value, we
833
+ # delete any tag with this key regardless of its value. If you specify a
834
+ # tag key with an empty string as the tag value, we delete the tag only
835
+ # if its value is an empty string.
836
+ #
837
+ # If you omit this parameter, we delete all user-defined tags for the
838
+ # specified resources. We do not delete AWS-generated tags (tags that
839
+ # have the `aws:` prefix).
840
+ # @return [Tag::Collection]
841
+ def delete_tags(options = {})
842
+ batch = []
843
+ options = Aws::Util.deep_merge(options, resources: [@id])
844
+ resp = @client.delete_tags(options)
845
+ options[:tags].each do |t|
846
+ batch << Tag.new(
847
+ resource_id: @id,
848
+ key: t[:key],
849
+ value: t[:value],
850
+ client: @client
851
+ )
852
+ end
853
+ Tag::Collection.new([batch], size: batch.size)
854
+ end
855
+
813
856
  # @example Request syntax with placeholder values
814
857
  #
815
858
  # subnet.delete({
@@ -5512,9 +5512,9 @@ module Aws::EC2
5512
5512
  # captured and aggregated into a flow log record. You can specify 60
5513
5513
  # seconds (1 minute) or 600 seconds (10 minutes).
5514
5514
  #
5515
- # For network interfaces attached to [Nitro-based instances][1], the
5516
- # aggregation interval is always 60 seconds, regardless of the value
5517
- # that you specify.
5515
+ # When a network interface is attached to a [Nitro-based instance][1],
5516
+ # the aggregation interval is always 60 seconds or less, regardless of
5517
+ # the value that you specify.
5518
5518
  #
5519
5519
  # Default: 600
5520
5520
  #
@@ -8310,6 +8310,7 @@ module Aws::EC2
8310
8310
  # ],
8311
8311
  # },
8312
8312
  # ],
8313
+ # multi_attach_enabled: false,
8313
8314
  # }
8314
8315
  #
8315
8316
  # @!attribute [rw] availability_zone
@@ -8379,7 +8380,8 @@ module Aws::EC2
8379
8380
  # @return [String]
8380
8381
  #
8381
8382
  # @!attribute [rw] size
8382
- # The size of the volume, in GiBs.
8383
+ # The size of the volume, in GiBs. You must specify either a snapshot
8384
+ # ID or a volume size.
8383
8385
  #
8384
8386
  # Constraints: 1-16,384 for `gp2`, 4-16,384 for `io1`, 500-16,384 for
8385
8387
  # `st1`, 500-16,384 for `sc1`, and 1-1,024 for `standard`. If you
@@ -8388,18 +8390,11 @@ module Aws::EC2
8388
8390
  #
8389
8391
  # Default: If you're creating the volume from a snapshot and don't
8390
8392
  # specify a volume size, the default is the snapshot size.
8391
- #
8392
- # <note markdown="1"> At least one of Size or SnapshotId is required.
8393
- #
8394
- # </note>
8395
8393
  # @return [Integer]
8396
8394
  #
8397
8395
  # @!attribute [rw] snapshot_id
8398
- # The snapshot from which to create the volume.
8399
- #
8400
- # <note markdown="1"> At least one of Size or SnapshotId are required.
8401
- #
8402
- # </note>
8396
+ # The snapshot from which to create the volume. You must specify
8397
+ # either a snapshot ID or a volume size.
8403
8398
  # @return [String]
8404
8399
  #
8405
8400
  # @!attribute [rw] volume_type
@@ -8421,6 +8416,19 @@ module Aws::EC2
8421
8416
  # The tags to apply to the volume during creation.
8422
8417
  # @return [Array<Types::TagSpecification>]
8423
8418
  #
8419
+ # @!attribute [rw] multi_attach_enabled
8420
+ # Specifies whether to enable Amazon EBS Multi-Attach. If you enable
8421
+ # Multi-Attach, you can attach the volume to up to 16 [Nitro-based
8422
+ # instances][1] in the same Availability Zone. For more information,
8423
+ # see [ Amazon EBS Multi-Attach][2] in the *Amazon Elastic Compute
8424
+ # Cloud User Guide*.
8425
+ #
8426
+ #
8427
+ #
8428
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
8429
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
8430
+ # @return [Boolean]
8431
+ #
8424
8432
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolumeRequest AWS API Documentation
8425
8433
  #
8426
8434
  class CreateVolumeRequest < Struct.new(
@@ -8433,7 +8441,8 @@ module Aws::EC2
8433
8441
  :snapshot_id,
8434
8442
  :volume_type,
8435
8443
  :dry_run,
8436
- :tag_specifications)
8444
+ :tag_specifications,
8445
+ :multi_attach_enabled)
8437
8446
  include Aws::Structure
8438
8447
  end
8439
8448
 
@@ -8528,6 +8537,17 @@ module Aws::EC2
8528
8537
  # security_group_ids: ["String"],
8529
8538
  # client_token: "String",
8530
8539
  # private_dns_enabled: false,
8540
+ # tag_specifications: [
8541
+ # {
8542
+ # resource_type: "client-vpn-endpoint", # accepts client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway
8543
+ # tags: [
8544
+ # {
8545
+ # key: "String",
8546
+ # value: "String",
8547
+ # },
8548
+ # ],
8549
+ # },
8550
+ # ],
8531
8551
  # }
8532
8552
  #
8533
8553
  # @!attribute [rw] dry_run
@@ -8601,6 +8621,10 @@ module Aws::EC2
8601
8621
  # Default: `true`
8602
8622
  # @return [Boolean]
8603
8623
  #
8624
+ # @!attribute [rw] tag_specifications
8625
+ # The tags to associate with the endpoint.
8626
+ # @return [Array<Types::TagSpecification>]
8627
+ #
8604
8628
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointRequest AWS API Documentation
8605
8629
  #
8606
8630
  class CreateVpcEndpointRequest < Struct.new(
@@ -8613,7 +8637,8 @@ module Aws::EC2
8613
8637
  :subnet_ids,
8614
8638
  :security_group_ids,
8615
8639
  :client_token,
8616
- :private_dns_enabled)
8640
+ :private_dns_enabled,
8641
+ :tag_specifications)
8617
8642
  include Aws::Structure
8618
8643
  end
8619
8644
 
@@ -8645,6 +8670,17 @@ module Aws::EC2
8645
8670
  # private_dns_name: "String",
8646
8671
  # network_load_balancer_arns: ["String"], # required
8647
8672
  # client_token: "String",
8673
+ # tag_specifications: [
8674
+ # {
8675
+ # resource_type: "client-vpn-endpoint", # accepts client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway
8676
+ # tags: [
8677
+ # {
8678
+ # key: "String",
8679
+ # value: "String",
8680
+ # },
8681
+ # ],
8682
+ # },
8683
+ # ],
8648
8684
  # }
8649
8685
  #
8650
8686
  # @!attribute [rw] dry_run
@@ -8679,6 +8715,10 @@ module Aws::EC2
8679
8715
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html
8680
8716
  # @return [String]
8681
8717
  #
8718
+ # @!attribute [rw] tag_specifications
8719
+ # The tags to associate with the service.
8720
+ # @return [Array<Types::TagSpecification>]
8721
+ #
8682
8722
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfigurationRequest AWS API Documentation
8683
8723
  #
8684
8724
  class CreateVpcEndpointServiceConfigurationRequest < Struct.new(
@@ -8686,7 +8726,8 @@ module Aws::EC2
8686
8726
  :acceptance_required,
8687
8727
  :private_dns_name,
8688
8728
  :network_load_balancer_arns,
8689
- :client_token)
8729
+ :client_token,
8730
+ :tag_specifications)
8690
8731
  include Aws::Structure
8691
8732
  end
8692
8733
 
@@ -16619,6 +16660,12 @@ module Aws::EC2
16619
16660
  # pool_ids: ["String"],
16620
16661
  # next_token: "NextToken",
16621
16662
  # max_results: 1,
16663
+ # filters: [
16664
+ # {
16665
+ # name: "String",
16666
+ # values: ["String"],
16667
+ # },
16668
+ # ],
16622
16669
  # }
16623
16670
  #
16624
16671
  # @!attribute [rw] pool_ids
@@ -16635,12 +16682,27 @@ module Aws::EC2
16635
16682
  # `nextToken` value.
16636
16683
  # @return [Integer]
16637
16684
  #
16685
+ # @!attribute [rw] filters
16686
+ # One or more filters.
16687
+ #
16688
+ # * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned
16689
+ # to the resource. Use the tag key in the filter name and the tag
16690
+ # value as the filter value. For example, to find all resources that
16691
+ # have a tag with the key `Owner` and the value `TeamA`, specify
16692
+ # `tag:Owner` for the filter name and `TeamA` for the filter value.
16693
+ #
16694
+ # * `tag-key` - The key of a tag assigned to the resource. Use this
16695
+ # filter to find all resources assigned a tag with a specific key,
16696
+ # regardless of the tag value.
16697
+ # @return [Array<Types::Filter>]
16698
+ #
16638
16699
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4PoolsRequest AWS API Documentation
16639
16700
  #
16640
16701
  class DescribePublicIpv4PoolsRequest < Struct.new(
16641
16702
  :pool_ids,
16642
16703
  :next_token,
16643
- :max_results)
16704
+ :max_results,
16705
+ :filters)
16644
16706
  include Aws::Structure
16645
16707
  end
16646
16708
 
@@ -19551,7 +19613,7 @@ module Aws::EC2
19551
19613
  #
19552
19614
  # {
19553
19615
  # attribute: "autoEnableIO", # required, accepts autoEnableIO, productCodes
19554
- # volume_id: "String", # required
19616
+ # volume_id: "VolumeId", # required
19555
19617
  # dry_run: false,
19556
19618
  # }
19557
19619
  #
@@ -19612,7 +19674,7 @@ module Aws::EC2
19612
19674
  # ],
19613
19675
  # max_results: 1,
19614
19676
  # next_token: "String",
19615
- # volume_ids: ["String"],
19677
+ # volume_ids: ["VolumeId"],
19616
19678
  # dry_run: false,
19617
19679
  # }
19618
19680
  #
@@ -19718,7 +19780,7 @@ module Aws::EC2
19718
19780
  #
19719
19781
  # {
19720
19782
  # dry_run: false,
19721
- # volume_ids: ["String"],
19783
+ # volume_ids: ["VolumeId"],
19722
19784
  # filters: [
19723
19785
  # {
19724
19786
  # name: "String",
@@ -19742,9 +19804,11 @@ module Aws::EC2
19742
19804
  # @return [Array<String>]
19743
19805
  #
19744
19806
  # @!attribute [rw] filters
19745
- # The filters. Supported filters: `volume-id`, `modification-state`,
19746
- # `target-size`, `target-iops`, `target-volume-type`, `original-size`,
19747
- # `original-iops`, `original-volume-type`, `start-time`.
19807
+ # The filters. Supported filters: `volume-id` \| `modification-state`
19808
+ # \| `target-size` \| `target-iops` \| `target-volume-type` \|
19809
+ # `original-size` \| `original-iops` \| `original-volume-type` \|
19810
+ # `start-time` \| `originalMultiAttachEnabled` \|
19811
+ # `targetMultiAttachEnabled`.
19748
19812
  # @return [Array<Types::Filter>]
19749
19813
  #
19750
19814
  # @!attribute [rw] next_token
@@ -19793,7 +19857,7 @@ module Aws::EC2
19793
19857
  # values: ["String"],
19794
19858
  # },
19795
19859
  # ],
19796
- # volume_ids: ["String"],
19860
+ # volume_ids: ["VolumeId"],
19797
19861
  # dry_run: false,
19798
19862
  # max_results: 1,
19799
19863
  # next_token: "String",
@@ -19825,6 +19889,13 @@ module Aws::EC2
19825
19889
  # * `encrypted` - Indicates whether the volume is encrypted (`true` \|
19826
19890
  # `false`)
19827
19891
  #
19892
+ # * `multi-attach-enabled` - Indicates whether the volume is enabled
19893
+ # for Multi-Attach (`true` \| `false`)
19894
+ #
19895
+ # * `fast-restored` - Indicates whether the volume was created from a
19896
+ # snapshot that is enabled for fast snapshot restore (`true` \|
19897
+ # `false`).
19898
+ #
19828
19899
  # * `size` - The size of the volume, in GiB.
19829
19900
  #
19830
19901
  # * `snapshot-id` - The snapshot from which the volume was created.
@@ -21167,7 +21238,8 @@ module Aws::EC2
21167
21238
  # @return [Boolean]
21168
21239
  #
21169
21240
  # @!attribute [rw] instance_id
21170
- # The ID of the instance.
21241
+ # The ID of the instance. If you are detaching a Multi-Attach enabled
21242
+ # volume, you must specify an instance ID.
21171
21243
  # @return [String]
21172
21244
  #
21173
21245
  # @!attribute [rw] volume_id
@@ -22286,6 +22358,8 @@ module Aws::EC2
22286
22358
  # Amazon EBS encryption. For more information, see [Supported Instance
22287
22359
  # Types][2].
22288
22360
  #
22361
+ # This parameter is not returned by .
22362
+ #
22289
22363
  #
22290
22364
  #
22291
22365
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters
@@ -23935,7 +24009,10 @@ module Aws::EC2
23935
24009
  # @return [String]
23936
24010
  #
23937
24011
  # @!attribute [rw] subnet_id
23938
- # The ID of the subnet in which to launch the instances.
24012
+ # The IDs of the subnets in which to launch the instances. Separate
24013
+ # multiple subnet IDs using commas (for example,
24014
+ # `subnet-1234abcdeexample1, subnet-0987cdef6example2`). A request of
24015
+ # type `instant` can have only one subnet ID.
23939
24016
  # @return [String]
23940
24017
  #
23941
24018
  # @!attribute [rw] availability_zone
@@ -24110,9 +24187,11 @@ module Aws::EC2
24110
24187
  # The maximum interval of time, in seconds, during which a flow of
24111
24188
  # packets is captured and aggregated into a flow log record.
24112
24189
  #
24113
- # For network interfaces attached to [Nitro-based instances][1], the
24114
- # aggregation interval is always 60 seconds (1 minute), regardless of
24115
- # the specified value.
24190
+ # When a network interface is attached to a [Nitro-based instance][1],
24191
+ # the aggregation interval is always 60 seconds (1 minute) or less,
24192
+ # regardless of the specified value.
24193
+ #
24194
+ # Valid Values: `60` \| `600`
24116
24195
  #
24117
24196
  #
24118
24197
  #
@@ -26051,6 +26130,31 @@ module Aws::EC2
26051
26130
  # blank.
26052
26131
  # @return [String]
26053
26132
  #
26133
+ # @!attribute [rw] platform_details
26134
+ # The platform details associated with the billing code of the AMI.
26135
+ # For more information, see [Obtaining Billing Information][1] in the
26136
+ # *Amazon Elastic Compute Cloud User Guide*.
26137
+ #
26138
+ #
26139
+ #
26140
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html
26141
+ # @return [String]
26142
+ #
26143
+ # @!attribute [rw] usage_operation
26144
+ # The operation of the Amazon EC2 instance and the billing code that
26145
+ # is associated with the AMI. `usageOperation` corresponds to the
26146
+ # [lineitem/Operation][1] column on your AWS Cost and Usage Report and
26147
+ # in the [AWS Price List API][2]. For the list of `UsageOperation`
26148
+ # codes, see [Platform Details and Usage Operation Billing Codes][3]
26149
+ # in the *Amazon Elastic Compute Cloud User Guide*.
26150
+ #
26151
+ #
26152
+ #
26153
+ # [1]: https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation
26154
+ # [2]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html
26155
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html#billing-info
26156
+ # @return [String]
26157
+ #
26054
26158
  # @!attribute [rw] product_codes
26055
26159
  # Any product codes associated with the AMI.
26056
26160
  # @return [Array<Types::ProductCode>]
@@ -26129,6 +26233,8 @@ module Aws::EC2
26129
26233
  :kernel_id,
26130
26234
  :owner_id,
26131
26235
  :platform,
26236
+ :platform_details,
26237
+ :usage_operation,
26132
26238
  :product_codes,
26133
26239
  :ramdisk_id,
26134
26240
  :state,
@@ -28296,6 +28402,9 @@ module Aws::EC2
28296
28402
  #
28297
28403
  # @!attribute [rw] network_interface_id
28298
28404
  # The ID of the network interface.
28405
+ #
28406
+ # If you are creating a Spot Fleet, omit this parameter because you
28407
+ # can’t specify a network interface ID in a launch specification.
28299
28408
  # @return [String]
28300
28409
  #
28301
28410
  # @!attribute [rw] private_ip_address
@@ -35281,11 +35390,15 @@ module Aws::EC2
35281
35390
  #
35282
35391
  # If not specified, an Availability Zone will be automatically chosen
35283
35392
  # for you based on the load balancing criteria for the Region.
35393
+ #
35394
+ # This parameter is not supported by .
35284
35395
  # @return [String]
35285
35396
  #
35286
35397
  # @!attribute [rw] affinity
35287
35398
  # The affinity setting for the instance on the Dedicated Host. This
35288
35399
  # parameter is not supported for the ImportInstance command.
35400
+ #
35401
+ # This parameter is not supported by .
35289
35402
  # @return [String]
35290
35403
  #
35291
35404
  # @!attribute [rw] group_name
@@ -35295,11 +35408,15 @@ module Aws::EC2
35295
35408
  # @!attribute [rw] partition_number
35296
35409
  # The number of the partition the instance is in. Valid only if the
35297
35410
  # placement group strategy is set to `partition`.
35411
+ #
35412
+ # This parameter is not supported by .
35298
35413
  # @return [Integer]
35299
35414
  #
35300
35415
  # @!attribute [rw] host_id
35301
35416
  # The ID of the Dedicated Host on which the instance resides. This
35302
35417
  # parameter is not supported for the ImportInstance command.
35418
+ #
35419
+ # This parameter is not supported by .
35303
35420
  # @return [String]
35304
35421
  #
35305
35422
  # @!attribute [rw] tenancy
@@ -35307,16 +35424,22 @@ module Aws::EC2
35307
35424
  # An instance with a tenancy of `dedicated` runs on single-tenant
35308
35425
  # hardware. The `host` tenancy is not supported for the ImportInstance
35309
35426
  # command.
35427
+ #
35428
+ # This parameter is not supported by .
35310
35429
  # @return [String]
35311
35430
  #
35312
35431
  # @!attribute [rw] spread_domain
35313
35432
  # Reserved for future use.
35433
+ #
35434
+ # This parameter is not supported by .
35314
35435
  # @return [String]
35315
35436
  #
35316
35437
  # @!attribute [rw] host_resource_group_arn
35317
35438
  # The ARN of the host resource group in which to launch the instances.
35318
35439
  # If you specify a host resource group ARN, omit the **Tenancy**
35319
35440
  # parameter or set it to `host`.
35441
+ #
35442
+ # This parameter is not supported by .
35320
35443
  # @return [String]
35321
35444
  #
35322
35445
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Placement AWS API Documentation
@@ -35876,6 +35999,10 @@ module Aws::EC2
35876
35999
  # The total number of available addresses.
35877
36000
  # @return [Integer]
35878
36001
  #
36002
+ # @!attribute [rw] tags
36003
+ # Any tags for the address pool.
36004
+ # @return [Array<Types::Tag>]
36005
+ #
35879
36006
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PublicIpv4Pool AWS API Documentation
35880
36007
  #
35881
36008
  class PublicIpv4Pool < Struct.new(
@@ -35883,7 +36010,8 @@ module Aws::EC2
35883
36010
  :description,
35884
36011
  :pool_address_ranges,
35885
36012
  :total_address_count,
35886
- :total_available_address_count)
36013
+ :total_available_address_count,
36014
+ :tags)
35887
36015
  include Aws::Structure
35888
36016
  end
35889
36017
 
@@ -37775,6 +37903,17 @@ module Aws::EC2
37775
37903
  # },
37776
37904
  # },
37777
37905
  # instance_pools_to_use_count: 1,
37906
+ # tag_specifications: [
37907
+ # {
37908
+ # resource_type: "client-vpn-endpoint", # accepts client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway
37909
+ # tags: [
37910
+ # {
37911
+ # key: "String",
37912
+ # value: "String",
37913
+ # },
37914
+ # ],
37915
+ # },
37916
+ # ],
37778
37917
  # },
37779
37918
  # }
37780
37919
  #
@@ -42394,6 +42533,10 @@ module Aws::EC2
42394
42533
  # The state of the Spot Fleet request.
42395
42534
  # @return [String]
42396
42535
  #
42536
+ # @!attribute [rw] tags
42537
+ # The tags for a Spot Fleet resource.
42538
+ # @return [Array<Types::Tag>]
42539
+ #
42397
42540
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetRequestConfig AWS API Documentation
42398
42541
  #
42399
42542
  class SpotFleetRequestConfig < Struct.new(
@@ -42401,7 +42544,8 @@ module Aws::EC2
42401
42544
  :create_time,
42402
42545
  :spot_fleet_request_config,
42403
42546
  :spot_fleet_request_id,
42404
- :spot_fleet_request_state)
42547
+ :spot_fleet_request_state,
42548
+ :tags)
42405
42549
  include Aws::Structure
42406
42550
  end
42407
42551
 
@@ -42551,6 +42695,17 @@ module Aws::EC2
42551
42695
  # },
42552
42696
  # },
42553
42697
  # instance_pools_to_use_count: 1,
42698
+ # tag_specifications: [
42699
+ # {
42700
+ # resource_type: "client-vpn-endpoint", # accepts client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway
42701
+ # tags: [
42702
+ # {
42703
+ # key: "String",
42704
+ # value: "String",
42705
+ # },
42706
+ # ],
42707
+ # },
42708
+ # ],
42554
42709
  # }
42555
42710
  #
42556
42711
  # @!attribute [rw] allocation_strategy
@@ -42739,6 +42894,19 @@ module Aws::EC2
42739
42894
  # pools that you specify.
42740
42895
  # @return [Integer]
42741
42896
  #
42897
+ # @!attribute [rw] tag_specifications
42898
+ # The key-value pair for tagging the Spot Fleet request on creation.
42899
+ # The value for `ResourceType` must be `spot-fleet-request`, otherwise
42900
+ # the Spot Fleet request fails. To tag instances at launch, specify
42901
+ # the tags in the [launch template][1]. For information about tagging
42902
+ # after launch, see [Tagging Your Resources][2].
42903
+ #
42904
+ #
42905
+ #
42906
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template
42907
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources
42908
+ # @return [Array<Types::TagSpecification>]
42909
+ #
42742
42910
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetRequestConfigData AWS API Documentation
42743
42911
  #
42744
42912
  class SpotFleetRequestConfigData < Struct.new(
@@ -42763,7 +42931,8 @@ module Aws::EC2
42763
42931
  :replace_unhealthy_instances,
42764
42932
  :instance_interruption_behavior,
42765
42933
  :load_balancers_config,
42766
- :instance_pools_to_use_count)
42934
+ :instance_pools_to_use_count,
42935
+ :tag_specifications)
42767
42936
  include Aws::Structure
42768
42937
  end
42769
42938
 
@@ -42783,8 +42952,8 @@ module Aws::EC2
42783
42952
  # }
42784
42953
  #
42785
42954
  # @!attribute [rw] resource_type
42786
- # The type of resource. Currently, the only resource type that is
42787
- # supported is `instance`.
42955
+ # The type of resource. Currently, the only resource types that are
42956
+ # supported are `spot-fleet-request` and `instance`.
42788
42957
  # @return [String]
42789
42958
  #
42790
42959
  # @!attribute [rw] tags
@@ -45346,7 +45515,7 @@ module Aws::EC2
45346
45515
  # @return [String]
45347
45516
  #
45348
45517
  # @!attribute [rw] ipv_6_support
45349
- # Indicates whether IPv6 support is enabled.
45518
+ # Indicates whether IPv6 support is disabled.
45350
45519
  # @return [String]
45351
45520
  #
45352
45521
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TransitGatewayVpcAttachmentOptions AWS API Documentation
@@ -46118,6 +46287,10 @@ module Aws::EC2
46118
46287
  # restore.
46119
46288
  # @return [Boolean]
46120
46289
  #
46290
+ # @!attribute [rw] multi_attach_enabled
46291
+ # Indicates whether Amazon EBS Multi-Attach is enabled.
46292
+ # @return [Boolean]
46293
+ #
46121
46294
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Volume AWS API Documentation
46122
46295
  #
46123
46296
  class Volume < Struct.new(
@@ -46134,7 +46307,8 @@ module Aws::EC2
46134
46307
  :iops,
46135
46308
  :tags,
46136
46309
  :volume_type,
46137
- :fast_restored)
46310
+ :fast_restored,
46311
+ :multi_attach_enabled)
46138
46312
  include Aws::Structure
46139
46313
  end
46140
46314
 
@@ -46296,6 +46470,24 @@ module Aws::EC2
46296
46470
  include Aws::Structure
46297
46471
  end
46298
46472
 
46473
+ # Information about the instances to which the volume is attached.
46474
+ #
46475
+ # @!attribute [rw] io_performance
46476
+ # The maximum IOPS supported by the attached instance.
46477
+ # @return [String]
46478
+ #
46479
+ # @!attribute [rw] instance_id
46480
+ # The ID of the attached instance.
46481
+ # @return [String]
46482
+ #
46483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusAttachmentStatus AWS API Documentation
46484
+ #
46485
+ class VolumeStatusAttachmentStatus < Struct.new(
46486
+ :io_performance,
46487
+ :instance_id)
46488
+ include Aws::Structure
46489
+ end
46490
+
46299
46491
  # Describes a volume status.
46300
46492
  #
46301
46493
  # @!attribute [rw] name
@@ -46336,6 +46528,10 @@ module Aws::EC2
46336
46528
  # The earliest start time of the event.
46337
46529
  # @return [Time]
46338
46530
  #
46531
+ # @!attribute [rw] instance_id
46532
+ # The ID of the instance associated with the event.
46533
+ # @return [String]
46534
+ #
46339
46535
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusEvent AWS API Documentation
46340
46536
  #
46341
46537
  class VolumeStatusEvent < Struct.new(
@@ -46343,7 +46539,8 @@ module Aws::EC2
46343
46539
  :event_id,
46344
46540
  :event_type,
46345
46541
  :not_after,
46346
- :not_before)
46542
+ :not_before,
46543
+ :instance_id)
46347
46544
  include Aws::Structure
46348
46545
  end
46349
46546
 
@@ -46391,6 +46588,10 @@ module Aws::EC2
46391
46588
  # The volume status.
46392
46589
  # @return [Types::VolumeStatusInfo]
46393
46590
  #
46591
+ # @!attribute [rw] attachment_statuses
46592
+ # Information about the instances to which the volume is attached.
46593
+ # @return [Array<Types::VolumeStatusAttachmentStatus>]
46594
+ #
46394
46595
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusItem AWS API Documentation
46395
46596
  #
46396
46597
  class VolumeStatusItem < Struct.new(
@@ -46399,7 +46600,8 @@ module Aws::EC2
46399
46600
  :outpost_arn,
46400
46601
  :events,
46401
46602
  :volume_id,
46402
- :volume_status)
46603
+ :volume_status,
46604
+ :attachment_statuses)
46403
46605
  include Aws::Structure
46404
46606
  end
46405
46607
 
@@ -47103,7 +47305,7 @@ module Aws::EC2
47103
47305
  include Aws::Structure
47104
47306
  end
47105
47307
 
47106
- # The tunnel options for a VPN connection.
47308
+ # The tunnel options for a single VPN tunnel.
47107
47309
  #
47108
47310
  # @note When making an API call, you may pass VpnTunnelOptionsSpecification
47109
47311
  # data as a hash: