aws-sdk-costexplorer 1.75.0 → 1.76.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 470bcc7b6972d26bd4ea09f8eb6f15d64d398deee333b1741081f5a279a3ce63
4
- data.tar.gz: 416d781a7433532c07f193e6fda303327e9c1f7bb6a13ca137ae6e7114bb3693
3
+ metadata.gz: 731df5b0c2b9d12a2f4167180a9f8e873d211affecfb9c24693f0c48bdf66be6
4
+ data.tar.gz: 0bc68fa5280044aad05fa86006ed67ef18c1bb36c8efdb4fcaab428410a26fd5
5
5
  SHA512:
6
- metadata.gz: 44ac8dfdbadac981fbf2f6bfc7fe247c3c245fc14f943a9e4458bf237654ea1174c23719f4bd3a7e91d2d2fae3157661beb576775e2f035679b72bf50a878105
7
- data.tar.gz: d30f0e7fb7697aff0dc55679fcd0b0f7d916a341b7f8fdb20495693d95e2cae66ca73e3982c80b0739c932ccdd7d962171842ee306877e0eb5df470dc442e21d
6
+ metadata.gz: 1258437f2e8456f5a3ebbc4eb49b48527a2bb58cf8d5283d092ce03216f03e1006c5f56f49d51c1c1b994e0232bb0793390c3990dbbcad9562546425712dae01
7
+ data.tar.gz: 8dae4539aa3350583969caec83007a991f4b9bcdb60afd965f9ab0c22d952e326e62d5113fd9a01d7d87d6e1e781d84283413b299fab4f39cce7b9dd312b89fa
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.76.0 (2022-03-22)
5
+ ------------------
6
+
7
+ * Feature - Added three new APIs to support tagging and resource-level authorization on Cost Explorer resources: TagResource, UntagResource, ListTagsForResource. Added optional parameters to CreateCostCategoryDefinition, CreateAnomalySubscription and CreateAnomalyMonitor APIs to support Tag On Create.
8
+
4
9
  1.75.0 (2022-02-24)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.75.0
1
+ 1.76.0
@@ -367,6 +367,36 @@ module Aws::CostExplorer
367
367
  # @option params [required, Types::AnomalyMonitor] :anomaly_monitor
368
368
  # The cost anomaly detection monitor object that you want to create.
369
369
  #
370
+ # @option params [Array<Types::ResourceTag>] :resource_tags
371
+ # An optional list of tags to associate with the specified [
372
+ # `AnomalyMonitor` ][1]. You can use resource tags to control access to
373
+ # your monitor using IAM policies.
374
+ #
375
+ # Each tag consists of a key and a value, and each key must be unique
376
+ # for the resource. The following restrictions apply to resource tags:
377
+ #
378
+ # * Although the maximum number of array members is 200, you can assign
379
+ # a maximum of 50 user-tags to one resource. The remaining are
380
+ # reserved for Amazon Web Services use
381
+ #
382
+ # * The maximum length of a key is 128 characters
383
+ #
384
+ # * The maximum length of a value is 256 characters
385
+ #
386
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
387
+ # `_.:/=+-`
388
+ #
389
+ # * Keys and values are case sensitive
390
+ #
391
+ # * Keys and values are trimmed for any leading or trailing whitespaces
392
+ #
393
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
394
+ # for Amazon Web Services use
395
+ #
396
+ #
397
+ #
398
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
399
+ #
370
400
  # @return [Types::CreateAnomalyMonitorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
371
401
  #
372
402
  # * {Types::CreateAnomalyMonitorResponse#monitor_arn #monitor_arn} => String
@@ -414,6 +444,12 @@ module Aws::CostExplorer
414
444
  # },
415
445
  # dimensional_value_count: 1,
416
446
  # },
447
+ # resource_tags: [
448
+ # {
449
+ # key: "ResourceTagKey", # required
450
+ # value: "ResourceTagValue", # required
451
+ # },
452
+ # ],
417
453
  # })
418
454
  #
419
455
  # @example Response structure
@@ -437,6 +473,36 @@ module Aws::CostExplorer
437
473
  # @option params [required, Types::AnomalySubscription] :anomaly_subscription
438
474
  # The cost anomaly subscription object that you want to create.
439
475
  #
476
+ # @option params [Array<Types::ResourceTag>] :resource_tags
477
+ # An optional list of tags to associate with the specified [
478
+ # `AnomalySubscription` ][1]. You can use resource tags to control
479
+ # access to your `subscription` using IAM policies.
480
+ #
481
+ # Each tag consists of a key and a value, and each key must be unique
482
+ # for the resource. The following restrictions apply to resource tags:
483
+ #
484
+ # * Although the maximum number of array members is 200, you can assign
485
+ # a maximum of 50 user-tags to one resource. The remaining are
486
+ # reserved for Amazon Web Services use
487
+ #
488
+ # * The maximum length of a key is 128 characters
489
+ #
490
+ # * The maximum length of a value is 256 characters
491
+ #
492
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
493
+ # `_.:/=+-`
494
+ #
495
+ # * Keys and values are case sensitive
496
+ #
497
+ # * Keys and values are trimmed for any leading or trailing whitespaces
498
+ #
499
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
500
+ # for Amazon Web Services use
501
+ #
502
+ #
503
+ #
504
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
505
+ #
440
506
  # @return [Types::CreateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
441
507
  #
442
508
  # * {Types::CreateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
@@ -459,6 +525,12 @@ module Aws::CostExplorer
459
525
  # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
460
526
  # subscription_name: "GenericString", # required
461
527
  # },
528
+ # resource_tags: [
529
+ # {
530
+ # key: "ResourceTagKey", # required
531
+ # value: "ResourceTagValue", # required
532
+ # },
533
+ # ],
462
534
  # })
463
535
  #
464
536
  # @example Response structure
@@ -497,6 +569,36 @@ module Aws::CostExplorer
497
569
  # The split charge rules used to allocate your charges between your Cost
498
570
  # Category values.
499
571
  #
572
+ # @option params [Array<Types::ResourceTag>] :resource_tags
573
+ # An optional list of tags to associate with the specified [
574
+ # `CostCategory` ][1]. You can use resource tags to control access to
575
+ # your `cost category` using IAM policies.
576
+ #
577
+ # Each tag consists of a key and a value, and each key must be unique
578
+ # for the resource. The following restrictions apply to resource tags:
579
+ #
580
+ # * Although the maximum number of array members is 200, you can assign
581
+ # a maximum of 50 user-tags to one resource. The remaining are
582
+ # reserved for Amazon Web Services use
583
+ #
584
+ # * The maximum length of a key is 128 characters
585
+ #
586
+ # * The maximum length of a value is 256 characters
587
+ #
588
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
589
+ # `_.:/=+-`
590
+ #
591
+ # * Keys and values are case sensitive
592
+ #
593
+ # * Keys and values are trimmed for any leading or trailing whitespaces
594
+ #
595
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
596
+ # for Amazon Web Services use
597
+ #
598
+ #
599
+ #
600
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
601
+ #
500
602
  # @return [Types::CreateCostCategoryDefinitionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
501
603
  #
502
604
  # * {Types::CreateCostCategoryDefinitionResponse#cost_category_arn #cost_category_arn} => String
@@ -561,6 +663,12 @@ module Aws::CostExplorer
561
663
  # ],
562
664
  # },
563
665
  # ],
666
+ # resource_tags: [
667
+ # {
668
+ # key: "ResourceTagKey", # required
669
+ # value: "ResourceTagValue", # required
670
+ # },
671
+ # ],
564
672
  # })
565
673
  #
566
674
  # @example Response structure
@@ -978,11 +1086,12 @@ module Aws::CostExplorer
978
1086
  # You can nest `Expression` objects to define any combination of
979
1087
  # dimension filters. For more information, see [Expression][1].
980
1088
  #
981
- # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
982
- # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`.
1089
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
1090
+ # `CASE_SENSITIVE`.
983
1091
  #
984
- # The default values are `EQUALS` and `CASE_SENSITIVE`. Valid values for
985
- # `MatchOptions` for `Dimensions` are `EQUALS` and `CASE_SENSITIVE`.
1092
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
1093
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are `EQUALS`
1094
+ # and `CASE_SENSITIVE`.
986
1095
  #
987
1096
  #
988
1097
  #
@@ -1166,11 +1275,12 @@ module Aws::CostExplorer
1166
1275
  # group by or filter by a `ResourceId`. It requires the [Expression][1]
1167
1276
  # `"SERVICE = Amazon Elastic Compute Cloud - Compute"` in the filter.
1168
1277
  #
1169
- # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
1170
- # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`.
1278
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
1279
+ # `CASE_SENSITIVE`.
1171
1280
  #
1172
- # The default values are `EQUALS` and `CASE_SENSITIVE`. Valid values for
1173
- # `MatchOptions` for `Dimensions` are `EQUALS` and `CASE_SENSITIVE`.
1281
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
1282
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are `EQUALS`
1283
+ # and `CASE_SENSITIVE`.
1174
1284
  #
1175
1285
  #
1176
1286
  #
@@ -4003,6 +4113,42 @@ module Aws::CostExplorer
4003
4113
  req.send_request(options)
4004
4114
  end
4005
4115
 
4116
+ # Returns a list of resource tags associated with the resource specified
4117
+ # by the Amazon Resource Name (ARN).
4118
+ #
4119
+ # @option params [required, String] :resource_arn
4120
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4121
+ # supported resources, see [ResourceTag][1].
4122
+ #
4123
+ #
4124
+ #
4125
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4126
+ #
4127
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4128
+ #
4129
+ # * {Types::ListTagsForResourceResponse#resource_tags #resource_tags} => Array&lt;Types::ResourceTag&gt;
4130
+ #
4131
+ # @example Request syntax with placeholder values
4132
+ #
4133
+ # resp = client.list_tags_for_resource({
4134
+ # resource_arn: "Arn", # required
4135
+ # })
4136
+ #
4137
+ # @example Response structure
4138
+ #
4139
+ # resp.resource_tags #=> Array
4140
+ # resp.resource_tags[0].key #=> String
4141
+ # resp.resource_tags[0].value #=> String
4142
+ #
4143
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResource AWS API Documentation
4144
+ #
4145
+ # @overload list_tags_for_resource(params = {})
4146
+ # @param [Hash] params ({})
4147
+ def list_tags_for_resource(params = {}, options = {})
4148
+ req = build_request(:list_tags_for_resource, params)
4149
+ req.send_request(options)
4150
+ end
4151
+
4006
4152
  # Modifies the feedback property of a given cost anomaly.
4007
4153
  #
4008
4154
  # @option params [required, String] :anomaly_id
@@ -4036,8 +4182,110 @@ module Aws::CostExplorer
4036
4182
  req.send_request(options)
4037
4183
  end
4038
4184
 
4185
+ # An API operation for adding one or more tags (key-value pairs) to a
4186
+ # resource.
4187
+ #
4188
+ # You can use the `TagResource` operation with a resource that already
4189
+ # has tags. If you specify a new tag key for the resource, this tag is
4190
+ # appended to the list of tags associated with the resource. If you
4191
+ # specify a tag key that is already associated with the resource, the
4192
+ # new tag value you specify replaces the previous value for that tag.
4193
+ #
4194
+ # Although the maximum number of array members is 200, user-tag maximum
4195
+ # is 50. The remaining are reserved for Amazon Web Services use.
4196
+ #
4197
+ # @option params [required, String] :resource_arn
4198
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4199
+ # supported resources, see [ResourceTag][1].
4200
+ #
4201
+ #
4202
+ #
4203
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4204
+ #
4205
+ # @option params [required, Array<Types::ResourceTag>] :resource_tags
4206
+ # A list of tag key-value pairs to be added to the resource.
4207
+ #
4208
+ # Each tag consists of a key and a value, and each key must be unique
4209
+ # for the resource. The following restrictions apply to resource tags:
4210
+ #
4211
+ # * Although the maximum number of array members is 200, you can assign
4212
+ # a maximum of 50 user-tags to one resource. The remaining are
4213
+ # reserved for Amazon Web Services use
4214
+ #
4215
+ # * The maximum length of a key is 128 characters
4216
+ #
4217
+ # * The maximum length of a value is 256 characters
4218
+ #
4219
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
4220
+ # `_.:/=+-`
4221
+ #
4222
+ # * Keys and values are case sensitive
4223
+ #
4224
+ # * Keys and values are trimmed for any leading or trailing whitespaces
4225
+ #
4226
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
4227
+ # for Amazon Web Services use
4228
+ #
4229
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4230
+ #
4231
+ # @example Request syntax with placeholder values
4232
+ #
4233
+ # resp = client.tag_resource({
4234
+ # resource_arn: "Arn", # required
4235
+ # resource_tags: [ # required
4236
+ # {
4237
+ # key: "ResourceTagKey", # required
4238
+ # value: "ResourceTagValue", # required
4239
+ # },
4240
+ # ],
4241
+ # })
4242
+ #
4243
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResource AWS API Documentation
4244
+ #
4245
+ # @overload tag_resource(params = {})
4246
+ # @param [Hash] params ({})
4247
+ def tag_resource(params = {}, options = {})
4248
+ req = build_request(:tag_resource, params)
4249
+ req.send_request(options)
4250
+ end
4251
+
4252
+ # Removes one or more tags from a resource. Specify only tag key(s) in
4253
+ # your request. Do not specify the value.
4254
+ #
4255
+ # @option params [required, String] :resource_arn
4256
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4257
+ # supported resources, see [ResourceTag][1].
4258
+ #
4259
+ #
4260
+ #
4261
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4262
+ #
4263
+ # @option params [required, Array<String>] :resource_tag_keys
4264
+ # A list of tag keys associated with tags that need to be removed from
4265
+ # the resource. If you specify a tag key that does not exist, it is
4266
+ # ignored. Although the maximum number of array members is 200, user-tag
4267
+ # maximum is 50. The remaining are reserved for Amazon Web Services use.
4268
+ #
4269
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4270
+ #
4271
+ # @example Request syntax with placeholder values
4272
+ #
4273
+ # resp = client.untag_resource({
4274
+ # resource_arn: "Arn", # required
4275
+ # resource_tag_keys: ["ResourceTagKey"], # required
4276
+ # })
4277
+ #
4278
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResource AWS API Documentation
4279
+ #
4280
+ # @overload untag_resource(params = {})
4281
+ # @param [Hash] params ({})
4282
+ def untag_resource(params = {}, options = {})
4283
+ req = build_request(:untag_resource, params)
4284
+ req.send_request(options)
4285
+ end
4286
+
4039
4287
  # Updates an existing cost anomaly monitor. The changes made are applied
4040
- # going forward, and doesn'tt change anomalies detected in the past.
4288
+ # going forward, and doesn't change anomalies detected in the past.
4041
4289
  #
4042
4290
  # @option params [required, String] :monitor_arn
4043
4291
  # Cost anomaly monitor Amazon Resource Names (ARNs).
@@ -4243,7 +4491,7 @@ module Aws::CostExplorer
4243
4491
  params: params,
4244
4492
  config: config)
4245
4493
  context[:gem_name] = 'aws-sdk-costexplorer'
4246
- context[:gem_version] = '1.75.0'
4494
+ context[:gem_version] = '1.76.0'
4247
4495
  Seahorse::Client::Request.new(handlers, context)
4248
4496
  end
4249
4497
 
@@ -159,6 +159,8 @@ module Aws::CostExplorer
159
159
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
160
160
  ListCostCategoryDefinitionsRequest = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsRequest')
161
161
  ListCostCategoryDefinitionsResponse = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsResponse')
162
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
163
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
162
164
  LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
163
165
  MatchOption = Shapes::StringShape.new(name: 'MatchOption')
164
166
  MatchOptions = Shapes::ListShape.new(name: 'MatchOptions')
@@ -217,6 +219,11 @@ module Aws::CostExplorer
217
219
  ReservedNormalizedUnits = Shapes::StringShape.new(name: 'ReservedNormalizedUnits')
218
220
  ResourceDetails = Shapes::StructureShape.new(name: 'ResourceDetails')
219
221
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
222
+ ResourceTag = Shapes::StructureShape.new(name: 'ResourceTag')
223
+ ResourceTagKey = Shapes::StringShape.new(name: 'ResourceTagKey')
224
+ ResourceTagKeyList = Shapes::ListShape.new(name: 'ResourceTagKeyList')
225
+ ResourceTagList = Shapes::ListShape.new(name: 'ResourceTagList')
226
+ ResourceTagValue = Shapes::StringShape.new(name: 'ResourceTagValue')
220
227
  ResourceUtilization = Shapes::StructureShape.new(name: 'ResourceUtilization')
221
228
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
222
229
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
@@ -263,12 +270,15 @@ module Aws::CostExplorer
263
270
  SupportedSavingsPlansType = Shapes::StringShape.new(name: 'SupportedSavingsPlansType')
264
271
  TagKey = Shapes::StringShape.new(name: 'TagKey')
265
272
  TagList = Shapes::ListShape.new(name: 'TagList')
273
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
274
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
266
275
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
267
276
  TagValuesList = Shapes::ListShape.new(name: 'TagValuesList')
268
277
  TargetInstance = Shapes::StructureShape.new(name: 'TargetInstance')
269
278
  TargetInstancesList = Shapes::ListShape.new(name: 'TargetInstancesList')
270
279
  TermInYears = Shapes::StringShape.new(name: 'TermInYears')
271
280
  TerminateRecommendationDetail = Shapes::StructureShape.new(name: 'TerminateRecommendationDetail')
281
+ TooManyTagsException = Shapes::StructureShape.new(name: 'TooManyTagsException')
272
282
  TotalActualHours = Shapes::StringShape.new(name: 'TotalActualHours')
273
283
  TotalActualUnits = Shapes::StringShape.new(name: 'TotalActualUnits')
274
284
  TotalAmortizedFee = Shapes::StringShape.new(name: 'TotalAmortizedFee')
@@ -280,6 +290,8 @@ module Aws::CostExplorer
280
290
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
281
291
  UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
282
292
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
293
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
294
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
283
295
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
284
296
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
285
297
  UpdateAnomalyMonitorRequest = Shapes::StructureShape.new(name: 'UpdateAnomalyMonitorRequest')
@@ -444,12 +456,14 @@ module Aws::CostExplorer
444
456
  CoveragesByTime.member = Shapes::ShapeRef.new(shape: CoverageByTime)
445
457
 
446
458
  CreateAnomalyMonitorRequest.add_member(:anomaly_monitor, Shapes::ShapeRef.new(shape: AnomalyMonitor, required: true, location_name: "AnomalyMonitor"))
459
+ CreateAnomalyMonitorRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
447
460
  CreateAnomalyMonitorRequest.struct_class = Types::CreateAnomalyMonitorRequest
448
461
 
449
462
  CreateAnomalyMonitorResponse.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "MonitorArn"))
450
463
  CreateAnomalyMonitorResponse.struct_class = Types::CreateAnomalyMonitorResponse
451
464
 
452
465
  CreateAnomalySubscriptionRequest.add_member(:anomaly_subscription, Shapes::ShapeRef.new(shape: AnomalySubscription, required: true, location_name: "AnomalySubscription"))
466
+ CreateAnomalySubscriptionRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
453
467
  CreateAnomalySubscriptionRequest.struct_class = Types::CreateAnomalySubscriptionRequest
454
468
 
455
469
  CreateAnomalySubscriptionResponse.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
@@ -460,6 +474,7 @@ module Aws::CostExplorer
460
474
  CreateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
461
475
  CreateCostCategoryDefinitionRequest.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
462
476
  CreateCostCategoryDefinitionRequest.add_member(:split_charge_rules, Shapes::ShapeRef.new(shape: CostCategorySplitChargeRulesList, location_name: "SplitChargeRules"))
477
+ CreateCostCategoryDefinitionRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
463
478
  CreateCostCategoryDefinitionRequest.struct_class = Types::CreateCostCategoryDefinitionRequest
464
479
 
465
480
  CreateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
@@ -881,6 +896,12 @@ module Aws::CostExplorer
881
896
  ListCostCategoryDefinitionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
882
897
  ListCostCategoryDefinitionsResponse.struct_class = Types::ListCostCategoryDefinitionsResponse
883
898
 
899
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
900
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
901
+
902
+ ListTagsForResourceResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
903
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
904
+
884
905
  MatchOptions.member = Shapes::ShapeRef.new(shape: MatchOption)
885
906
 
886
907
  MetricNames.member = Shapes::ShapeRef.new(shape: MetricName)
@@ -1013,8 +1034,17 @@ module Aws::CostExplorer
1013
1034
  ResourceDetails.struct_class = Types::ResourceDetails
1014
1035
 
1015
1036
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1037
+ ResourceNotFoundException.add_member(:resource_name, Shapes::ShapeRef.new(shape: Arn, location_name: "ResourceName"))
1016
1038
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
1017
1039
 
1040
+ ResourceTag.add_member(:key, Shapes::ShapeRef.new(shape: ResourceTagKey, required: true, location_name: "Key"))
1041
+ ResourceTag.add_member(:value, Shapes::ShapeRef.new(shape: ResourceTagValue, required: true, location_name: "Value"))
1042
+ ResourceTag.struct_class = Types::ResourceTag
1043
+
1044
+ ResourceTagKeyList.member = Shapes::ShapeRef.new(shape: ResourceTagKey)
1045
+
1046
+ ResourceTagList.member = Shapes::ShapeRef.new(shape: ResourceTag)
1047
+
1018
1048
  ResourceUtilization.add_member(:ec2_resource_utilization, Shapes::ShapeRef.new(shape: EC2ResourceUtilization, location_name: "EC2ResourceUtilization"))
1019
1049
  ResourceUtilization.struct_class = Types::ResourceUtilization
1020
1050
 
@@ -1185,6 +1215,12 @@ module Aws::CostExplorer
1185
1215
 
1186
1216
  TagList.member = Shapes::ShapeRef.new(shape: Entity)
1187
1217
 
1218
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
1219
+ TagResourceRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, required: true, location_name: "ResourceTags"))
1220
+ TagResourceRequest.struct_class = Types::TagResourceRequest
1221
+
1222
+ TagResourceResponse.struct_class = Types::TagResourceResponse
1223
+
1188
1224
  TagValues.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "Key"))
1189
1225
  TagValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, location_name: "Values"))
1190
1226
  TagValues.add_member(:match_options, Shapes::ShapeRef.new(shape: MatchOptions, location_name: "MatchOptions"))
@@ -1207,6 +1243,10 @@ module Aws::CostExplorer
1207
1243
  TerminateRecommendationDetail.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
1208
1244
  TerminateRecommendationDetail.struct_class = Types::TerminateRecommendationDetail
1209
1245
 
1246
+ TooManyTagsException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1247
+ TooManyTagsException.add_member(:resource_name, Shapes::ShapeRef.new(shape: Arn, location_name: "ResourceName"))
1248
+ TooManyTagsException.struct_class = Types::TooManyTagsException
1249
+
1210
1250
  TotalImpactFilter.add_member(:numeric_operator, Shapes::ShapeRef.new(shape: NumericOperator, required: true, location_name: "NumericOperator"))
1211
1251
  TotalImpactFilter.add_member(:start_value, Shapes::ShapeRef.new(shape: GenericDouble, required: true, location_name: "StartValue"))
1212
1252
  TotalImpactFilter.add_member(:end_value, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "EndValue"))
@@ -1221,6 +1261,12 @@ module Aws::CostExplorer
1221
1261
  UnresolvableUsageUnitException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1222
1262
  UnresolvableUsageUnitException.struct_class = Types::UnresolvableUsageUnitException
1223
1263
 
1264
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
1265
+ UntagResourceRequest.add_member(:resource_tag_keys, Shapes::ShapeRef.new(shape: ResourceTagKeyList, required: true, location_name: "ResourceTagKeys"))
1266
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
1267
+
1268
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
1269
+
1224
1270
  UpdateAnomalyMonitorRequest.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "MonitorArn"))
1225
1271
  UpdateAnomalyMonitorRequest.add_member(:monitor_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonitorName"))
1226
1272
  UpdateAnomalyMonitorRequest.struct_class = Types::UpdateAnomalyMonitorRequest
@@ -1578,6 +1624,16 @@ module Aws::CostExplorer
1578
1624
  )
1579
1625
  end)
1580
1626
 
1627
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1628
+ o.name = "ListTagsForResource"
1629
+ o.http_method = "POST"
1630
+ o.http_request_uri = "/"
1631
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
1632
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
1633
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1634
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1635
+ end)
1636
+
1581
1637
  api.add_operation(:provide_anomaly_feedback, Seahorse::Model::Operation.new.tap do |o|
1582
1638
  o.name = "ProvideAnomalyFeedback"
1583
1639
  o.http_method = "POST"
@@ -1587,6 +1643,27 @@ module Aws::CostExplorer
1587
1643
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1588
1644
  end)
1589
1645
 
1646
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1647
+ o.name = "TagResource"
1648
+ o.http_method = "POST"
1649
+ o.http_request_uri = "/"
1650
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
1651
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
1652
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1653
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1654
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1655
+ end)
1656
+
1657
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
1658
+ o.name = "UntagResource"
1659
+ o.http_method = "POST"
1660
+ o.http_request_uri = "/"
1661
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
1662
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
1663
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1664
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1665
+ end)
1666
+
1590
1667
  api.add_operation(:update_anomaly_monitor, Seahorse::Model::Operation.new.tap do |o|
1591
1668
  o.name = "UpdateAnomalyMonitor"
1592
1669
  o.http_method = "POST"
@@ -34,6 +34,7 @@ module Aws::CostExplorer
34
34
  # * {RequestChangedException}
35
35
  # * {ResourceNotFoundException}
36
36
  # * {ServiceQuotaExceededException}
37
+ # * {TooManyTagsException}
37
38
  # * {UnknownMonitorException}
38
39
  # * {UnknownSubscriptionException}
39
40
  # * {UnresolvableUsageUnitException}
@@ -132,6 +133,11 @@ module Aws::CostExplorer
132
133
  def message
133
134
  @message || @data[:message]
134
135
  end
136
+
137
+ # @return [String]
138
+ def resource_name
139
+ @data[:resource_name]
140
+ end
135
141
  end
136
142
 
137
143
  class ServiceQuotaExceededException < ServiceError
@@ -149,6 +155,26 @@ module Aws::CostExplorer
149
155
  end
150
156
  end
151
157
 
158
+ class TooManyTagsException < ServiceError
159
+
160
+ # @param [Seahorse::Client::RequestContext] context
161
+ # @param [String] message
162
+ # @param [Aws::CostExplorer::Types::TooManyTagsException] data
163
+ def initialize(context, message, data = Aws::EmptyStructure.new)
164
+ super(context, message, data)
165
+ end
166
+
167
+ # @return [String]
168
+ def message
169
+ @message || @data[:message]
170
+ end
171
+
172
+ # @return [String]
173
+ def resource_name
174
+ @data[:resource_name]
175
+ end
176
+ end
177
+
152
178
  class UnknownMonitorException < ServiceError
153
179
 
154
180
  # @param [Seahorse::Client::RequestContext] context
@@ -930,16 +930,55 @@ module Aws::CostExplorer
930
930
  # },
931
931
  # dimensional_value_count: 1,
932
932
  # },
933
+ # resource_tags: [
934
+ # {
935
+ # key: "ResourceTagKey", # required
936
+ # value: "ResourceTagValue", # required
937
+ # },
938
+ # ],
933
939
  # }
934
940
  #
935
941
  # @!attribute [rw] anomaly_monitor
936
942
  # The cost anomaly detection monitor object that you want to create.
937
943
  # @return [Types::AnomalyMonitor]
938
944
  #
945
+ # @!attribute [rw] resource_tags
946
+ # An optional list of tags to associate with the specified [
947
+ # `AnomalyMonitor` ][1]. You can use resource tags to control access
948
+ # to your monitor using IAM policies.
949
+ #
950
+ # Each tag consists of a key and a value, and each key must be unique
951
+ # for the resource. The following restrictions apply to resource tags:
952
+ #
953
+ # * Although the maximum number of array members is 200, you can
954
+ # assign a maximum of 50 user-tags to one resource. The remaining
955
+ # are reserved for Amazon Web Services use
956
+ #
957
+ # * The maximum length of a key is 128 characters
958
+ #
959
+ # * The maximum length of a value is 256 characters
960
+ #
961
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
962
+ # `_.:/=+-`
963
+ #
964
+ # * Keys and values are case sensitive
965
+ #
966
+ # * Keys and values are trimmed for any leading or trailing
967
+ # whitespaces
968
+ #
969
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
970
+ # reserved for Amazon Web Services use
971
+ #
972
+ #
973
+ #
974
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
975
+ # @return [Array<Types::ResourceTag>]
976
+ #
939
977
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitorRequest AWS API Documentation
940
978
  #
941
979
  class CreateAnomalyMonitorRequest < Struct.new(
942
- :anomaly_monitor)
980
+ :anomaly_monitor,
981
+ :resource_tags)
943
982
  SENSITIVE = []
