aws-sdk-ec2 1.138.0 → 1.143.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: