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.
@@ -1870,6 +1870,8 @@ module Aws::EC2
1870
1870
  VolumeState = Shapes::StringShape.new(name: 'VolumeState')
1871
1871
  VolumeStatusAction = Shapes::StructureShape.new(name: 'VolumeStatusAction')
1872
1872
  VolumeStatusActionsList = Shapes::ListShape.new(name: 'VolumeStatusActionsList')
1873
+ VolumeStatusAttachmentStatus = Shapes::StructureShape.new(name: 'VolumeStatusAttachmentStatus')
1874
+ VolumeStatusAttachmentStatusList = Shapes::ListShape.new(name: 'VolumeStatusAttachmentStatusList')
1873
1875
  VolumeStatusDetails = Shapes::StructureShape.new(name: 'VolumeStatusDetails')
1874
1876
  VolumeStatusDetailsList = Shapes::ListShape.new(name: 'VolumeStatusDetailsList')
1875
1877
  VolumeStatusEvent = Shapes::StructureShape.new(name: 'VolumeStatusEvent')
@@ -3210,6 +3212,7 @@ module Aws::EC2
3210
3212
  CreateVolumeRequest.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "VolumeType"))
3211
3213
  CreateVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
3212
3214
  CreateVolumeRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
3215
+ CreateVolumeRequest.add_member(:multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "MultiAttachEnabled"))
3213
3216
  CreateVolumeRequest.struct_class = Types::CreateVolumeRequest
3214
3217
 
3215
3218
  CreateVpcEndpointConnectionNotificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
@@ -3234,6 +3237,7 @@ module Aws::EC2
3234
3237
  CreateVpcEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SecurityGroupId"))
3235
3238
  CreateVpcEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
3236
3239
  CreateVpcEndpointRequest.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsEnabled"))
3240
+ CreateVpcEndpointRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
3237
3241
  CreateVpcEndpointRequest.struct_class = Types::CreateVpcEndpointRequest
3238
3242
 
3239
3243
  CreateVpcEndpointResult.add_member(:vpc_endpoint, Shapes::ShapeRef.new(shape: VpcEndpoint, location_name: "vpcEndpoint"))
@@ -3245,6 +3249,7 @@ module Aws::EC2
3245
3249
  CreateVpcEndpointServiceConfigurationRequest.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "PrivateDnsName"))
3246
3250
  CreateVpcEndpointServiceConfigurationRequest.add_member(:network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, required: true, location_name: "NetworkLoadBalancerArn"))
3247
3251
  CreateVpcEndpointServiceConfigurationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
3252
+ CreateVpcEndpointServiceConfigurationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
3248
3253
  CreateVpcEndpointServiceConfigurationRequest.struct_class = Types::CreateVpcEndpointServiceConfigurationRequest
3249
3254
 
3250
3255
  CreateVpcEndpointServiceConfigurationResult.add_member(:service_configuration, Shapes::ShapeRef.new(shape: ServiceConfiguration, location_name: "serviceConfiguration"))
@@ -4363,6 +4368,7 @@ module Aws::EC2
4363
4368
  DescribePublicIpv4PoolsRequest.add_member(:pool_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "PoolId"))
4364
4369
  DescribePublicIpv4PoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
4365
4370
  DescribePublicIpv4PoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PoolMaxResults, location_name: "MaxResults"))
4371
+ DescribePublicIpv4PoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
4366
4372
  DescribePublicIpv4PoolsRequest.struct_class = Types::DescribePublicIpv4PoolsRequest
4367
4373
 
4368
4374
  DescribePublicIpv4PoolsResult.add_member(:public_ipv_4_pools, Shapes::ShapeRef.new(shape: PublicIpv4PoolSet, location_name: "publicIpv4PoolSet"))
@@ -4704,7 +4710,7 @@ module Aws::EC2
4704
4710
  DescribeTransitGatewaysResult.struct_class = Types::DescribeTransitGatewaysResult
4705
4711
 
4706
4712
  DescribeVolumeAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: VolumeAttributeName, required: true, location_name: "Attribute"))
4707
- DescribeVolumeAttributeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VolumeId"))
4713
+ DescribeVolumeAttributeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
4708
4714
  DescribeVolumeAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
4709
4715
  DescribeVolumeAttributeRequest.struct_class = Types::DescribeVolumeAttributeRequest
4710
4716
 
@@ -5822,6 +5828,8 @@ module Aws::EC2
5822
5828
  Image.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
5823
5829
  Image.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "imageOwnerId"))
5824
5830
  Image.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
5831
+ Image.add_member(:platform_details, Shapes::ShapeRef.new(shape: String, location_name: "platformDetails"))
5832
+ Image.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "usageOperation"))
5825
5833
  Image.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
5826
5834
  Image.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramdiskId"))
5827
5835
  Image.add_member(:state, Shapes::ShapeRef.new(shape: ImageState, location_name: "imageState"))
@@ -7603,6 +7611,7 @@ module Aws::EC2
7603
7611
  PublicIpv4Pool.add_member(:pool_address_ranges, Shapes::ShapeRef.new(shape: PublicIpv4PoolRangeSet, location_name: "poolAddressRangeSet"))
7604
7612
  PublicIpv4Pool.add_member(:total_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalAddressCount"))
7605
7613
  PublicIpv4Pool.add_member(:total_available_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalAvailableAddressCount"))
7614
+ PublicIpv4Pool.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
7606
7615
  PublicIpv4Pool.struct_class = Types::PublicIpv4Pool
7607
7616
 
7608
7617
  PublicIpv4PoolRange.add_member(:first_address, Shapes::ShapeRef.new(shape: String, location_name: "firstAddress"))
@@ -8580,10 +8589,11 @@ module Aws::EC2
8580
8589
  SpotFleetMonitoring.struct_class = Types::SpotFleetMonitoring
8581
8590
 
8582
8591
  SpotFleetRequestConfig.add_member(:activity_status, Shapes::ShapeRef.new(shape: ActivityStatus, location_name: "activityStatus"))
8583
- SpotFleetRequestConfig.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
8592
+ SpotFleetRequestConfig.add_member(:create_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createTime"))
8584
8593
  SpotFleetRequestConfig.add_member(:spot_fleet_request_config, Shapes::ShapeRef.new(shape: SpotFleetRequestConfigData, location_name: "spotFleetRequestConfig"))
8585
8594
  SpotFleetRequestConfig.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
8586
8595
  SpotFleetRequestConfig.add_member(:spot_fleet_request_state, Shapes::ShapeRef.new(shape: BatchState, location_name: "spotFleetRequestState"))
8596
+ SpotFleetRequestConfig.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
8587
8597
  SpotFleetRequestConfig.struct_class = Types::SpotFleetRequestConfig
8588
8598
 
8589
8599
  SpotFleetRequestConfigData.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: AllocationStrategy, location_name: "allocationStrategy"))
@@ -8608,6 +8618,7 @@ module Aws::EC2
8608
8618
  SpotFleetRequestConfigData.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "instanceInterruptionBehavior"))
8609
8619
  SpotFleetRequestConfigData.add_member(:load_balancers_config, Shapes::ShapeRef.new(shape: LoadBalancersConfig, location_name: "loadBalancersConfig"))
8610
8620
  SpotFleetRequestConfigData.add_member(:instance_pools_to_use_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instancePoolsToUseCount"))
8621
+ SpotFleetRequestConfigData.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
8611
8622
  SpotFleetRequestConfigData.struct_class = Types::SpotFleetRequestConfigData
8612
8623
 
8613
8624
  SpotFleetRequestConfigSet.member = Shapes::ShapeRef.new(shape: SpotFleetRequestConfig, location_name: "item")
@@ -9301,6 +9312,7 @@ module Aws::EC2
9301
9312
  Volume.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
9302
9313
  Volume.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
9303
9314
  Volume.add_member(:fast_restored, Shapes::ShapeRef.new(shape: Boolean, location_name: "fastRestored"))
9315
+ Volume.add_member(:multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "multiAttachEnabled"))
9304
9316
  Volume.struct_class = Types::Volume
9305
9317
 
9306
9318
  VolumeAttachment.add_member(:attach_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "attachTime"))
@@ -9316,7 +9328,7 @@ module Aws::EC2
9316
9328
  VolumeDetail.add_member(:size, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "size"))
9317
9329
  VolumeDetail.struct_class = Types::VolumeDetail
9318
9330
 
9319
- VolumeIdStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "VolumeId")
9331
+ VolumeIdStringList.member = Shapes::ShapeRef.new(shape: VolumeId, location_name: "VolumeId")
9320
9332
 
9321
9333
  VolumeList.member = Shapes::ShapeRef.new(shape: Volume, location_name: "item")
9322
9334
 
@@ -9344,6 +9356,12 @@ module Aws::EC2
9344
9356
 
9345
9357
  VolumeStatusActionsList.member = Shapes::ShapeRef.new(shape: VolumeStatusAction, location_name: "item")
9346
9358
 
9359
+ VolumeStatusAttachmentStatus.add_member(:io_performance, Shapes::ShapeRef.new(shape: String, location_name: "ioPerformance"))
9360
+ VolumeStatusAttachmentStatus.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
9361
+ VolumeStatusAttachmentStatus.struct_class = Types::VolumeStatusAttachmentStatus
9362
+
9363
+ VolumeStatusAttachmentStatusList.member = Shapes::ShapeRef.new(shape: VolumeStatusAttachmentStatus, location_name: "item")
9364
+
9347
9365
  VolumeStatusDetails.add_member(:name, Shapes::ShapeRef.new(shape: VolumeStatusName, location_name: "name"))
9348
9366
  VolumeStatusDetails.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
9349
9367
  VolumeStatusDetails.struct_class = Types::VolumeStatusDetails
@@ -9355,6 +9373,7 @@ module Aws::EC2
9355
9373
  VolumeStatusEvent.add_member(:event_type, Shapes::ShapeRef.new(shape: String, location_name: "eventType"))
9356
9374
  VolumeStatusEvent.add_member(:not_after, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "notAfter"))
9357
9375
  VolumeStatusEvent.add_member(:not_before, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "notBefore"))
9376
+ VolumeStatusEvent.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
9358
9377
  VolumeStatusEvent.struct_class = Types::VolumeStatusEvent
9359
9378
 
9360
9379
  VolumeStatusEventsList.member = Shapes::ShapeRef.new(shape: VolumeStatusEvent, location_name: "item")
@@ -9369,6 +9388,7 @@ module Aws::EC2
9369
9388
  VolumeStatusItem.add_member(:events, Shapes::ShapeRef.new(shape: VolumeStatusEventsList, location_name: "eventsSet"))
9370
9389
  VolumeStatusItem.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
9371
9390
  VolumeStatusItem.add_member(:volume_status, Shapes::ShapeRef.new(shape: VolumeStatusInfo, location_name: "volumeStatus"))
9391
+ VolumeStatusItem.add_member(:attachment_statuses, Shapes::ShapeRef.new(shape: VolumeStatusAttachmentStatusList, location_name: "attachmentStatuses"))
9372
9392
  VolumeStatusItem.struct_class = Types::VolumeStatusItem
9373
9393
 
9374
9394
  VolumeStatusList.member = Shapes::ShapeRef.new(shape: VolumeStatusItem, location_name: "item")
@@ -240,6 +240,49 @@ module Aws::EC2
240
240
  Tag::Collection.new([batch], size: batch.size)
241
241
  end
242
242
 
243
+ # @example Request syntax with placeholder values
244
+ #
245
+ # tag = dhcp_options.delete_tags({
246
+ # dry_run: false,
247
+ # tags: [
248
+ # {
249
+ # key: "String",
250
+ # value: "String",
251
+ # },
252
+ # ],
253
+ # })
254
+ # @param [Hash] options ({})
255
+ # @option options [Boolean] :dry_run
256
+ # Checks whether you have the required permissions for the action,
257
+ # without actually making the request, and provides an error response.
258
+ # If you have the required permissions, the error response is
259
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
260
+ # @option options [Array<Types::Tag>] :tags
261
+ # The tags to delete. Specify a tag key and an optional tag value to
262
+ # delete specific tags. If you specify a tag key without a tag value, we
263
+ # delete any tag with this key regardless of its value. If you specify a
264
+ # tag key with an empty string as the tag value, we delete the tag only
265
+ # if its value is an empty string.
266
+ #
267
+ # If you omit this parameter, we delete all user-defined tags for the
268
+ # specified resources. We do not delete AWS-generated tags (tags that
269
+ # have the `aws:` prefix).
270
+ # @return [Tag::Collection]
271
+ def delete_tags(options = {})
272
+ batch = []
273
+ options = Aws::Util.deep_merge(options, resources: [@id])
274
+ resp = @client.delete_tags(options)
275
+ options[:tags].each do |t|
276
+ batch << Tag.new(
277
+ resource_id: @id,
278
+ key: t[:key],
279
+ value: t[:value],
280
+ client: @client
281
+ )
282
+ end
283
+ Tag::Collection.new([batch], size: batch.size)
284
+ end
285
+
243
286
  # @example Request syntax with placeholder values
244
287
  #
245
288
  # dhcp_options.delete({
@@ -84,6 +84,35 @@ module Aws::EC2
84
84
  data[:platform]
85
85
  end
86
86
 
87
+ # The platform details associated with the billing code of the AMI. For
88
+ # more information, see [Obtaining Billing Information][1] in the
89
+ # *Amazon Elastic Compute Cloud User Guide*.
90
+ #
91
+ #
92
+ #
93
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html
94
+ # @return [String]
95
+ def platform_details
96
+ data[:platform_details]
97
+ end
98
+
99
+ # The operation of the Amazon EC2 instance and the billing code that is
100
+ # associated with the AMI. `usageOperation` corresponds to the
101
+ # [lineitem/Operation][1] column on your AWS Cost and Usage Report and
102
+ # in the [AWS Price List API][2]. For the list of `UsageOperation`
103
+ # codes, see [Platform Details and Usage Operation Billing Codes][3] in
104
+ # the *Amazon Elastic Compute Cloud User Guide*.
105
+ #
106
+ #
107
+ #
108
+ # [1]: https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation
109
+ # [2]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html
110
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html#billing-info
111
+ # @return [String]
112
+ def usage_operation
113
+ data[:usage_operation]
114
+ end
115
+
87
116
  # Any product codes associated with the AMI.
88
117
  # @return [Array<Types::ProductCode>]
89
118
  def product_codes
@@ -380,6 +409,49 @@ module Aws::EC2
380
409
  Tag::Collection.new([batch], size: batch.size)
381
410
  end
382
411
 
412
+ # @example Request syntax with placeholder values
413
+ #
414
+ # tag = image.delete_tags({
415
+ # dry_run: false,
416
+ # tags: [
417
+ # {
418
+ # key: "String",
419
+ # value: "String",
420
+ # },
421
+ # ],
422
+ # })
423
+ # @param [Hash] options ({})
424
+ # @option options [Boolean] :dry_run
425
+ # Checks whether you have the required permissions for the action,
426
+ # without actually making the request, and provides an error response.
427
+ # If you have the required permissions, the error response is
428
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
429
+ # @option options [Array<Types::Tag>] :tags
430
+ # The tags to delete. Specify a tag key and an optional tag value to
431
+ # delete specific tags. If you specify a tag key without a tag value, we
432
+ # delete any tag with this key regardless of its value. If you specify a
433
+ # tag key with an empty string as the tag value, we delete the tag only
434
+ # if its value is an empty string.
435
+ #
436
+ # If you omit this parameter, we delete all user-defined tags for the
437
+ # specified resources. We do not delete AWS-generated tags (tags that
438
+ # have the `aws:` prefix).
439
+ # @return [Tag::Collection]
440
+ def delete_tags(options = {})
441
+ batch = []
442
+ options = Aws::Util.deep_merge(options, resources: [@id])
443
+ resp = @client.delete_tags(options)
444
+ options[:tags].each do |t|
445
+ batch << Tag.new(
446
+ resource_id: @id,
447
+ key: t[:key],
448
+ value: t[:value],
449
+ client: @client
450
+ )
451
+ end
452
+ Tag::Collection.new([batch], size: batch.size)
453
+ end
454
+
383
455
  # @example Request syntax with placeholder values
384
456
  #
385
457
  # image.deregister({
@@ -718,6 +718,49 @@ module Aws::EC2
718
718
  Tag::Collection.new([batch], size: batch.size)
719
719
  end
720
720
 
721
+ # @example Request syntax with placeholder values
722
+ #
723
+ # tag = instance.delete_tags({
724
+ # dry_run: false,
725
+ # tags: [
726
+ # {
727
+ # key: "String",
728
+ # value: "String",
729
+ # },
730
+ # ],
731
+ # })
732
+ # @param [Hash] options ({})
733
+ # @option options [Boolean] :dry_run
734
+ # Checks whether you have the required permissions for the action,
735
+ # without actually making the request, and provides an error response.
736
+ # If you have the required permissions, the error response is
737
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
738
+ # @option options [Array<Types::Tag>] :tags
739
+ # The tags to delete. Specify a tag key and an optional tag value to
740
+ # delete specific tags. If you specify a tag key without a tag value, we
741
+ # delete any tag with this key regardless of its value. If you specify a
742
+ # tag key with an empty string as the tag value, we delete the tag only
743
+ # if its value is an empty string.
744
+ #
745
+ # If you omit this parameter, we delete all user-defined tags for the
746
+ # specified resources. We do not delete AWS-generated tags (tags that
747
+ # have the `aws:` prefix).
748
+ # @return [Tag::Collection]
749
+ def delete_tags(options = {})
750
+ batch = []
751
+ options = Aws::Util.deep_merge(options, resources: [@id])
752
+ resp = @client.delete_tags(options)
753
+ options[:tags].each do |t|
754
+ batch << Tag.new(
755
+ resource_id: @id,
756
+ key: t[:key],
757
+ value: t[:value],
758
+ client: @client
759
+ )
760
+ end
761
+ Tag::Collection.new([batch], size: batch.size)
762
+ end
763
+
721
764
  # @example Request syntax with placeholder values
722
765
  #
723
766
  # instance.describe_attribute({
@@ -1314,7 +1357,7 @@ module Aws::EC2
1314
1357
  # values: ["String"],
1315
1358
  # },
1316
1359
  # ],
1317
- # volume_ids: ["String"],
1360
+ # volume_ids: ["VolumeId"],
1318
1361
  # dry_run: false,
1319
1362
  # })
1320
1363
  # @param [Hash] options ({})
@@ -1344,6 +1387,13 @@ module Aws::EC2
1344
1387
  # * `encrypted` - Indicates whether the volume is encrypted (`true` \|
1345
1388
  # `false`)
1346
1389
  #
1390
+ # * `multi-attach-enabled` - Indicates whether the volume is enabled for
1391
+ # Multi-Attach (`true` \| `false`)
1392
+ #
1393
+ # * `fast-restored` - Indicates whether the volume was created from a
1394
+ # snapshot that is enabled for fast snapshot restore (`true` \|
1395
+ # `false`).
1396
+ #
1347
1397
  # * `size` - The size of the volume, in GiB.
1348
1398
  #
1349
1399
  # * `snapshot-id` - The snapshot from which the volume was created.
@@ -1573,6 +1623,46 @@ module Aws::EC2
1573
1623
  nil
1574
1624
  end
1575
1625
 
1626
+ # @example Request syntax with placeholder values
1627
+ #
1628
+ # instance.batch_delete_tags!({
1629
+ # dry_run: false,
1630
+ # tags: [
1631
+ # {
1632
+ # key: "String",
1633
+ # value: "String",
1634
+ # },
1635
+ # ],
1636
+ # })
1637
+ # @param options ({})
1638
+ # @option options [Boolean] :dry_run
1639
+ # Checks whether you have the required permissions for the action,
1640
+ # without actually making the request, and provides an error response.
1641
+ # If you have the required permissions, the error response is
1642
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
1643
+ # @option options [Array<Types::Tag>] :tags
1644
+ # The tags to delete. Specify a tag key and an optional tag value to
1645
+ # delete specific tags. If you specify a tag key without a tag value, we
1646
+ # delete any tag with this key regardless of its value. If you specify a
1647
+ # tag key with an empty string as the tag value, we delete the tag only
1648
+ # if its value is an empty string.
1649
+ #
1650
+ # If you omit this parameter, we delete all user-defined tags for the
1651
+ # specified resources. We do not delete AWS-generated tags (tags that
1652
+ # have the `aws:` prefix).
1653
+ # @return [void]
1654
+ def batch_delete_tags!(options = {})
1655
+ batch_enum.each do |batch|
1656
+ params = Aws::Util.copy_hash(options)
1657
+ params[:resources] ||= []
1658
+ batch.each do |item|
1659
+ params[:resources] << item.id
1660
+ end
1661
+ batch[0].client.delete_tags(params)
1662
+ end
1663
+ nil
1664
+ end
1665
+
1576
1666
  # @example Request syntax with placeholder values
1577
1667
  #
1578
1668
  # instance.batch_monitor({
@@ -240,6 +240,49 @@ module Aws::EC2
240
240
  Tag::Collection.new([batch], size: batch.size)
241
241
  end
242
242
 
243
+ # @example Request syntax with placeholder values
244
+ #
245
+ # tag = internet_gateway.delete_tags({
246
+ # dry_run: false,
247
+ # tags: [
248
+ # {
249
+ # key: "String",
250
+ # value: "String",
251
+ # },
252
+ # ],
253
+ # })
254
+ # @param [Hash] options ({})
255
+ # @option options [Boolean] :dry_run
256
+ # Checks whether you have the required permissions for the action,
257
+ # without actually making the request, and provides an error response.
258
+ # If you have the required permissions, the error response is
259
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
260
+ # @option options [Array<Types::Tag>] :tags
261
+ # The tags to delete. Specify a tag key and an optional tag value to
262
+ # delete specific tags. If you specify a tag key without a tag value, we
263
+ # delete any tag with this key regardless of its value. If you specify a
264
+ # tag key with an empty string as the tag value, we delete the tag only
265
+ # if its value is an empty string.
266
+ #
267
+ # If you omit this parameter, we delete all user-defined tags for the
268
+ # specified resources. We do not delete AWS-generated tags (tags that
269
+ # have the `aws:` prefix).
270
+ # @return [Tag::Collection]
271
+ def delete_tags(options = {})
272
+ batch = []
273
+ options = Aws::Util.deep_merge(options, resources: [@id])
274
+ resp = @client.delete_tags(options)
275
+ options[:tags].each do |t|
276
+ batch << Tag.new(
277
+ resource_id: @id,
278
+ key: t[:key],
279
+ value: t[:value],
280
+ client: @client
281
+ )
282
+ end
283
+ Tag::Collection.new([batch], size: batch.size)
284
+ end
285
+
243
286
  # @example Request syntax with placeholder values
244
287
  #
245
288
  # internet_gateway.delete({
@@ -308,6 +308,49 @@ module Aws::EC2
308
308
  Tag::Collection.new([batch], size: batch.size)
309
309
  end
310
310
 
311
+ # @example Request syntax with placeholder values
312
+ #
313
+ # tag = nat_gateway.delete_tags({
314
+ # dry_run: false,
315
+ # tags: [
316
+ # {
317
+ # key: "String",
318
+ # value: "String",
319
+ # },
320
+ # ],
321
+ # })
322
+ # @param [Hash] options ({})
323
+ # @option options [Boolean] :dry_run
324
+ # Checks whether you have the required permissions for the action,
325
+ # without actually making the request, and provides an error response.
326
+ # If you have the required permissions, the error response is
327
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
328
+ # @option options [Array<Types::Tag>] :tags
329
+ # The tags to delete. Specify a tag key and an optional tag value to
330
+ # delete specific tags. If you specify a tag key without a tag value, we
331
+ # delete any tag with this key regardless of its value. If you specify a
332
+ # tag key with an empty string as the tag value, we delete the tag only
333
+ # if its value is an empty string.
334
+ #
335
+ # If you omit this parameter, we delete all user-defined tags for the
336
+ # specified resources. We do not delete AWS-generated tags (tags that
337
+ # have the `aws:` prefix).
338
+ # @return [Tag::Collection]
339
+ def delete_tags(options = {})
340
+ batch = []
341
+ options = Aws::Util.deep_merge(options, resources: [@id])
342
+ resp = @client.delete_tags(options)
343
+ options[:tags].each do |t|
344
+ batch << Tag.new(
345
+ resource_id: @id,
346
+ key: t[:key],
347
+ value: t[:value],
348
+ client: @client
349
+ )
350
+ end
351
+ Tag::Collection.new([batch], size: batch.size)
352
+ end
353
+
311
354
  # @example Request syntax with placeholder values
312
355
  #
313
356
  # nat_gateway.delete()