944
983
  include Aws::Structure
945
984
  end
@@ -976,16 +1015,55 @@ module Aws::CostExplorer
976
1015
  # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
977
1016
  # subscription_name: "GenericString", # required
978
1017
  # },
1018
+ # resource_tags: [
1019
+ # {
1020
+ # key: "ResourceTagKey", # required
1021
+ # value: "ResourceTagValue", # required
1022
+ # },
1023
+ # ],
979
1024
  # }
980
1025
  #
981
1026
  # @!attribute [rw] anomaly_subscription
982
1027
  # The cost anomaly subscription object that you want to create.
983
1028
  # @return [Types::AnomalySubscription]
984
1029
  #
1030
+ # @!attribute [rw] resource_tags
1031
+ # An optional list of tags to associate with the specified [
1032
+ # `AnomalySubscription` ][1]. You can use resource tags to control
1033
+ # access to your `subscription` using IAM policies.
1034
+ #
1035
+ # Each tag consists of a key and a value, and each key must be unique
1036
+ # for the resource. The following restrictions apply to resource tags:
1037
+ #
1038
+ # * Although the maximum number of array members is 200, you can
1039
+ # assign a maximum of 50 user-tags to one resource. The remaining
1040
+ # are reserved for Amazon Web Services use
1041
+ #
1042
+ # * The maximum length of a key is 128 characters
1043
+ #
1044
+ # * The maximum length of a value is 256 characters
1045
+ #
1046
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
1047
+ # `_.:/=+-`
1048
+ #
1049
+ # * Keys and values are case sensitive
1050
+ #
1051
+ # * Keys and values are trimmed for any leading or trailing
1052
+ # whitespaces
1053
+ #
1054
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
1055
+ # reserved for Amazon Web Services use
1056
+ #
1057
+ #
1058
+ #
1059
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
1060
+ # @return [Array<Types::ResourceTag>]
1061
+ #
985
1062
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscriptionRequest AWS API Documentation
986
1063
  #
987
1064
  class CreateAnomalySubscriptionRequest < Struct.new(
988
- :anomaly_subscription)
1065
+ :anomaly_subscription,
1066
+ :resource_tags)
989
1067
  SENSITIVE = []
990
1068
  include Aws::Structure
991
1069
  end
@@ -1063,6 +1141,12 @@ module Aws::CostExplorer
1063
1141
  # ],
1064
1142
  # },
1065
1143
  # ],
1144
+ # resource_tags: [
1145
+ # {
1146
+ # key: "ResourceTagKey", # required
1147
+ # value: "ResourceTagValue", # required
1148
+ # },
1149
+ # ],
1066
1150
  # }
1067
1151
  #
1068
1152
  # @!attribute [rw] name
@@ -1091,6 +1175,38 @@ module Aws::CostExplorer
1091
1175
  # Cost Category values.
1092
1176
  # @return [Array<Types::CostCategorySplitChargeRule>]
1093
1177
  #
1178
+ # @!attribute [rw] resource_tags
1179
+ # An optional list of tags to associate with the specified [
1180
+ # `CostCategory` ][1]. You can use resource tags to control access to
1181
+ # your `cost category` using IAM policies.
1182
+ #
1183
+ # Each tag consists of a key and a value, and each key must be unique
1184
+ # for the resource. The following restrictions apply to resource tags:
1185
+ #
1186
+ # * Although the maximum number of array members is 200, you can
1187
+ # assign a maximum of 50 user-tags to one resource. The remaining
1188
+ # are reserved for Amazon Web Services use
1189
+ #
1190
+ # * The maximum length of a key is 128 characters
1191
+ #
1192
+ # * The maximum length of a value is 256 characters
1193
+ #
1194
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
1195
+ # `_.:/=+-`
1196
+ #
1197
+ # * Keys and values are case sensitive
1198
+ #
1199
+ # * Keys and values are trimmed for any leading or trailing
1200
+ # whitespaces
1201
+ #
1202
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
1203
+ # reserved for Amazon Web Services use
1204
+ #
1205
+ #
1206
+ #
1207
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
1208
+ # @return [Array<Types::ResourceTag>]
1209
+ #
1094
1210
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionRequest AWS API Documentation
1095
1211
  #
