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.
@@ -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()