1096
1212
  class CreateCostCategoryDefinitionRequest < Struct.new(
@@ -1098,7 +1214,8 @@ module Aws::CostExplorer
1098
1214
  :rule_version,
1099
1215
  :rules,
1100
1216
  :default_value,
1101
- :split_charge_rules)
1217
+ :split_charge_rules,
1218
+ :resource_tags)
1102
1219
  SENSITIVE = []
1103
1220
  include Aws::Structure
1104
1221
  end
@@ -2230,13 +2347,13 @@ module Aws::CostExplorer
2230
2347
  # service. You can nest `Expression` objects to define any combination
2231
2348
  # of dimension filters. For more information, see [Expression][1].
2232
2349
  #
2233
- # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2234
- # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`.
2235
- #
2236
- # The default values are `EQUALS` and `CASE_SENSITIVE`. Valid values
2237
- # for `MatchOptions` for `Dimensions` are `EQUALS` and
2350
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
2238
2351
  # `CASE_SENSITIVE`.
2239
2352
  #
2353
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2354
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are
2355
+ # `EQUALS` and `CASE_SENSITIVE`.
2356
+ #
2240
2357
  #
2241
2358
  #
2242
2359
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -2410,13 +2527,13 @@ module Aws::CostExplorer
2410
2527
  # [Expression][1] `"SERVICE = Amazon Elastic Compute Cloud - Compute"`
2411
2528
  # in the filter.
2412
2529
  #
2413
- # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2414
- # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`.
2415
- #
2416
- # The default values are `EQUALS` and `CASE_SENSITIVE`. Valid values
2417
- # for `MatchOptions` for `Dimensions` are `EQUALS` and
2530
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
2418
2531
  # `CASE_SENSITIVE`.
2419
2532
  #
2533
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2534
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are
2535
+ # `EQUALS` and `CASE_SENSITIVE`.
2536
+ #
2420
2537
  #
2421
2538
  #
2422
2539
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -5302,6 +5419,42 @@ module Aws::CostExplorer
5302
5419
  include Aws::Structure
5303
5420
  end
5304
5421
 
5422
+ # @note When making an API call, you may pass ListTagsForResourceRequest
5423
+ # data as a hash:
5424
+ #
5425
+ # {
5426
+ # resource_arn: "Arn", # required
5427
+ # }
5428
+ #
5429
+ # @!attribute [rw] resource_arn
5430
+ # The Amazon Resource Name (ARN) of the resource. For a list of
5431
+ # supported resources, see [ResourceTag][1].
5432
+ #
5433
+ #
5434
+ #
5435
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
5436
+ # @return [String]
5437
+ #
5438
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResourceRequest AWS API Documentation
5439
+ #
5440
+ class ListTagsForResourceRequest < Struct.new(
5441
+ :resource_arn)
5442
+ SENSITIVE = []
5443
+ include Aws::Structure
5444
+ end
5445
+
5446
+ # @!attribute [rw] resource_tags
5447
+ # A list of tag key value pairs that are associated with the response.
5448
+ # @return [Array<Types::ResourceTag>]
5449
+ #
5450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResourceResponse AWS API Documentation
5451
+ #
5452
+ class ListTagsForResourceResponse < Struct.new(
5453
+ :resource_tags)
5454
+ SENSITIVE = []
5455
+ include Aws::Structure
5456
+ end
5457
+
5305
5458
  # The aggregated value for a metric.
5306
5459
  #
5307
5460
  # @!attribute [rw] amount
@@ -5919,10 +6072,53 @@ module Aws::CostExplorer
5919
6072
  # @!attribute [rw] message
5920
6073
  # @return [String]
5921
6074
  #
6075
+ # @!attribute [rw] resource_name
6076
+ # @return [String]
6077
+ #
5922
6078
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceNotFoundException AWS API Documentation
5923
6079
  #
5924
6080
  class ResourceNotFoundException < Struct.new(
5925
- :message)
6081
+ :message,
6082
+ :resource_name)
6083
+ SENSITIVE = []
6084
+ include Aws::Structure
6085
+ end
6086
+
6087
+ # The tag structure that contains a tag key and value.
6088
+ #
6089
+ # <note markdown="1"> Tagging is supported only for the following Cost Explorer resource
6090
+ # types: [ `AnomalyMonitor` ][1], [ `AnomalySubscription` ][2], [
6091
+ # `CostCategory` ][3].
6092
+ #
6093
+ # </note>
6094
+ #
6095
+ #
6096
+ #
6097
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
6098
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
6099
+ # [3]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
6100
+ #
6101
+ # @note When making an API call, you may pass ResourceTag
6102
+ # data as a hash:
6103
+ #
6104
+ # {
6105
+ # key: "ResourceTagKey", # required
6106
+ # value: "ResourceTagValue", # required
6107
+ # }
6108
+ #
6109
+ # @!attribute [rw] key
6110
+ # The key that is associated with the tag.
6111
+ # @return [String]
6112
+ #
6113
+ # @!attribute [rw] value
6114
+ # The value that is associated with the tag.
6115
+ # @return [String]
6116
+ #
6117
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceTag AWS API Documentation
6118
+ #
6119
+ class ResourceTag < Struct.new(
6120
+ :key,
6121
+ :value)
5926
6122
  SENSITIVE = []
5927
6123
  include Aws::Structure
5928
6124
  end
@@ -6776,6 +6972,67 @@ module Aws::CostExplorer
6776
6972
  include Aws::Structure
6777
6973
  end
6778
6974
 
6975
+ # @note When making an API call, you may pass TagResourceRequest
6976
+ # data as a hash:
6977
+ #
6978
+ # {
6979
+ # resource_arn: "Arn", # required
6980
+ # resource_tags: [ # required
6981
+ # {
6982
+ # key: "ResourceTagKey", # required
6983
+ # value: "ResourceTagValue", # required
6984
+ # },
6985
+ # ],
6986
+ # }
6987
+ #
6988
+ # @!attribute [rw] resource_arn
6989
+ # The Amazon Resource Name (ARN) of the resource. For a list of
6990
+ # supported resources, see [ResourceTag][1].
6991
+ #
6992
+ #
6993
+ #
6994
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
6995
+ # @return [String]
6996
+ #
6997
+ # @!attribute [rw] resource_tags
6998
+ # A list of tag key-value pairs to be added to the resource.
6999
+ #
7000
+ # Each tag consists of a key and a value, and each key must be unique
7001
+ # for the resource. The following restrictions apply to resource tags:
7002
+ #
7003
+ # * Although the maximum number of array members is 200, you can
7004
+ # assign a maximum of 50 user-tags to one resource. The remaining
7005
+ # are reserved for Amazon Web Services use
7006
+ #
7007
+ # * The maximum length of a key is 128 characters
7008
+ #
7009
+ # * The maximum length of a value is 256 characters
7010
+ #
7011
+ # * Valid characters for keys and values are: `A-Z`, `a-z`, spaces,
7012
+ # `_.:/=+-`
7013
+ #
7014
+ # * Keys and values are case sensitive
7015
+ #
7016
+ # * Keys and values are trimmed for any leading or trailing
7017
+ # whitespaces
7018
+ #
7019
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
7020
+ # reserved for Amazon Web Services use
7021
+ # @return [Array<Types::ResourceTag>]
7022
+ #
7023
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResourceRequest AWS API Documentation
7024
+ #
7025
+ class TagResourceRequest < Struct.new(
7026
+ :resource_arn,
7027
+ :resource_tags)
7028
+ SENSITIVE = []
7029
+ include Aws::Structure
7030
+ end
7031
+
7032
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResourceResponse AWS API Documentation
7033
+ #
7034
+ class TagResourceResponse < Aws::EmptyStructure; end
7035
+
6779
7036
  # The values that are available for a tag.
6780
7037
  #
6781
7038
  # If `Values` and `Key` aren't specified, the `ABSENT` `MatchOption` is
@@ -6890,6 +7147,24 @@ module Aws::CostExplorer
6890
7147
  include Aws::Structure
6891
7148
  end
6892
7149
 
7150
+ # Can occur if you specify a number of tags for a resource greater than
7151
+ # the maximum 50 user tags per resource.
7152
+ #
7153
+ # @!attribute [rw] message
7154
+ # @return [String]
7155
+ #
7156
+ # @!attribute [rw] resource_name
7157
+ # @return [String]
7158
+ #
7159
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TooManyTagsException AWS API Documentation
7160
+ #
7161
+ class TooManyTagsException < Struct.new(
7162
+ :message,
7163
+ :resource_name)
7164
+ SENSITIVE = []
7165
+ include Aws::Structure
7166
+ end
7167
+
6893
7168
  # Filters cost anomalies based on the total impact.
6894
7169
  #
6895
7170
  # @note When making an API call, you may pass TotalImpactFilter
@@ -6964,6 +7239,44 @@ module Aws::CostExplorer
6964
7239
  include Aws::Structure
6965
7240
  end
6966
7241
 
7242
+ # @note When making an API call, you may pass UntagResourceRequest
7243
+ # data as a hash:
7244
+ #
7245
+ # {
7246
+ # resource_arn: "Arn", # required
7247
+ # resource_tag_keys: ["ResourceTagKey"], # required
7248
+ # }
7249
+ #
7250
+ # @!attribute [rw] resource_arn
7251
+ # The Amazon Resource Name (ARN) of the resource. For a list of
7252
+ # supported resources, see [ResourceTag][1].
7253
+ #
7254
+ #
7255
+ #
7256
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
7257
+ # @return [String]
7258
+ #
7259
+ # @!attribute [rw] resource_tag_keys
7260
+ # A list of tag keys associated with tags that need to be removed from
7261
+ # the resource. If you specify a tag key that does not exist, it is
7262
+ # ignored. Although the maximum number of array members is 200,
7263
+ # user-tag maximum is 50. The remaining are reserved for Amazon Web
7264
+ # Services use.
7265
+ # @return [Array<String>]
7266
+ #
7267
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResourceRequest AWS API Documentation
7268
+ #
7269
+ class UntagResourceRequest < Struct.new(
7270
+ :resource_arn,
7271
+ :resource_tag_keys)
7272
+ SENSITIVE = []
7273
+ include Aws::Structure
7274
+ end
7275
+
7276
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResourceResponse AWS API Documentation
7277
+ #
7278
+ class UntagResourceResponse < Aws::EmptyStructure; end
7279
+
6967
7280
  # @note When making an API call, you may pass UpdateAnomalyMonitorRequest
6968
7281
  # data as a hash:
6969
7282
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-costexplorer/customizations'
48
48
  # @!group service
49
49
  module Aws::CostExplorer
50
50
 
51
- GEM_VERSION = '1.75.0'
51
+ GEM_VERSION = '1.76.0'
52
52
 
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-costexplorer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.75.0
4
+ version: 1.76.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-24 00:00:00.000000000 Z
11
+ date: 2022-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core