aws-sdk-costexplorer 1.69.0 → 1.92.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.
@@ -26,8 +26,8 @@ module Aws::CostExplorer
26
26
  # @return [String]
27
27
  #
28
28
  # @!attribute [rw] dimension_value
29
- # The dimension for the anomaly (for example, an Amazon Web Services
30
- # service in a service monitor).
29
+ # The dimension for the anomaly (for example, an Amazon Web Service in
30
+ # a service monitor).
31
31
  # @return [String]
32
32
  #
33
33
  # @!attribute [rw] root_causes
@@ -69,14 +69,6 @@ module Aws::CostExplorer
69
69
 
70
70
  # The time period for an anomaly.
71
71
  #
72
- # @note When making an API call, you may pass AnomalyDateInterval
73
- # data as a hash:
74
- #
75
- # {
76
- # start_date: "YearMonthDay", # required
77
- # end_date: "YearMonthDay",
78
- # }
79
- #
80
72
  # @!attribute [rw] start_date
81
73
  # The first date an anomaly was observed.
82
74
  # @return [String]
@@ -99,50 +91,6 @@ module Aws::CostExplorer
99
91
  # The content consists of detailed metadata and the current status of
100
92
  # the monitor object.
101
93
  #
102
- # @note When making an API call, you may pass AnomalyMonitor
103
- # data as a hash:
104
- #
105
- # {
106
- # monitor_arn: "GenericString",
107
- # monitor_name: "GenericString", # required
108
- # creation_date: "YearMonthDay",
109
- # last_updated_date: "YearMonthDay",
110
- # last_evaluated_date: "YearMonthDay",
111
- # monitor_type: "DIMENSIONAL", # required, accepts DIMENSIONAL, CUSTOM
112
- # monitor_dimension: "SERVICE", # accepts SERVICE
113
- # monitor_specification: {
114
- # or: [
115
- # {
116
- # # recursive Expression
117
- # },
118
- # ],
119
- # and: [
120
- # {
121
- # # recursive Expression
122
- # },
123
- # ],
124
- # not: {
125
- # # recursive Expression
126
- # },
127
- # dimensions: {
128
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
129
- # values: ["Value"],
130
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
131
- # },
132
- # tags: {
133
- # key: "TagKey",
134
- # values: ["Value"],
135
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
136
- # },
137
- # cost_categories: {
138
- # key: "CostCategoryName",
139
- # values: ["Value"],
140
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
141
- # },
142
- # },
143
- # dimensional_value_count: 1,
144
- # }
145
- #
146
94
  # @!attribute [rw] monitor_arn
147
95
  # The Amazon Resource Name (ARN) value.
148
96
  # @return [String]
@@ -172,46 +120,84 @@ module Aws::CostExplorer
172
120
  # @return [String]
173
121
  #
174
122
  # @!attribute [rw] monitor_specification
175
- # Use `Expression` to filter by cost or by usage. There are two
176
- # patterns:
177
- #
178
- # * Simple dimension values - You can set the dimension name and
179
- # values for the filters that you plan to use. For example, you can
180
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
181
- # `GetRightsizingRecommendation`, the Region is a full name (for
182
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
183
- # is as follows:
184
- #
185
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
186
- # “us-west-1” ] \} \}`
187
- #
188
- # The list of dimension values are OR'd together to retrieve cost
189
- # or usage data. You can create `Expression` and `DimensionValues`
190
- # objects using either `with*` methods or `set*` methods in multiple
191
- # lines.
192
- #
193
- # * Compound dimension values with logical operations - You can use
194
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
195
- # to create a list of one or more `Expression` objects. By doing
196
- # this, you can filter on more advanced options. For example, you
197
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
198
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
199
- # `Expression` for that is as follows:
200
- #
201
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
202
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
203
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
204
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
205
- # \}\}\} ] \} `
123
+ # Use `Expression` to filter in various Cost Explorer APIs.
124
+ #
125
+ # Not all `Expression` types are supported in each API. Refer to the
126
+ # documentation for each specific API to see what is supported.
127
+ #
128
+ # There are two patterns:
129
+ #
130
+ # * Simple dimension values.
131
+ #
132
+ # * There are three types of simple dimension values:
133
+ # `CostCategories`, `Tags`, and `Dimensions`.
134
+ #
135
+ # * Specify the `CostCategories` field to define a filter that
136
+ # acts on Cost Categories.
137
+ #
138
+ # * Specify the `Tags` field to define a filter that acts on Cost
139
+ # Allocation Tags.
140
+ #
141
+ # * Specify the `Dimensions` field to define a filter that acts on
142
+ # the [ `DimensionValues` ][1].
143
+ #
144
+ # * For each filter type, you can set the dimension name and values
145
+ # for the filters that you plan to use.
146
+ #
147
+ # * For example, you can filter for `REGION==us-east-1 OR
148
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
149
+ # Region is a full name (for example, `REGION==US East (N.
150
+ # Virginia)`.
151
+ #
152
+ # * The corresponding `Expression` for this example is as follows:
153
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
154
+ # "us-west-1" ] \} \}`
155
+ #
156
+ # * As shown in the previous example, lists of dimension values
157
+ # are combined with `OR` when applying the filter.
158
+ #
159
+ # * You can also set different match options to further control how
160
+ # the filter behaves. Not all APIs support match options. Refer to
161
+ # the documentation for each specific API to see what is
162
+ # supported.
163
+ #
164
+ # * For example, you can filter for linked account names that
165
+ # start with "a".
166
+ #
167
+ # * The corresponding `Expression` for this example is as follows:
168
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
169
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
170
+ #
171
+ # * Compound `Expression` types with logical operations.
172
+ #
173
+ # * You can use multiple `Expression` types and the logical
174
+ # operators `AND/OR/NOT` to create a list of one or more
175
+ # `Expression` objects. By doing this, you can filter by more
176
+ # advanced options.
177
+ #
178
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
179
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
180
+ # DataTransfer)`.
181
+ #
182
+ # * The corresponding `Expression` for this example is as follows:
183
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
184
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
185
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
186
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
187
+ # ["DataTransfer"] \}\}\} ] \} `
206
188
  #
207
189
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
208
190
  # returns an error if more than one is specified. The following
209
- # example shows an `Expression` object that creates an error.
191
+ # example shows an `Expression` object that creates an error: ` \{
192
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
193
+ # "DataTransfer" ] \} \} `
210
194
  #
211
- # </note>
195
+ # The following is an example of the corresponding error message:
196
+ # `"Expression has more than one roots. Only one root operator is
197
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
198
+ # CostCategories"`
212
199
  #
213
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
214
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
200
+ # </note>
215
201
  #
216
202
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
217
203
  # and NOT isn't supported. OR isn't supported between different
@@ -224,6 +210,10 @@ module Aws::CostExplorer
224
210
  # `LINKED_ACCOUNT`.
225
211
  #
226
212
  # </note>
213
+ #
214
+ #
215
+ #
216
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
227
217
  # @return [Types::Expression]
228
218
  #
229
219
  # @!attribute [rw] dimensional_value_count
@@ -266,29 +256,27 @@ module Aws::CostExplorer
266
256
  include Aws::Structure
267
257
  end
268
258
 
269
- # The association between a monitor, threshold, and list of subscribers
270
- # used to deliver notifications about anomalies detected by a monitor
271
- # that exceeds a threshold. The content consists of the detailed
272
- # metadata and the current status of the `AnomalySubscription` object.
259
+ # An `AnomalySubscription` resource (also referred to as an alert
260
+ # subscription) sends notifications about specific anomalies that meet
261
+ # an alerting criteria defined by you.
262
+ #
263
+ # You can specify the frequency of the alerts and the subscribers to
264
+ # notify.
265
+ #
266
+ # Anomaly subscriptions can be associated with one or more [
267
+ # `AnomalyMonitor` ][1] resources, and they only send notifications
268
+ # about anomalies detected by those associated monitors. You can also
269
+ # configure a threshold to further control which anomalies are included
270
+ # in the notifications.
273
271
  #
274
- # @note When making an API call, you may pass AnomalySubscription
275
- # data as a hash:
272
+ # Anomalies that don’t exceed the chosen threshold and therefore don’t
273
+ # trigger notifications from an anomaly subscription will still be
274
+ # available on the console and from the [ `GetAnomalies` ][2] API.
276
275
  #
277
- # {
278
- # subscription_arn: "GenericString",
279
- # account_id: "GenericString",
280
- # monitor_arn_list: ["Arn"], # required
281
- # subscribers: [ # required
282
- # {
283
- # address: "SubscriberAddress",
284
- # type: "EMAIL", # accepts EMAIL, SNS
285
- # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
286
- # },
287
- # ],
288
- # threshold: 1.0, # required
289
- # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
290
- # subscription_name: "GenericString", # required
291
- # }
276
+ #
277
+ #
278
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
279
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetAnomalies.html
292
280
  #
293
281
  # @!attribute [rw] subscription_arn
294
282
  # The `AnomalySubscription` Amazon Resource Name (ARN).
@@ -307,18 +295,84 @@ module Aws::CostExplorer
307
295
  # @return [Array<Types::Subscriber>]
308
296
  #
309
297
  # @!attribute [rw] threshold
310
- # The dollar value that triggers a notification if the threshold is
311
- # exceeded.
298
+ # (deprecated)
299
+ #
300
+ # An absolute dollar value that must be exceeded by the anomaly's
301
+ # total impact (see [Impact][1] for more details) for an anomaly
302
+ # notification to be generated.
303
+ #
304
+ # This field has been deprecated. To specify a threshold, use
305
+ # ThresholdExpression. Continued use of Threshold will be treated as
306
+ # shorthand syntax for a ThresholdExpression.
307
+ #
308
+ # One of Threshold or ThresholdExpression is required for this
309
+ # resource. You cannot specify both.
310
+ #
311
+ #
312
+ #
313
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html
312
314
  # @return [Float]
313
315
  #
314
316
  # @!attribute [rw] frequency
315
- # The frequency that anomaly reports are sent over email.
317
+ # The frequency that anomaly notifications are sent. Notifications are
318
+ # sent either over email (for DAILY and WEEKLY frequencies) or SNS
319
+ # (for IMMEDIATE frequency). For more information, see [Creating an
320
+ # Amazon SNS topic for anomaly notifications][1].
321
+ #
322
+ #
323
+ #
324
+ # [1]: https://docs.aws.amazon.com/cost-management/latest/userguide/ad-SNS.html
316
325
  # @return [String]
317
326
  #
318
327
  # @!attribute [rw] subscription_name
319
328
  # The name for the subscription.
320
329
  # @return [String]
321
330
  #
331
+ # @!attribute [rw] threshold_expression
332
+ # An [Expression][1] object used to specify the anomalies that you
333
+ # want to generate alerts for. This supports dimensions and nested
334
+ # expressions. The supported dimensions are
335
+ # `ANOMALY_TOTAL_IMPACT_ABSOLUTE` and
336
+ # `ANOMALY_TOTAL_IMPACT_PERCENTAGE`, corresponding to an anomaly’s
337
+ # TotalImpact and TotalImpactPercentage, respectively (see [Impact][2]
338
+ # for more details). The supported nested expression types are `AND`
339
+ # and `OR`. The match option `GREATER_THAN_OR_EQUAL` is required.
340
+ # Values must be numbers between 0 and 10,000,000,000 in string
341
+ # format.
342
+ #
343
+ # One of Threshold or ThresholdExpression is required for this
344
+ # resource. You cannot specify both.
345
+ #
346
+ # The following are examples of valid ThresholdExpressions:
347
+ #
348
+ # * Absolute threshold: `\{ "Dimensions": \{ "Key":
349
+ # "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
350
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
351
+ #
352
+ # * Percentage threshold: `\{ "Dimensions": \{ "Key":
353
+ # "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [
354
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
355
+ #
356
+ # * `AND` two thresholds together: `\{ "And": [ \{ "Dimensions": \{
357
+ # "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
358
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
359
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
360
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ]
361
+ # \} \} ] \}`
362
+ #
363
+ # * `OR` two thresholds together: `\{ "Or": [ \{ "Dimensions": \{
364
+ # "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
365
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
366
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
367
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ]
368
+ # \} \} ] \}`
369
+ #
370
+ #
371
+ #
372
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
373
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html
374
+ # @return [Types::Expression]
375
+ #
322
376
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/AnomalySubscription AWS API Documentation
323
377
  #
324
378
  class AnomalySubscription < Struct.new(
@@ -328,7 +382,8 @@ module Aws::CostExplorer
328
382
  :subscribers,
329
383
  :threshold,
330
384
  :frequency,
331
- :subscription_name)
385
+ :subscription_name,
386
+ :threshold_expression)
332
387
  SENSITIVE = []
333
388
  include Aws::Structure
334
389
  end
@@ -346,6 +401,66 @@ module Aws::CostExplorer
346
401
  include Aws::Structure
347
402
  end
348
403
 
404
+ # The cost allocation tag structure. This includes detailed metadata for
405
+ # the `CostAllocationTag` object.
406
+ #
407
+ # @!attribute [rw] tag_key
408
+ # The key for the cost allocation tag.
409
+ # @return [String]
410
+ #
411
+ # @!attribute [rw] type
412
+ # The type of cost allocation tag. You can use `AWSGenerated` or
413
+ # `UserDefined` type tags. `AWSGenerated` type tags are tags that
414
+ # Amazon Web Services defines and applies to support Amazon Web
415
+ # Services resources for cost allocation purposes. `UserDefined` type
416
+ # tags are tags that you define, create, and apply to resources.
417
+ # @return [String]
418
+ #
419
+ # @!attribute [rw] status
420
+ # The status of a cost allocation tag.
421
+ # @return [String]
422
+ #
423
+ # @!attribute [rw] last_updated_date
424
+ # The last date that the tag was either activated or deactivated.
425
+ # @return [String]
426
+ #
427
+ # @!attribute [rw] last_used_date
428
+ # The last month that the tag was used on an Amazon Web Services
429
+ # resource.
430
+ # @return [String]
431
+ #
432
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostAllocationTag AWS API Documentation
433
+ #
434
+ class CostAllocationTag < Struct.new(
435
+ :tag_key,
436
+ :type,
437
+ :status,
438
+ :last_updated_date,
439
+ :last_used_date)
440
+ SENSITIVE = []
441
+ include Aws::Structure
442
+ end
443
+
444
+ # The cost allocation tag status. The status of a key can either be
445
+ # active or inactive.
446
+ #
447
+ # @!attribute [rw] tag_key
448
+ # The key for the cost allocation tag.
449
+ # @return [String]
450
+ #
451
+ # @!attribute [rw] status
452
+ # The status of a cost allocation tag.
453
+ # @return [String]
454
+ #
455
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostAllocationTagStatusEntry AWS API Documentation
456
+ #
457
+ class CostAllocationTagStatusEntry < Struct.new(
458
+ :tag_key,
459
+ :status)
460
+ SENSITIVE = []
461
+ include Aws::Structure
462
+ end
463
+
349
464
  # The structure of Cost Categories. This includes detailed metadata and
350
465
  # the set of rules for the `CostCategory` object.
351
466
  #
@@ -354,11 +469,11 @@ module Aws::CostExplorer
354
469
  # @return [String]
355
470
  #
356
471
  # @!attribute [rw] effective_start
357
- # The effective state data of your Cost Category.
472
+ # The effective start date of your Cost Category.
358
473
  # @return [String]
359
474
  #
360
475
  # @!attribute [rw] effective_end
361
- # The effective end data of your Cost Category.
476
+ # The effective end date of your Cost Category.
362
477
  # @return [String]
363
478
  #
364
479
  # @!attribute [rw] name
@@ -405,29 +520,21 @@ module Aws::CostExplorer
405
520
  include Aws::Structure
406
521
  end
407
522
 
408
- # When creating or updating a cost category, you can define the
523
+ # When you create or update a cost category, you can define the
409
524
  # `CostCategoryRule` rule type as `INHERITED_VALUE`. This rule type adds
410
- # the flexibility of defining a rule that dynamically inherits the cost
411
- # category value from the dimension value defined by
412
- # `CostCategoryInheritedValueDimension`. For example, if you want to
413
- # dynamically group costs that are based on the value of a specific tag
414
- # key, first choose an inherited value rule type, then choose the tag
415
- # dimension and specify the tag key to use.
416
- #
417
- # @note When making an API call, you may pass CostCategoryInheritedValueDimension
418
- # data as a hash:
419
- #
420
- # {
421
- # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
422
- # dimension_key: "GenericString",
423
- # }
525
+ # the flexibility to define a rule that dynamically inherits the cost
526
+ # category value from the dimension value that's defined by
527
+ # `CostCategoryInheritedValueDimension`. For example, suppose that you
528
+ # want to dynamically group costs that are based on the value of a
529
+ # specific tag key. First, choose an inherited value rule type, and then
530
+ # choose the tag dimension and specify the tag key to use.
424
531
  #
425
532
  # @!attribute [rw] dimension_name
426
533
  # The name of the dimension that's used to group costs.
427
534
  #
428
535
  # If you specify `LINKED_ACCOUNT_NAME`, the cost category value is
429
536
  # based on account name. If you specify `TAG`, the cost category value
430
- # will be based on the value of the specified tag key.
537
+ # is based on the value of the specified tag key.
431
538
  # @return [String]
432
539
  #
433
540
  # @!attribute [rw] dimension_key
@@ -522,48 +629,6 @@ module Aws::CostExplorer
522
629
  # the line item, then the first rule to match is used to determine that
523
630
  # Cost Category value.
524
631
  #
525
- # @note When making an API call, you may pass CostCategoryRule
526
- # data as a hash:
527
- #
528
- # {
529
- # value: "CostCategoryValue",
530
- # rule: {
531
- # or: [
532
- # {
533
- # # recursive Expression
534
- # },
535
- # ],
536
- # and: [
537
- # {
538
- # # recursive Expression
539
- # },
540
- # ],
541
- # not: {
542
- # # recursive Expression
543
- # },
544
- # dimensions: {
545
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
546
- # values: ["Value"],
547
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
548
- # },
549
- # tags: {
550
- # key: "TagKey",
551
- # values: ["Value"],
552
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
553
- # },
554
- # cost_categories: {
555
- # key: "CostCategoryName",
556
- # values: ["Value"],
557
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
558
- # },
559
- # },
560
- # inherited_value: {
561
- # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
562
- # dimension_key: "GenericString",
563
- # },
564
- # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
565
- # }
566
- #
567
632
  # @!attribute [rw] value
568
633
  # The default value for the cost category.
569
634
  # @return [String]
@@ -572,10 +637,7 @@ module Aws::CostExplorer
572
637
  # An [Expression][1] object used to categorize costs. This supports
573
638
  # dimensions, tags, and nested expressions. Currently the only
574
639
  # dimensions supported are `LINKED_ACCOUNT`, `SERVICE_CODE`,
575
- # `RECORD_TYPE`, and `LINKED_ACCOUNT_NAME`.
576
- #
577
- # Root level `OR` isn't supported. We recommend that you create a
578
- # separate rule instead.
640
+ # `RECORD_TYPE`, `LINKED_ACCOUNT_NAME`, `REGION`, and `USAGE_TYPE`.
579
641
  #
580
642
  # `RECORD_TYPE` is a dimension used for Cost Explorer APIs, and is
581
643
  # also supported for Cost Category expressions. This dimension uses
@@ -597,12 +659,13 @@ module Aws::CostExplorer
597
659
  # @!attribute [rw] type
598
660
  # You can define the `CostCategoryRule` rule type as either `REGULAR`
599
661
  # or `INHERITED_VALUE`. The `INHERITED_VALUE` rule type adds the
600
- # flexibility of defining a rule that dynamically inherits the cost
601
- # category value from the dimension value defined by
602
- # `CostCategoryInheritedValueDimension`. For example, if you want to
603
- # dynamically group costs based on the value of a specific tag key,
604
- # first choose an inherited value rule type, then choose the tag
605
- # dimension and specify the tag key to use.
662
+ # flexibility to define a rule that dynamically inherits the cost
663
+ # category value. This value is from the dimension value that's
664
+ # defined by `CostCategoryInheritedValueDimension`. For example,
665
+ # suppose that you want to costs to be dynamically grouped based on
666
+ # the value of a specific tag key. First, choose an inherited value
667
+ # rule type, and then choose the tag dimension and specify the tag key
668
+ # to use.
606
669
  # @return [String]
607
670
  #
608
671
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryRule AWS API Documentation
@@ -619,21 +682,6 @@ module Aws::CostExplorer
619
682
  # Use the split charge rule to split the cost of one Cost Category value
620
683
  # across several other target values.
621
684
  #
622
- # @note When making an API call, you may pass CostCategorySplitChargeRule
623
- # data as a hash:
624
- #
625
- # {
626
- # source: "GenericString", # required
627
- # targets: ["GenericString"], # required
628
- # method: "FIXED", # required, accepts FIXED, PROPORTIONAL, EVEN
629
- # parameters: [
630
- # {
631
- # type: "ALLOCATION_PERCENTAGES", # required, accepts ALLOCATION_PERCENTAGES
632
- # values: ["GenericString"], # required
633
- # },
634
- # ],
635
- # }
636
- #
637
685
  # @!attribute [rw] source
638
686
  # The Cost Category value that you want to split. That value can't be
639
687
  # used as a source or a target in other split charge rules. To
@@ -677,14 +725,6 @@ module Aws::CostExplorer
677
725
 
678
726
  # The parameters for a split charge method.
679
727
  #
680
- # @note When making an API call, you may pass CostCategorySplitChargeRuleParameter
681
- # data as a hash:
682
- #
683
- # {
684
- # type: "ALLOCATION_PERCENTAGES", # required, accepts ALLOCATION_PERCENTAGES
685
- # values: ["GenericString"], # required
686
- # }
687
- #
688
728
  # @!attribute [rw] type
689
729
  # The parameter type.
690
730
  # @return [String]
@@ -712,15 +752,6 @@ module Aws::CostExplorer
712
752
  # `MatchOption` is applied to the Cost Categories `Key` only. That is,
713
753
  # it filters on resources without the given Cost Categories key.
714
754
  #
715
- # @note When making an API call, you may pass CostCategoryValues
716
- # data as a hash:
717
- #
718
- # {
719
- # key: "CostCategoryName",
720
- # values: ["Value"],
721
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
722
- # }
723
- #
724
755
  # @!attribute [rw] key
725
756
  # The unique name of the Cost Category.
726
757
  # @return [String]
@@ -886,60 +917,47 @@ module Aws::CostExplorer
886
917
  include Aws::Structure
887
918
  end
888
919
 
889
- # @note When making an API call, you may pass CreateAnomalyMonitorRequest
890
- # data as a hash:
891
- #
892
- # {
893
- # anomaly_monitor: { # required
894
- # monitor_arn: "GenericString",
895
- # monitor_name: "GenericString", # required
896
- # creation_date: "YearMonthDay",
897
- # last_updated_date: "YearMonthDay",
898
- # last_evaluated_date: "YearMonthDay",
899
- # monitor_type: "DIMENSIONAL", # required, accepts DIMENSIONAL, CUSTOM
900
- # monitor_dimension: "SERVICE", # accepts SERVICE
901
- # monitor_specification: {
902
- # or: [
903
- # {
904
- # # recursive Expression
905
- # },
906
- # ],
907
- # and: [
908
- # {
909
- # # recursive Expression
910
- # },
911
- # ],
912
- # not: {
913
- # # recursive Expression
914
- # },
915
- # dimensions: {
916
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
917
- # values: ["Value"],
918
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
919
- # },
920
- # tags: {
921
- # key: "TagKey",
922
- # values: ["Value"],
923
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
924
- # },
925
- # cost_categories: {
926
- # key: "CostCategoryName",
927
- # values: ["Value"],
928
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
929
- # },
930
- # },
931
- # dimensional_value_count: 1,
932
- # },
933
- # }
934
- #
935
920
  # @!attribute [rw] anomaly_monitor
936
921
  # The cost anomaly detection monitor object that you want to create.
937
922
  # @return [Types::AnomalyMonitor]
938
923
  #
924
+ # @!attribute [rw] resource_tags
925
+ # An optional list of tags to associate with the specified [
926
+ # `AnomalyMonitor` ][1]. You can use resource tags to control access
927
+ # to your `monitor` using IAM policies.
928
+ #
929
+ # Each tag consists of a key and a value, and each key must be unique
930
+ # for the resource. The following restrictions apply to resource tags:
931
+ #
932
+ # * Although the maximum number of array members is 200, you can
933
+ # assign a maximum of 50 user-tags to one resource. The remaining
934
+ # are reserved for Amazon Web Services use
935
+ #
936
+ # * The maximum length of a key is 128 characters
937
+ #
938
+ # * The maximum length of a value is 256 characters
939
+ #
940
+ # * Keys and values can only contain alphanumeric characters, spaces,
941
+ # and any of the following: `_.:/=+@-`
942
+ #
943
+ # * Keys and values are case sensitive
944
+ #
945
+ # * Keys and values are trimmed for any leading or trailing
946
+ # whitespaces
947
+ #
948
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
949
+ # reserved for Amazon Web Services use
950
+ #
951
+ #
952
+ #
953
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
954
+ # @return [Array<Types::ResourceTag>]
955
+ #
939
956
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitorRequest AWS API Documentation
940
957
  #
941
958
  class CreateAnomalyMonitorRequest < Struct.new(
942
- :anomaly_monitor)
959
+ :anomaly_monitor,
960
+ :resource_tags)
943
961
  SENSITIVE = []
944
962
  include Aws::Structure
945
963
  end
@@ -957,35 +975,47 @@ module Aws::CostExplorer
957
975
  include Aws::Structure
958
976
  end
959
977
 
960
- # @note When making an API call, you may pass CreateAnomalySubscriptionRequest
961
- # data as a hash:
962
- #
963
- # {
964
- # anomaly_subscription: { # required
965
- # subscription_arn: "GenericString",
966
- # account_id: "GenericString",
967
- # monitor_arn_list: ["Arn"], # required
968
- # subscribers: [ # required
969
- # {
970
- # address: "SubscriberAddress",
971
- # type: "EMAIL", # accepts EMAIL, SNS
972
- # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
973
- # },
974
- # ],
975
- # threshold: 1.0, # required
976
- # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
977
- # subscription_name: "GenericString", # required
978
- # },
979
- # }
980
- #
981
978
  # @!attribute [rw] anomaly_subscription
982
979
  # The cost anomaly subscription object that you want to create.
983
980
  # @return [Types::AnomalySubscription]
984
981
  #
982
+ # @!attribute [rw] resource_tags
983
+ # An optional list of tags to associate with the specified [
984
+ # `AnomalySubscription` ][1]. You can use resource tags to control
985
+ # access to your `subscription` using IAM policies.
986
+ #
987
+ # Each tag consists of a key and a value, and each key must be unique
988
+ # for the resource. The following restrictions apply to resource tags:
989
+ #
990
+ # * Although the maximum number of array members is 200, you can
991
+ # assign a maximum of 50 user-tags to one resource. The remaining
992
+ # are reserved for Amazon Web Services use
993
+ #
994
+ # * The maximum length of a key is 128 characters
995
+ #
996
+ # * The maximum length of a value is 256 characters
997
+ #
998
+ # * Keys and values can only contain alphanumeric characters, spaces,
999
+ # and any of the following: `_.:/=+@-`
1000
+ #
1001
+ # * Keys and values are case sensitive
1002
+ #
1003
+ # * Keys and values are trimmed for any leading or trailing
1004
+ # whitespaces
1005
+ #
1006
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
1007
+ # reserved for Amazon Web Services use
1008
+ #
1009
+ #
1010
+ #
1011
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
1012
+ # @return [Array<Types::ResourceTag>]
1013
+ #
985
1014
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscriptionRequest AWS API Documentation
986
1015
  #
987
1016
  class CreateAnomalySubscriptionRequest < Struct.new(
988
- :anomaly_subscription)
1017
+ :anomaly_subscription,
1018
+ :resource_tags)
989
1019
  SENSITIVE = []
990
1020
  include Aws::Structure
991
1021
  end
@@ -1003,72 +1033,17 @@ module Aws::CostExplorer
1003
1033
  include Aws::Structure
1004
1034
  end
1005
1035
 
1006
- # @note When making an API call, you may pass CreateCostCategoryDefinitionRequest
1007
- # data as a hash:
1008
- #
1009
- # {
1010
- # name: "CostCategoryName", # required
1011
- # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
1012
- # rules: [ # required
1013
- # {
1014
- # value: "CostCategoryValue",
1015
- # rule: {
1016
- # or: [
1017
- # {
1018
- # # recursive Expression
1019
- # },
1020
- # ],
1021
- # and: [
1022
- # {
1023
- # # recursive Expression
1024
- # },
1025
- # ],
1026
- # not: {
1027
- # # recursive Expression
1028
- # },
1029
- # dimensions: {
1030
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1031
- # values: ["Value"],
1032
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1033
- # },
1034
- # tags: {
1035
- # key: "TagKey",
1036
- # values: ["Value"],
1037
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1038
- # },
1039
- # cost_categories: {
1040
- # key: "CostCategoryName",
1041
- # values: ["Value"],
1042
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1043
- # },
1044
- # },
1045
- # inherited_value: {
1046
- # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
1047
- # dimension_key: "GenericString",
1048
- # },
1049
- # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
1050
- # },
1051
- # ],
1052
- # default_value: "CostCategoryValue",
1053
- # split_charge_rules: [
1054
- # {
1055
- # source: "GenericString", # required
1056
- # targets: ["GenericString"], # required
1057
- # method: "FIXED", # required, accepts FIXED, PROPORTIONAL, EVEN
1058
- # parameters: [
1059
- # {
1060
- # type: "ALLOCATION_PERCENTAGES", # required, accepts ALLOCATION_PERCENTAGES
1061
- # values: ["GenericString"], # required
1062
- # },
1063
- # ],
1064
- # },
1065
- # ],
1066
- # }
1067
- #
1068
1036
  # @!attribute [rw] name
1069
1037
  # The unique name of the Cost Category.
1070
1038
  # @return [String]
1071
1039
  #
1040
+ # @!attribute [rw] effective_start
1041
+ # The Cost Category's effective start date. It can only be a billing
1042
+ # start date (first day of the month). If the date isn't provided,
1043
+ # it's the first day of the current month. Dates can't be before the
1044
+ # previous twelve months, or in the future.
1045
+ # @return [String]
1046
+ #
1072
1047
  # @!attribute [rw] rule_version
1073
1048
  # The rule schema version in this particular Cost Category.
1074
1049
  # @return [String]
@@ -1091,14 +1066,48 @@ module Aws::CostExplorer
1091
1066
  # Cost Category values.
1092
1067
  # @return [Array<Types::CostCategorySplitChargeRule>]
1093
1068
  #
1069
+ # @!attribute [rw] resource_tags
1070
+ # An optional list of tags to associate with the specified [
1071
+ # `CostCategory` ][1]. You can use resource tags to control access to
1072
+ # your `cost category` using IAM policies.
1073
+ #
1074
+ # Each tag consists of a key and a value, and each key must be unique
1075
+ # for the resource. The following restrictions apply to resource tags:
1076
+ #
1077
+ # * Although the maximum number of array members is 200, you can
1078
+ # assign a maximum of 50 user-tags to one resource. The remaining
1079
+ # are reserved for Amazon Web Services use
1080
+ #
1081
+ # * The maximum length of a key is 128 characters
1082
+ #
1083
+ # * The maximum length of a value is 256 characters
1084
+ #
1085
+ # * Keys and values can only contain alphanumeric characters, spaces,
1086
+ # and any of the following: `_.:/=+@-`
1087
+ #
1088
+ # * Keys and values are case sensitive
1089
+ #
1090
+ # * Keys and values are trimmed for any leading or trailing
1091
+ # whitespaces
1092
+ #
1093
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
1094
+ # reserved for Amazon Web Services use
1095
+ #
1096
+ #
1097
+ #
1098
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
1099
+ # @return [Array<Types::ResourceTag>]
1100
+ #
1094
1101
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionRequest AWS API Documentation
1095
1102
  #
1096
1103
  class CreateCostCategoryDefinitionRequest < Struct.new(
1097
1104
  :name,
1105
+ :effective_start,
1098
1106
  :rule_version,
1099
1107
  :rules,
1100
1108
  :default_value,
1101
- :split_charge_rules)
1109
+ :split_charge_rules,
1110
+ :resource_tags)
1102
1111
  SENSITIVE = []
1103
1112
  include Aws::Structure
1104
1113
  end
@@ -1108,7 +1117,8 @@ module Aws::CostExplorer
1108
1117
  # @return [String]
1109
1118
  #
1110
1119
  # @!attribute [rw] effective_start
1111
- # The Cost Category's effective start date.
1120
+ # The Cost Category's effective start date. It can only be a billing
1121
+ # start date (first day of the month).
1112
1122
  # @return [String]
1113
1123
  #
1114
1124
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionResponse AWS API Documentation
@@ -1207,14 +1217,6 @@ module Aws::CostExplorer
1207
1217
 
1208
1218
  # The time period of the request.
1209
1219
  #
1210
- # @note When making an API call, you may pass DateInterval
1211
- # data as a hash:
1212
- #
1213
- # {
1214
- # start: "YearMonthDay", # required
1215
- # end: "YearMonthDay", # required
1216
- # }
1217
- #
1218
1220
  # @!attribute [rw] start
1219
1221
  # The beginning of the time period. The start date is inclusive. For
1220
1222
  # example, if `start` is `2017-01-01`, Amazon Web Services retrieves
@@ -1239,13 +1241,6 @@ module Aws::CostExplorer
1239
1241
  include Aws::Structure
1240
1242
  end
1241
1243
 
1242
- # @note When making an API call, you may pass DeleteAnomalyMonitorRequest
1243
- # data as a hash:
1244
- #
1245
- # {
1246
- # monitor_arn: "GenericString", # required
1247
- # }
1248
- #
1249
1244
  # @!attribute [rw] monitor_arn
1250
1245
  # The unique identifier of the cost anomaly monitor that you want to
1251
1246
  # delete.
@@ -1263,13 +1258,6 @@ module Aws::CostExplorer
1263
1258
  #
1264
1259
  class DeleteAnomalyMonitorResponse < Aws::EmptyStructure; end
1265
1260
 
1266
- # @note When making an API call, you may pass DeleteAnomalySubscriptionRequest
1267
- # data as a hash:
1268
- #
1269
- # {
1270
- # subscription_arn: "GenericString", # required
1271
- # }
1272
- #
1273
1261
  # @!attribute [rw] subscription_arn
1274
1262
  # The unique identifier of the cost anomaly subscription that you want
1275
1263
  # to delete.
@@ -1287,13 +1275,6 @@ module Aws::CostExplorer
1287
1275
  #
1288
1276
  class DeleteAnomalySubscriptionResponse < Aws::EmptyStructure; end
1289
1277
 
1290
- # @note When making an API call, you may pass DeleteCostCategoryDefinitionRequest
1291
- # data as a hash:
1292
- #
1293
- # {
1294
- # cost_category_arn: "Arn", # required
1295
- # }
1296
- #
1297
1278
  # @!attribute [rw] cost_category_arn
1298
1279
  # The unique identifier for your Cost Category.
1299
1280
  # @return [String]
@@ -1312,7 +1293,7 @@ module Aws::CostExplorer
1312
1293
  #
1313
1294
  # @!attribute [rw] effective_end
1314
1295
  # The effective end date of the Cost Category as a result of deleting
1315
- # it. No costs after this date will be categorized by the deleted Cost
1296
+ # it. No costs after this date is categorized by the deleted Cost
1316
1297
  # Category.
1317
1298
  # @return [String]
1318
1299
  #
@@ -1325,14 +1306,6 @@ module Aws::CostExplorer
1325
1306
  include Aws::Structure
1326
1307
  end
1327
1308
 
1328
- # @note When making an API call, you may pass DescribeCostCategoryDefinitionRequest
1329
- # data as a hash:
1330
- #
1331
- # {
1332
- # cost_category_arn: "Arn", # required
1333
- # effective_on: "ZonedDateTime",
1334
- # }
1335
- #
1336
1309
  # @!attribute [rw] cost_category_arn
1337
1310
  # The unique identifier for your Cost Category.
1338
1311
  # @return [String]
@@ -1366,19 +1339,25 @@ module Aws::CostExplorer
1366
1339
  # The metadata that you can use to filter and group your results. You
1367
1340
  # can use `GetDimensionValues` to find specific values.
1368
1341
  #
1369
- # @note When making an API call, you may pass DimensionValues
1370
- # data as a hash:
1371
- #
1372
- # {
1373
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1374
- # values: ["Value"],
1375
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1376
- # }
1377
- #
1378
1342
  # @!attribute [rw] key
1379
1343
  # The names of the metadata types that you can use to filter and group
1380
1344
  # your results. For example, `AZ` returns a list of Availability
1381
1345
  # Zones.
1346
+ #
1347
+ # Not all dimensions are supported in each API. Refer to the
1348
+ # documentation for each specific API to see what is supported.
1349
+ #
1350
+ # `LINK_ACCOUNT_NAME` and `SERVICE_CODE` can only be used in
1351
+ # [CostCategoryRule][1].
1352
+ #
1353
+ # `ANOMALY_TOTAL_IMPACT_ABSOLUTE` and
1354
+ # `ANOMALY_TOTAL_IMPACT_PERCENTAGE` can only be used in
1355
+ # [AnomalySubscriptions][2].
1356
+ #
1357
+ #
1358
+ #
1359
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html
1360
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
1382
1361
  # @return [String]
1383
1362
  #
1384
1363
  # @!attribute [rw] values
@@ -1388,8 +1367,12 @@ module Aws::CostExplorer
1388
1367
  #
1389
1368
  # @!attribute [rw] match_options
1390
1369
  # The match options that you can use to filter your results.
1370
+ #
1391
1371
  # `MatchOptions` is only applicable for actions related to Cost
1392
- # Category. The default values for `MatchOptions` are `EQUALS` and
1372
+ # Category and Anomaly Subscriptions. Refer to the documentation for
1373
+ # each specific API to see what is supported.
1374
+ #
1375
+ # The default values for `MatchOptions` are `EQUALS` and
1393
1376
  # `CASE_SENSITIVE`.
1394
1377
  # @return [Array<String>]
1395
1378
  #
@@ -1484,7 +1467,7 @@ module Aws::CostExplorer
1484
1467
  include Aws::Structure
1485
1468
  end
1486
1469
 
1487
- # Details about the Amazon EC2 instances that Amazon Web Services
1470
+ # Details about the Amazon EC2 reservations that Amazon Web Services
1488
1471
  # recommends that you purchase.
1489
1472
  #
1490
1473
  # @!attribute [rw] family
@@ -1596,7 +1579,7 @@ module Aws::CostExplorer
1596
1579
  include Aws::Structure
1597
1580
  end
1598
1581
 
1599
- # Utilization metrics of the instance.
1582
+ # Utilization metrics for the instance.
1600
1583
  #
1601
1584
  # @!attribute [rw] max_cpu_utilization_percentage
1602
1585
  # The maximum observed or expected CPU utilization of the instance.
@@ -1642,13 +1625,6 @@ module Aws::CostExplorer
1642
1625
  # The Amazon EC2 hardware specifications that you want Amazon Web
1643
1626
  # Services to provide recommendations for.
1644
1627
  #
1645
- # @note When making an API call, you may pass EC2Specification
1646
- # data as a hash:
1647
- #
1648
- # {
1649
- # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
1650
- # }
1651
- #
1652
1628
  # @!attribute [rw] offering_class
1653
1629
  # Indicates whether you want a recommendation for standard or
1654
1630
  # convertible reservations.
@@ -1662,8 +1638,8 @@ module Aws::CostExplorer
1662
1638
  include Aws::Structure
1663
1639
  end
1664
1640
 
1665
- # Details about the Amazon ES instances that Amazon Web Services
1666
- # recommends that you purchase.
1641
+ # Details about the Amazon OpenSearch Service reservations that Amazon
1642
+ # Web Services recommends that you purchase.
1667
1643
  #
1668
1644
  # @!attribute [rw] instance_class
1669
1645
  # The class of instance that Amazon Web Services recommends.
@@ -1698,7 +1674,7 @@ module Aws::CostExplorer
1698
1674
  include Aws::Structure
1699
1675
  end
1700
1676
 
1701
- # Details about the Amazon ElastiCache instances that Amazon Web
1677
+ # Details about the Amazon ElastiCache reservations that Amazon Web
1702
1678
  # Services recommends that you purchase.
1703
1679
  #
1704
1680
  # @!attribute [rw] family
@@ -1739,45 +1715,81 @@ module Aws::CostExplorer
1739
1715
  include Aws::Structure
1740
1716
  end
1741
1717
 
1742
- # Use `Expression` to filter by cost or by usage. There are two
1743
- # patterns:
1718
+ # Use `Expression` to filter in various Cost Explorer APIs.
1719
+ #
1720
+ # Not all `Expression` types are supported in each API. Refer to the
1721
+ # documentation for each specific API to see what is supported.
1722
+ #
1723
+ # There are two patterns:
1724
+ #
1725
+ # * Simple dimension values.
1726
+ #
1727
+ # * There are three types of simple dimension values:
1728
+ # `CostCategories`, `Tags`, and `Dimensions`.
1729
+ #
1730
+ # * Specify the `CostCategories` field to define a filter that acts
1731
+ # on Cost Categories.
1732
+ #
1733
+ # * Specify the `Tags` field to define a filter that acts on Cost
1734
+ # Allocation Tags.
1735
+ #
1736
+ # * Specify the `Dimensions` field to define a filter that acts on
1737
+ # the [ `DimensionValues` ][1].
1744
1738
  #
1745
- # * Simple dimension values - You can set the dimension name and values
1746
- # for the filters that you plan to use. For example, you can filter
1747
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
1748
- # `GetRightsizingRecommendation`, the Region is a full name (for
1749
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
1750
- # is as follows:
1739
+ # * For each filter type, you can set the dimension name and values
1740
+ # for the filters that you plan to use.
1751
1741
  #
1752
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1753
- #us-west-1 ] \} \}`
1742
+ # * For example, you can filter for `REGION==us-east-1 OR
1743
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
1744
+ # Region is a full name (for example, `REGION==US East (N.
1745
+ # Virginia)`.
1754
1746
  #
1755
- # The list of dimension values are OR'd together to retrieve cost or
1756
- # usage data. You can create `Expression` and `DimensionValues`
1757
- # objects using either `with*` methods or `set*` methods in multiple
1758
- # lines.
1747
+ # * The corresponding `Expression` for this example is as follows:
1748
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1749
+ # "us-west-1" ] \} \}`
1759
1750
  #
1760
- # * Compound dimension values with logical operations - You can use
1761
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
1762
- # to create a list of one or more `Expression` objects. By doing this,
1763
- # you can filter on more advanced options. For example, you can filter
1764
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
1765
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
1766
- # is as follows:
1751
+ # * As shown in the previous example, lists of dimension values are
1752
+ # combined with `OR` when applying the filter.
1767
1753
  #
1768
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
1769
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1770
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1771
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1754
+ # * You can also set different match options to further control how
1755
+ # the filter behaves. Not all APIs support match options. Refer to
1756
+ # the documentation for each specific API to see what is supported.
1757
+ #
1758
+ # * For example, you can filter for linked account names that start
1759
+ # with "a".
1760
+ #
1761
+ # * The corresponding `Expression` for this example is as follows:
1762
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
1763
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
1764
+ #
1765
+ # * Compound `Expression` types with logical operations.
1766
+ #
1767
+ # * You can use multiple `Expression` types and the logical operators
1768
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
1769
+ # By doing this, you can filter by more advanced options.
1770
+ #
1771
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
1772
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
1773
+ # DataTransfer)`.
1774
+ #
1775
+ # * The corresponding `Expression` for this example is as follows: `\{
1776
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
1777
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1778
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1779
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1772
1780
  #
1773
1781
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
1774
1782
  # returns an error if more than one is specified. The following
1775
- # example shows an `Expression` object that creates an error.
1783
+ # example shows an `Expression` object that creates an error: ` \{
1784
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
1785
+ # "DataTransfer" ] \} \} `
1776
1786
  #
1777
- # </note>
1787
+ # The following is an example of the corresponding error message:
1788
+ # `"Expression has more than one roots. Only one root operator is
1789
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
1790
+ # CostCategories"`
1778
1791
  #
1779
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1780
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1792
+ # </note>
1781
1793
  #
1782
1794
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1783
1795
  # NOT isn't supported. OR isn't supported between different
@@ -1791,112 +1803,9 @@ module Aws::CostExplorer
1791
1803
  #
1792
1804
  # </note>
1793
1805
  #
1794
- # @note When making an API call, you may pass Expression
1795
- # data as a hash:
1796
- #
1797
- # {
1798
- # or: [
1799
- # {
1800
- # or: {
1801
- # # recursive Expressions
1802
- # },
1803
- # and: {
1804
- # # recursive Expressions
1805
- # },
1806
- # not: {
1807
- # # recursive Expression
1808
- # },
1809
- # dimensions: {
1810
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1811
- # values: ["Value"],
1812
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1813
- # },
1814
- # tags: {
1815
- # key: "TagKey",
1816
- # values: ["Value"],
1817
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1818
- # },
1819
- # cost_categories: {
1820
- # key: "CostCategoryName",
1821
- # values: ["Value"],
1822
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1823
- # },
1824
- # },
1825
- # ],
1826
- # and: [
1827
- # {
1828
- # or: {
1829
- # # recursive Expressions
1830
- # },
1831
- # and: {
1832
- # # recursive Expressions
1833
- # },
1834
- # not: {
1835
- # # recursive Expression
1836
- # },
1837
- # dimensions: {
1838
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1839
- # values: ["Value"],
1840
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1841
- # },
1842
- # tags: {
1843
- # key: "TagKey",
1844
- # values: ["Value"],
1845
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1846
- # },
1847
- # cost_categories: {
1848
- # key: "CostCategoryName",
1849
- # values: ["Value"],
1850
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1851
- # },
1852
- # },
1853
- # ],
1854
- # not: {
1855
- # or: [
1856
- # {
1857
- # # recursive Expression
1858
- # },
1859
- # ],
1860
- # and: [
1861
- # {
1862
- # # recursive Expression
1863
- # },
1864
- # ],
1865
- # not: {
1866
- # # recursive Expression
1867
- # },
1868
- # dimensions: {
1869
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1870
- # values: ["Value"],
1871
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1872
- # },
1873
- # tags: {
1874
- # key: "TagKey",
1875
- # values: ["Value"],
1876
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1877
- # },
1878
- # cost_categories: {
1879
- # key: "CostCategoryName",
1880
- # values: ["Value"],
1881
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1882
- # },
1883
- # },
1884
- # dimensions: {
1885
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1886
- # values: ["Value"],
1887
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1888
- # },
1889
- # tags: {
1890
- # key: "TagKey",
1891
- # values: ["Value"],
1892
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1893
- # },
1894
- # cost_categories: {
1895
- # key: "CostCategoryName",
1896
- # values: ["Value"],
1897
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1898
- # },
1899
- # }
1806
+ #
1807
+ #
1808
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
1900
1809
  #
1901
1810
  # @!attribute [rw] or
1902
1811
  # Return results that match either `Dimension` object.
@@ -1964,25 +1873,55 @@ module Aws::CostExplorer
1964
1873
  include Aws::Structure
1965
1874
  end
1966
1875
 
1967
- # @note When making an API call, you may pass GetAnomaliesRequest
1968
- # data as a hash:
1876
+ # A request to generate a recommendation is already in progress.
1877
+ #
1878
+ # @!attribute [rw] message
1879
+ # @return [String]
1880
+ #
1881
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GenerationExistsException AWS API Documentation
1882
+ #
1883
+ class GenerationExistsException < Struct.new(
1884
+ :message)
1885
+ SENSITIVE = []
1886
+ include Aws::Structure
1887
+ end
1888
+
1889
+ # The summary of the Savings Plans recommendation generation.
1890
+ #
1891
+ # @!attribute [rw] recommendation_id
1892
+ # Indicates the ID for this specific recommendation.
1893
+ # @return [String]
1894
+ #
1895
+ # @!attribute [rw] generation_status
1896
+ # Indicates whether the recommendation generation succeeded, is
1897
+ # processing, or failed.
1898
+ # @return [String]
1899
+ #
1900
+ # @!attribute [rw] generation_started_time
1901
+ # Indicates the start time of the recommendation generation.
1902
+ # @return [String]
1903
+ #
1904
+ # @!attribute [rw] generation_completion_time
1905
+ # Indicates the completion time of the recommendation generation.
1906
+ # @return [String]
1907
+ #
1908
+ # @!attribute [rw] estimated_completion_time
1909
+ # Indicates the estimated time for when the recommendation generation
1910
+ # will complete.
1911
+ # @return [String]
1969
1912
  #
1970
- # {
1971
- # monitor_arn: "GenericString",
1972
- # date_interval: { # required
1973
- # start_date: "YearMonthDay", # required
1974
- # end_date: "YearMonthDay",
1975
- # },
1976
- # feedback: "YES", # accepts YES, NO, PLANNED_ACTIVITY
1977
- # total_impact: {
1978
- # numeric_operator: "EQUAL", # required, accepts EQUAL, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, BETWEEN
1979
- # start_value: 1.0, # required
1980
- # end_value: 1.0,
1981
- # },
1982
- # next_page_token: "NextPageToken",
1983
- # max_results: 1,
1984
- # }
1913
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GenerationSummary AWS API Documentation
1985
1914
  #
1915
+ class GenerationSummary < Struct.new(
1916
+ :recommendation_id,
1917
+ :generation_status,
1918
+ :generation_started_time,
1919
+ :generation_completion_time,
1920
+ :estimated_completion_time)
1921
+ SENSITIVE = []
1922
+ include Aws::Structure
1923
+ end
1924
+
1986
1925
  # @!attribute [rw] monitor_arn
1987
1926
  # Retrieves all of the cost anomalies detected for a specific cost
1988
1927
  # anomaly monitor Amazon Resource Name (ARN).
@@ -2047,15 +1986,6 @@ module Aws::CostExplorer
2047
1986
  include Aws::Structure
2048
1987
  end
2049
1988
 
2050
- # @note When making an API call, you may pass GetAnomalyMonitorsRequest
2051
- # data as a hash:
2052
- #
2053
- # {
2054
- # monitor_arn_list: ["Value"],
2055
- # next_page_token: "NextPageToken",
2056
- # max_results: 1,
2057
- # }
2058
- #
2059
1989
  # @!attribute [rw] monitor_arn_list
2060
1990
  # A list of cost anomaly monitor ARNs.
2061
1991
  # @return [Array<String>]
@@ -2100,16 +2030,6 @@ module Aws::CostExplorer
2100
2030
  include Aws::Structure
2101
2031
  end
2102
2032
 
2103
- # @note When making an API call, you may pass GetAnomalySubscriptionsRequest
2104
- # data as a hash:
2105
- #
2106
- # {
2107
- # subscription_arn_list: ["Value"],
2108
- # monitor_arn: "GenericString",
2109
- # next_page_token: "NextPageToken",
2110
- # max_results: 1,
2111
- # }
2112
- #
2113
2033
  # @!attribute [rw] subscription_arn_list
2114
2034
  # A list of cost anomaly subscription ARNs.
2115
2035
  # @return [Array<String>]
@@ -2159,55 +2079,6 @@ module Aws::CostExplorer
2159
2079
  include Aws::Structure
2160
2080
  end
2161
2081
 
2162
- # @note When making an API call, you may pass GetCostAndUsageRequest
2163
- # data as a hash:
2164
- #
2165
- # {
2166
- # time_period: { # required
2167
- # start: "YearMonthDay", # required
2168
- # end: "YearMonthDay", # required
2169
- # },
2170
- # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
2171
- # filter: {
2172
- # or: [
2173
- # {
2174
- # # recursive Expression
2175
- # },
2176
- # ],
2177
- # and: [
2178
- # {
2179
- # # recursive Expression
2180
- # },
2181
- # ],
2182
- # not: {
2183
- # # recursive Expression
2184
- # },
2185
- # dimensions: {
2186
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2187
- # values: ["Value"],
2188
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2189
- # },
2190
- # tags: {
2191
- # key: "TagKey",
2192
- # values: ["Value"],
2193
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2194
- # },
2195
- # cost_categories: {
2196
- # key: "CostCategoryName",
2197
- # values: ["Value"],
2198
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2199
- # },
2200
- # },
2201
- # metrics: ["MetricName"], # required
2202
- # group_by: [
2203
- # {
2204
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
2205
- # key: "GroupDefinitionKey",
2206
- # },
2207
- # ],
2208
- # next_page_token: "NextPageToken",
2209
- # }
2210
- #
2211
2082
  # @!attribute [rw] time_period
2212
2083
  # Sets the start date and end date for retrieving Amazon Web Services
2213
2084
  # costs. The start date is inclusive, but the end date is exclusive.
@@ -2230,6 +2101,13 @@ module Aws::CostExplorer
2230
2101
  # service. You can nest `Expression` objects to define any combination
2231
2102
  # of dimension filters. For more information, see [Expression][1].
2232
2103
  #
2104
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
2105
+ # `CASE_SENSITIVE`.
2106
+ #
2107
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2108
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are
2109
+ # `EQUALS` and `CASE_SENSITIVE`.
2110
+ #
2233
2111
  #
2234
2112
  #
2235
2113
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -2267,9 +2145,9 @@ module Aws::CostExplorer
2267
2145
  # group by types.
2268
2146
  #
2269
2147
  # Valid values for the `DIMENSION` type are `AZ`, `INSTANCE_TYPE`,
2270
- # `LEGAL_ENTITY_NAME`, `LINKED_ACCOUNT`, `OPERATION`, `PLATFORM`,
2271
- # `PURCHASE_TYPE`, `SERVICE`, `TENANCY`, `RECORD_TYPE`, and
2272
- # `USAGE_TYPE`.
2148
+ # `LEGAL_ENTITY_NAME`, `INVOICING_ENTITY`, `LINKED_ACCOUNT`,
2149
+ # `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TENANCY`,
2150
+ # `RECORD_TYPE`, and `USAGE_TYPE`.
2273
2151
  #
2274
2152
  # When you group by the `TAG` type and include a valid tag key, you
2275
2153
  # get all tag values, including empty strings.
@@ -2326,55 +2204,6 @@ module Aws::CostExplorer
2326
2204
  include Aws::Structure
2327
2205
  end
2328
2206
 
2329
- # @note When making an API call, you may pass GetCostAndUsageWithResourcesRequest
2330
- # data as a hash:
2331
- #
2332
- # {
2333
- # time_period: { # required
2334
- # start: "YearMonthDay", # required
2335
- # end: "YearMonthDay", # required
2336
- # },
2337
- # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
2338
- # filter: { # required
2339
- # or: [
2340
- # {
2341
- # # recursive Expression
2342
- # },
2343
- # ],
2344
- # and: [
2345
- # {
2346
- # # recursive Expression
2347
- # },
2348
- # ],
2349
- # not: {
2350
- # # recursive Expression
2351
- # },
2352
- # dimensions: {
2353
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2354
- # values: ["Value"],
2355
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2356
- # },
2357
- # tags: {
2358
- # key: "TagKey",
2359
- # values: ["Value"],
2360
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2361
- # },
2362
- # cost_categories: {
2363
- # key: "CostCategoryName",
2364
- # values: ["Value"],
2365
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2366
- # },
2367
- # },
2368
- # metrics: ["MetricName"],
2369
- # group_by: [
2370
- # {
2371
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
2372
- # key: "GroupDefinitionKey",
2373
- # },
2374
- # ],
2375
- # next_page_token: "NextPageToken",
2376
- # }
2377
- #
2378
2207
  # @!attribute [rw] time_period
2379
2208
  # Sets the start and end dates for retrieving Amazon Web Services
2380
2209
  # costs. The range must be within the last 14 days (the start date
@@ -2403,6 +2232,13 @@ module Aws::CostExplorer
2403
2232
  # [Expression][1] `"SERVICE = Amazon Elastic Compute Cloud - Compute"`
2404
2233
  # in the filter.
2405
2234
  #
2235
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
2236
+ # `CASE_SENSITIVE`.
2237
+ #
2238
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
2239
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are
2240
+ # `EQUALS` and `CASE_SENSITIVE`.
2241
+ #
2406
2242
  #
2407
2243
  #
2408
2244
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -2421,8 +2257,8 @@ module Aws::CostExplorer
2421
2257
  # usage numbers without taking the units into account. For example, if
2422
2258
  # you aggregate `usageQuantity` across all of Amazon EC2, the results
2423
2259
  # aren't meaningful because Amazon EC2 compute hours and data
2424
- # transfer are measured in different units (for example, hours vs.
2425
- # GB). To get more meaningful `UsageQuantity` metrics, filter by
2260
+ # transfer are measured in different units (for example, hour or GB).
2261
+ # To get more meaningful `UsageQuantity` metrics, filter by
2426
2262
  # `UsageType` or `UsageTypeGroups`.
2427
2263
  #
2428
2264
  # </note>
@@ -2470,7 +2306,7 @@ module Aws::CostExplorer
2470
2306
  # @return [Array<Types::GroupDefinition>]
2471
2307
  #
2472
2308
  # @!attribute [rw] results_by_time
2473
- # The time period that is covered by the results in the response.
2309
+ # The time period that's covered by the results in the response.
2474
2310
  # @return [Array<Types::ResultByTime>]
2475
2311
  #
2476
2312
  # @!attribute [rw] dimension_value_attributes
@@ -2490,64 +2326,13 @@ module Aws::CostExplorer
2490
2326
  include Aws::Structure
2491
2327
  end
2492
2328
 
2493
- # @note When making an API call, you may pass GetCostCategoriesRequest
2494
- # data as a hash:
2495
- #
2496
- # {
2497
- # search_string: "SearchString",
2498
- # time_period: { # required
2499
- # start: "YearMonthDay", # required
2500
- # end: "YearMonthDay", # required
2501
- # },
2502
- # cost_category_name: "CostCategoryName",
2503
- # filter: {
2504
- # or: [
2505
- # {
2506
- # # recursive Expression
2507
- # },
2508
- # ],
2509
- # and: [
2510
- # {
2511
- # # recursive Expression
2512
- # },
2513
- # ],
2514
- # not: {
2515
- # # recursive Expression
2516
- # },
2517
- # dimensions: {
2518
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2519
- # values: ["Value"],
2520
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2521
- # },
2522
- # tags: {
2523
- # key: "TagKey",
2524
- # values: ["Value"],
2525
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2526
- # },
2527
- # cost_categories: {
2528
- # key: "CostCategoryName",
2529
- # values: ["Value"],
2530
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2531
- # },
2532
- # },
2533
- # sort_by: [
2534
- # {
2535
- # key: "SortDefinitionKey", # required
2536
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2537
- # },
2538
- # ],
2539
- # max_results: 1,
2540
- # next_page_token: "NextPageToken",
2541
- # }
2542
- #
2543
2329
  # @!attribute [rw] search_string
2544
2330
  # The value that you want to search the filter values for.
2545
2331
  #
2546
- # If you do not specify a `CostCategoryName`, `SearchString` will be
2547
- # used to filter Cost Category names that match the `SearchString`
2548
- # pattern. If you do specifiy a `CostCategoryName`, `SearchString`
2549
- # will be used to filter Cost Category values that match the
2550
- # `SearchString` pattern.
2332
+ # If you don't specify a `CostCategoryName`, `SearchString` is used
2333
+ # to filter Cost Category names that match the `SearchString` pattern.
2334
+ # If you specify a `CostCategoryName`, `SearchString` is used to
2335
+ # filter Cost Category values that match the `SearchString` pattern.
2551
2336
  # @return [String]
2552
2337
  #
2553
2338
  # @!attribute [rw] time_period
@@ -2559,46 +2344,84 @@ module Aws::CostExplorer
2559
2344
  # @return [String]
2560
2345
  #
2561
2346
  # @!attribute [rw] filter
2562
- # Use `Expression` to filter by cost or by usage. There are two
2563
- # patterns:
2564
- #
2565
- # * Simple dimension values - You can set the dimension name and
2566
- # values for the filters that you plan to use. For example, you can
2567
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2568
- # `GetRightsizingRecommendation`, the Region is a full name (for
2569
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
2570
- # is as follows:
2571
- #
2572
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2573
- # “us-west-1” ] \} \}`
2574
- #
2575
- # The list of dimension values are OR'd together to retrieve cost
2576
- # or usage data. You can create `Expression` and `DimensionValues`
2577
- # objects using either `with*` methods or `set*` methods in multiple
2578
- # lines.
2579
- #
2580
- # * Compound dimension values with logical operations - You can use
2581
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
2582
- # to create a list of one or more `Expression` objects. By doing
2583
- # this, you can filter on more advanced options. For example, you
2584
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2585
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2586
- # `Expression` for that is as follows:
2587
- #
2588
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2589
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2590
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2591
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2592
- # \}\}\} ] \} `
2347
+ # Use `Expression` to filter in various Cost Explorer APIs.
2348
+ #
2349
+ # Not all `Expression` types are supported in each API. Refer to the
2350
+ # documentation for each specific API to see what is supported.
2351
+ #
2352
+ # There are two patterns:
2353
+ #
2354
+ # * Simple dimension values.
2355
+ #
2356
+ # * There are three types of simple dimension values:
2357
+ # `CostCategories`, `Tags`, and `Dimensions`.
2358
+ #
2359
+ # * Specify the `CostCategories` field to define a filter that
2360
+ # acts on Cost Categories.
2361
+ #
2362
+ # * Specify the `Tags` field to define a filter that acts on Cost
2363
+ # Allocation Tags.
2364
+ #
2365
+ # * Specify the `Dimensions` field to define a filter that acts on
2366
+ # the [ `DimensionValues` ][1].
2367
+ #
2368
+ # * For each filter type, you can set the dimension name and values
2369
+ # for the filters that you plan to use.
2370
+ #
2371
+ # * For example, you can filter for `REGION==us-east-1 OR
2372
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
2373
+ # Region is a full name (for example, `REGION==US East (N.
2374
+ # Virginia)`.
2375
+ #
2376
+ # * The corresponding `Expression` for this example is as follows:
2377
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2378
+ # "us-west-1" ] \} \}`
2379
+ #
2380
+ # * As shown in the previous example, lists of dimension values
2381
+ # are combined with `OR` when applying the filter.
2382
+ #
2383
+ # * You can also set different match options to further control how
2384
+ # the filter behaves. Not all APIs support match options. Refer to
2385
+ # the documentation for each specific API to see what is
2386
+ # supported.
2387
+ #
2388
+ # * For example, you can filter for linked account names that
2389
+ # start with "a".
2390
+ #
2391
+ # * The corresponding `Expression` for this example is as follows:
2392
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
2393
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
2394
+ #
2395
+ # * Compound `Expression` types with logical operations.
2396
+ #
2397
+ # * You can use multiple `Expression` types and the logical
2398
+ # operators `AND/OR/NOT` to create a list of one or more
2399
+ # `Expression` objects. By doing this, you can filter by more
2400
+ # advanced options.
2401
+ #
2402
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
2403
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
2404
+ # DataTransfer)`.
2405
+ #
2406
+ # * The corresponding `Expression` for this example is as follows:
2407
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2408
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2409
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2410
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
2411
+ # ["DataTransfer"] \}\}\} ] \} `
2593
2412
  #
2594
2413
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
2595
2414
  # returns an error if more than one is specified. The following
2596
- # example shows an `Expression` object that creates an error.
2415
+ # example shows an `Expression` object that creates an error: ` \{
2416
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
2417
+ # "DataTransfer" ] \} \} `
2597
2418
  #
2598
- # </note>
2419
+ # The following is an example of the corresponding error message:
2420
+ # `"Expression has more than one roots. Only one root operator is
2421
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
2422
+ # CostCategories"`
2599
2423
  #
2600
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2601
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2424
+ # </note>
2602
2425
  #
2603
2426
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2604
2427
  # and NOT isn't supported. OR isn't supported between different
@@ -2611,13 +2434,17 @@ module Aws::CostExplorer
2611
2434
  # `LINKED_ACCOUNT`.
2612
2435
  #
2613
2436
  # </note>
2437
+ #
2438
+ #
2439
+ #
2440
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
2614
2441
  # @return [Types::Expression]
2615
2442
  #
2616
2443
  # @!attribute [rw] sort_by
2617
- # The value by which you want to sort the data.
2444
+ # The value that you sort the data by.
2618
2445
  #
2619
- # The key represents cost and usage metrics. The following values are
2620
- # supported:
2446
+ # The key represents the cost and usage metrics. The following values
2447
+ # are supported:
2621
2448
  #
2622
2449
  # * `BlendedCost`
2623
2450
  #
@@ -2633,27 +2460,29 @@ module Aws::CostExplorer
2633
2460
  #
2634
2461
  # * `NormalizedUsageAmount`
2635
2462
  #
2636
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2463
+ # The supported key values for the `SortOrder` value are `ASCENDING`
2464
+ # and `DESCENDING`.
2637
2465
  #
2638
- # When using `SortBy`, `NextPageToken` and `SearchString` are not
2639
- # supported.
2466
+ # When you use the `SortBy` value, the `NextPageToken` and
2467
+ # `SearchString` key values aren't supported.
2640
2468
  # @return [Array<Types::SortDefinition>]
2641
2469
  #
2642
2470
  # @!attribute [rw] max_results
2643
- # This field is only used when `SortBy` is provided in the request.
2471
+ # This field is only used when the `SortBy` value is provided in the
2472
+ # request.
2644
2473
  #
2645
- # The maximum number of objects that to be returned for this request.
2646
- # If `MaxResults` is not specified with `SortBy`, the request will
2647
- # return 1000 results as the default value for this parameter.
2474
+ # The maximum number of objects that are returned for this request. If
2475
+ # `MaxResults` isn't specified with the `SortBy` value, the request
2476
+ # returns 1000 results as the default value for this parameter.
2648
2477
  #
2649
- # For `GetCostCategories`, MaxResults has an upper limit of 1000.
2478
+ # For `GetCostCategories`, MaxResults has an upper quota of 1000.
2650
2479
  # @return [Integer]
2651
2480
  #
2652
2481
  # @!attribute [rw] next_page_token
2653
2482
  # If the number of objects that are still available for retrieval
2654
- # exceeds the limit, Amazon Web Services returns a NextPageToken value
2483
+ # exceeds the quota, Amazon Web Services returns a NextPageToken value
2655
2484
  # in the response. To retrieve the next batch of objects, provide the
2656
- # NextPageToken from the prior call in your next request.
2485
+ # NextPageToken from the previous call in your next request.
2657
2486
  # @return [String]
2658
2487
  #
2659
2488
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesRequest AWS API Documentation
@@ -2672,7 +2501,7 @@ module Aws::CostExplorer
2672
2501
 
2673
2502
  # @!attribute [rw] next_page_token
2674
2503
  # If the number of objects that are still available for retrieval
2675
- # exceeds the limit, Amazon Web Services returns a NextPageToken value
2504
+ # exceeds the quota, Amazon Web Services returns a NextPageToken value
2676
2505
  # in the response. To retrieve the next batch of objects, provide the
2677
2506
  # marker from the prior call in your next request.
2678
2507
  # @return [String]
@@ -2684,12 +2513,12 @@ module Aws::CostExplorer
2684
2513
  # @!attribute [rw] cost_category_values
2685
2514
  # The Cost Category values.
2686
2515
  #
2687
- # `CostCategoryValues` are not returned if `CostCategoryName` is not
2688
- # specified in the request.
2516
+ # If the `CostCategoryName` key isn't specified in the request, the
2517
+ # `CostCategoryValues` fields aren't returned.
2689
2518
  # @return [Array<String>]
2690
2519
  #
2691
2520
  # @!attribute [rw] return_size
2692
- # The number of objects returned.
2521
+ # The number of objects that are returned.
2693
2522
  # @return [Integer]
2694
2523
  #
2695
2524
  # @!attribute [rw] total_size
@@ -2708,49 +2537,6 @@ module Aws::CostExplorer
2708
2537
  include Aws::Structure
2709
2538
  end
2710
2539
 
2711
- # @note When making an API call, you may pass GetCostForecastRequest
2712
- # data as a hash:
2713
- #
2714
- # {
2715
- # time_period: { # required
2716
- # start: "YearMonthDay", # required
2717
- # end: "YearMonthDay", # required
2718
- # },
2719
- # metric: "BLENDED_COST", # required, accepts BLENDED_COST, UNBLENDED_COST, AMORTIZED_COST, NET_UNBLENDED_COST, NET_AMORTIZED_COST, USAGE_QUANTITY, NORMALIZED_USAGE_AMOUNT
2720
- # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
2721
- # filter: {
2722
- # or: [
2723
- # {
2724
- # # recursive Expression
2725
- # },
2726
- # ],
2727
- # and: [
2728
- # {
2729
- # # recursive Expression
2730
- # },
2731
- # ],
2732
- # not: {
2733
- # # recursive Expression
2734
- # },
2735
- # dimensions: {
2736
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2737
- # values: ["Value"],
2738
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2739
- # },
2740
- # tags: {
2741
- # key: "TagKey",
2742
- # values: ["Value"],
2743
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2744
- # },
2745
- # cost_categories: {
2746
- # key: "CostCategoryName",
2747
- # values: ["Value"],
2748
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2749
- # },
2750
- # },
2751
- # prediction_interval_level: 1,
2752
- # }
2753
- #
2754
2540
  # @!attribute [rw] time_period
2755
2541
  # The period of time that you want the forecast to cover. The start
2756
2542
  # date must be equal to or no later than the current date to avoid a
@@ -2880,57 +2666,6 @@ module Aws::CostExplorer
2880
2666
  include Aws::Structure
2881
2667
  end
2882
2668
 
2883
- # @note When making an API call, you may pass GetDimensionValuesRequest
2884
- # data as a hash:
2885
- #
2886
- # {
2887
- # search_string: "SearchString",
2888
- # time_period: { # required
2889
- # start: "YearMonthDay", # required
2890
- # end: "YearMonthDay", # required
2891
- # },
2892
- # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2893
- # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
2894
- # filter: {
2895
- # or: [
2896
- # {
2897
- # # recursive Expression
2898
- # },
2899
- # ],
2900
- # and: [
2901
- # {
2902
- # # recursive Expression
2903
- # },
2904
- # ],
2905
- # not: {
2906
- # # recursive Expression
2907
- # },
2908
- # dimensions: {
2909
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2910
- # values: ["Value"],
2911
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2912
- # },
2913
- # tags: {
2914
- # key: "TagKey",
2915
- # values: ["Value"],
2916
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2917
- # },
2918
- # cost_categories: {
2919
- # key: "CostCategoryName",
2920
- # values: ["Value"],
2921
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2922
- # },
2923
- # },
2924
- # sort_by: [
2925
- # {
2926
- # key: "SortDefinitionKey", # required
2927
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2928
- # },
2929
- # ],
2930
- # max_results: 1,
2931
- # next_page_token: "NextPageToken",
2932
- # }
2933
- #
2934
2669
  # @!attribute [rw] search_string
2935
2670
  # The value that you want to search the filter values for.
2936
2671
  # @return [String]
@@ -2946,6 +2681,12 @@ module Aws::CostExplorer
2946
2681
  # @!attribute [rw] dimension
2947
2682
  # The name of the dimension. Each `Dimension` is available for a
2948
2683
  # different `Context`. For more information, see `Context`.
2684
+ # `LINK_ACCOUNT_NAME` and `SERVICE_CODE` can only be used in
2685
+ # [CostCategoryRule][1].
2686
+ #
2687
+ #
2688
+ #
2689
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html
2949
2690
  # @return [String]
2950
2691
  #
2951
2692
  # @!attribute [rw] context
@@ -2962,12 +2703,40 @@ module Aws::CostExplorer
2962
2703
  #
2963
2704
  # * AZ - The Availability Zone. An example is `us-east-1a`.
2964
2705
  #
2706
+ # * BILLING\_ENTITY - The Amazon Web Services seller that your account
2707
+ # is with. Possible values are the following:
2708
+ #
2709
+ # \- Amazon Web Services(Amazon Web Services): The entity that sells
2710
+ # Amazon Web Services.
2711
+ #
2712
+ # \- AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian
2713
+ # entity that's an acting reseller for Amazon Web Services in
2714
+ # India.
2715
+ #
2716
+ # \- Amazon Web Services Marketplace: The entity that supports the
2717
+ # sale of solutions that are built on Amazon Web Services by
2718
+ # third-party software providers.
2719
+ #
2720
+ # * CACHE\_ENGINE - The Amazon ElastiCache operating system. Examples
2721
+ # are Windows or Linux.
2722
+ #
2723
+ # * DEPLOYMENT\_OPTION - The scope of Amazon Relational Database
2724
+ # Service deployments. Valid values are `SingleAZ` and `MultiAZ`.
2725
+ #
2965
2726
  # * DATABASE\_ENGINE - The Amazon Relational Database Service
2966
2727
  # database. Examples are Aurora or MySQL.
2967
2728
  #
2968
2729
  # * INSTANCE\_TYPE - The type of Amazon EC2 instance. An example is
2969
2730
  # `m4.xlarge`.
2970
2731
  #
2732
+ # * INSTANCE\_TYPE\_FAMILY - A family of instance types optimized to
2733
+ # fit different use cases. Examples are `Compute Optimized` (for
2734
+ # example, `C4`, `C5`, `C6g`, and `C7g`), `Memory Optimization` (for
2735
+ # example, `R4`, `R5n`, `R5b`, and `R6g`).
2736
+ #
2737
+ # * INVOICING\_ENTITY - The name of the entity that issues the Amazon
2738
+ # Web Services invoice.
2739
+ #
2971
2740
  # * LEGAL\_ENTITY\_NAME - The name of the organization that sells you
2972
2741
  # Amazon Web Services services, such as Amazon Web Services.
2973
2742
  #
@@ -2984,12 +2753,23 @@ module Aws::CostExplorer
2984
2753
  # * PLATFORM - The Amazon EC2 operating system. Examples are Windows
2985
2754
  # or Linux.
2986
2755
  #
2987
- # * PURCHASE\_TYPE - The reservation type of the purchase to which
2988
- # this usage is related. Examples include On-Demand Instances and
2756
+ # * PURCHASE\_TYPE - The reservation type of the purchase that this
2757
+ # usage is related to. Examples include On-Demand Instances and
2989
2758
  # Standard Reserved Instances.
2990
2759
  #
2760
+ # * RESERVATION\_ID - The unique identifier for an Amazon Web Services
2761
+ # Reservation Instance.
2762
+ #
2763
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plans.
2764
+ #
2765
+ # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
2766
+ # Compute).
2767
+ #
2991
2768
  # * SERVICE - The Amazon Web Services service such as Amazon DynamoDB.
2992
2769
  #
2770
+ # * TENANCY - The tenancy of a resource. Examples are shared or
2771
+ # dedicated.
2772
+ #
2993
2773
  # * USAGE\_TYPE - The type of usage. An example is
2994
2774
  # DataTransfer-In-Bytes. The response for the `GetDimensionValues`
2995
2775
  # operation includes a unit attribute. Examples include GB and Hrs.
@@ -3000,8 +2780,8 @@ module Aws::CostExplorer
3000
2780
  #
3001
2781
  # * REGION - The Amazon Web Services Region.
3002
2782
  #
3003
- # * RECORD\_TYPE - The different types of charges such as RI fees,
3004
- # usage costs, tax refunds, and credits.
2783
+ # * RECORD\_TYPE - The different types of charges such as Reserved
2784
+ # Instance (RI) fees, usage costs, tax refunds, and credits.
3005
2785
  #
3006
2786
  # * RESOURCE\_ID - The unique identifier of the resource. ResourceId
3007
2787
  # is an opt-in feature only available for last 14 days for
@@ -3045,8 +2825,8 @@ module Aws::CostExplorer
3045
2825
  # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
3046
2826
  # Compute)
3047
2827
  #
3048
- # * PAYMENT\_OPTION - Payment option for the given Savings Plans (for
3049
- # example, All Upfront)
2828
+ # * PAYMENT\_OPTION - The payment option for the given Savings Plans
2829
+ # (for example, All Upfront)
3050
2830
  #
3051
2831
  # * REGION - The Amazon Web Services Region.
3052
2832
  #
@@ -3057,50 +2837,88 @@ module Aws::CostExplorer
3057
2837
  # includes the full name of the member account. The value field
3058
2838
  # contains the Amazon Web Services ID of the member account.
3059
2839
  #
3060
- # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
2840
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plans.
3061
2841
  # @return [String]
3062
2842
  #
3063
2843
  # @!attribute [rw] filter
3064
- # Use `Expression` to filter by cost or by usage. There are two
3065
- # patterns:
3066
- #
3067
- # * Simple dimension values - You can set the dimension name and
3068
- # values for the filters that you plan to use. For example, you can
3069
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3070
- # `GetRightsizingRecommendation`, the Region is a full name (for
3071
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
3072
- # is as follows:
3073
- #
3074
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3075
- # “us-west-1” ] \} \}`
3076
- #
3077
- # The list of dimension values are OR'd together to retrieve cost
3078
- # or usage data. You can create `Expression` and `DimensionValues`
3079
- # objects using either `with*` methods or `set*` methods in multiple
3080
- # lines.
3081
- #
3082
- # * Compound dimension values with logical operations - You can use
3083
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
3084
- # to create a list of one or more `Expression` objects. By doing
3085
- # this, you can filter on more advanced options. For example, you
3086
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3087
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3088
- # `Expression` for that is as follows:
3089
- #
3090
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3091
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3092
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3093
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
3094
- # \}\}\} ] \} `
2844
+ # Use `Expression` to filter in various Cost Explorer APIs.
2845
+ #
2846
+ # Not all `Expression` types are supported in each API. Refer to the
2847
+ # documentation for each specific API to see what is supported.
2848
+ #
2849
+ # There are two patterns:
2850
+ #
2851
+ # * Simple dimension values.
2852
+ #
2853
+ # * There are three types of simple dimension values:
2854
+ # `CostCategories`, `Tags`, and `Dimensions`.
2855
+ #
2856
+ # * Specify the `CostCategories` field to define a filter that
2857
+ # acts on Cost Categories.
2858
+ #
2859
+ # * Specify the `Tags` field to define a filter that acts on Cost
2860
+ # Allocation Tags.
2861
+ #
2862
+ # * Specify the `Dimensions` field to define a filter that acts on
2863
+ # the [ `DimensionValues` ][1].
2864
+ #
2865
+ # * For each filter type, you can set the dimension name and values
2866
+ # for the filters that you plan to use.
2867
+ #
2868
+ # * For example, you can filter for `REGION==us-east-1 OR
2869
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
2870
+ # Region is a full name (for example, `REGION==US East (N.
2871
+ # Virginia)`.
2872
+ #
2873
+ # * The corresponding `Expression` for this example is as follows:
2874
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2875
+ # "us-west-1" ] \} \}`
2876
+ #
2877
+ # * As shown in the previous example, lists of dimension values
2878
+ # are combined with `OR` when applying the filter.
2879
+ #
2880
+ # * You can also set different match options to further control how
2881
+ # the filter behaves. Not all APIs support match options. Refer to
2882
+ # the documentation for each specific API to see what is
2883
+ # supported.
2884
+ #
2885
+ # * For example, you can filter for linked account names that
2886
+ # start with "a".
2887
+ #
2888
+ # * The corresponding `Expression` for this example is as follows:
2889
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
2890
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
2891
+ #
2892
+ # * Compound `Expression` types with logical operations.
2893
+ #
2894
+ # * You can use multiple `Expression` types and the logical
2895
+ # operators `AND/OR/NOT` to create a list of one or more
2896
+ # `Expression` objects. By doing this, you can filter by more
2897
+ # advanced options.
2898
+ #
2899
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
2900
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
2901
+ # DataTransfer)`.
2902
+ #
2903
+ # * The corresponding `Expression` for this example is as follows:
2904
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2905
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2906
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2907
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
2908
+ # ["DataTransfer"] \}\}\} ] \} `
3095
2909
  #
3096
2910
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
3097
2911
  # returns an error if more than one is specified. The following
3098
- # example shows an `Expression` object that creates an error.
2912
+ # example shows an `Expression` object that creates an error: ` \{
2913
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
2914
+ # "DataTransfer" ] \} \} `
3099
2915
  #
3100
- # </note>
2916
+ # The following is an example of the corresponding error message:
2917
+ # `"Expression has more than one roots. Only one root operator is
2918
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
2919
+ # CostCategories"`
3101
2920
  #
3102
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3103
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2921
+ # </note>
3104
2922
  #
3105
2923
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3106
2924
  # and NOT isn't supported. OR isn't supported between different
@@ -3113,10 +2931,14 @@ module Aws::CostExplorer
3113
2931
  # `LINKED_ACCOUNT`.
3114
2932
  #
3115
2933
  # </note>
2934
+ #
2935
+ #
2936
+ #
2937
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
3116
2938
  # @return [Types::Expression]
3117
2939
  #
3118
2940
  # @!attribute [rw] sort_by
3119
- # The value by which you want to sort the data.
2941
+ # The value that you want to sort the data by.
3120
2942
  #
3121
2943
  # The key represents cost and usage metrics. The following values are
3122
2944
  # supported:
@@ -3135,18 +2957,19 @@ module Aws::CostExplorer
3135
2957
  #
3136
2958
  # * `NormalizedUsageAmount`
3137
2959
  #
3138
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2960
+ # The supported values for the `SortOrder` key are `ASCENDING` or
2961
+ # `DESCENDING`.
3139
2962
  #
3140
2963
  # When you specify a `SortBy` paramater, the context must be
3141
2964
  # `COST_AND_USAGE`. Further, when using `SortBy`, `NextPageToken` and
3142
- # `SearchString` are not supported.
2965
+ # `SearchString` aren't supported.
3143
2966
  # @return [Array<Types::SortDefinition>]
3144
2967
  #
3145
2968
  # @!attribute [rw] max_results
3146
2969
  # This field is only used when SortBy is provided in the request. The
3147
- # maximum number of objects that to be returned for this request. If
3148
- # MaxResults is not specified with SortBy, the request will return
3149
- # 1000 results as the default value for this parameter.
2970
+ # maximum number of objects that are returned for this request. If
2971
+ # MaxResults isn't specified with SortBy, the request returns 1000
2972
+ # results as the default value for this parameter.
3150
2973
  #
3151
2974
  # For `GetDimensionValues`, MaxResults has an upper limit of 1000.
3152
2975
  # @return [Integer]
@@ -3222,7 +3045,8 @@ module Aws::CostExplorer
3222
3045
  #
3223
3046
  # * RESOURCE\_ID - The unique identifier of the resource. ResourceId
3224
3047
  # is an opt-in feature only available for last 14 days for
3225
- # EC2-Compute Service.
3048
+ # EC2-Compute Service. You can opt-in by enabling `Hourly` and
3049
+ # `Resource Level Data` in Cost Management Console preferences.
3226
3050
  #
3227
3051
  # If you set the context to `RESERVATIONS`, you can use the following
3228
3052
  # dimensions for searching:
@@ -3305,60 +3129,6 @@ module Aws::CostExplorer
3305
3129
  # You can use the following request parameters to query for how much of
3306
3130
  # your instance usage a reservation covered.
3307
3131
  #
3308
- # @note When making an API call, you may pass GetReservationCoverageRequest
3309
- # data as a hash:
3310
- #
3311
- # {
3312
- # time_period: { # required
3313
- # start: "YearMonthDay", # required
3314
- # end: "YearMonthDay", # required
3315
- # },
3316
- # group_by: [
3317
- # {
3318
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
3319
- # key: "GroupDefinitionKey",
3320
- # },
3321
- # ],
3322
- # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
3323
- # filter: {
3324
- # or: [
3325
- # {
3326
- # # recursive Expression
3327
- # },
3328
- # ],
3329
- # and: [
3330
- # {
3331
- # # recursive Expression
3332
- # },
3333
- # ],
3334
- # not: {
3335
- # # recursive Expression
3336
- # },
3337
- # dimensions: {
3338
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3339
- # values: ["Value"],
3340
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3341
- # },
3342
- # tags: {
3343
- # key: "TagKey",
3344
- # values: ["Value"],
3345
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3346
- # },
3347
- # cost_categories: {
3348
- # key: "CostCategoryName",
3349
- # values: ["Value"],
3350
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3351
- # },
3352
- # },
3353
- # metrics: ["MetricName"],
3354
- # next_page_token: "NextPageToken",
3355
- # sort_by: {
3356
- # key: "SortDefinitionKey", # required
3357
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3358
- # },
3359
- # max_results: 1,
3360
- # }
3361
- #
3362
3132
  # @!attribute [rw] time_period
3363
3133
  # The start and end dates of the period that you want to retrieve data
3364
3134
  # about reservation coverage for. You can retrieve data for a maximum
@@ -3382,6 +3152,8 @@ module Aws::CostExplorer
3382
3152
  #
3383
3153
  # * INSTANCE\_TYPE
3384
3154
  #
3155
+ # * INVOICING\_ENTITY
3156
+ #
3385
3157
  # * LINKED\_ACCOUNT
3386
3158
  #
3387
3159
  # * OPERATING\_SYSTEM
@@ -3464,7 +3236,7 @@ module Aws::CostExplorer
3464
3236
  # @!attribute [rw] sort_by
3465
3237
  # The value by which you want to sort the data.
3466
3238
  #
3467
- # The following values are supported for `Key`\:
3239
+ # The following values are supported for `Key`:
3468
3240
  #
3469
3241
  # * `OnDemandCost`
3470
3242
  #
@@ -3535,57 +3307,8 @@ module Aws::CostExplorer
3535
3307
  include Aws::Structure
3536
3308
  end
3537
3309
 
3538
- # @note When making an API call, you may pass GetReservationPurchaseRecommendationRequest
3539
- # data as a hash:
3540
- #
3541
- # {
3542
- # account_id: "GenericString",
3543
- # service: "GenericString", # required
3544
- # filter: {
3545
- # or: [
3546
- # {
3547
- # # recursive Expression
3548
- # },
3549
- # ],
3550
- # and: [
3551
- # {
3552
- # # recursive Expression
3553
- # },
3554
- # ],
3555
- # not: {
3556
- # # recursive Expression
3557
- # },
3558
- # dimensions: {
3559
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3560
- # values: ["Value"],
3561
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3562
- # },
3563
- # tags: {
3564
- # key: "TagKey",
3565
- # values: ["Value"],
3566
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3567
- # },
3568
- # cost_categories: {
3569
- # key: "CostCategoryName",
3570
- # values: ["Value"],
3571
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3572
- # },
3573
- # },
3574
- # account_scope: "PAYER", # accepts PAYER, LINKED
3575
- # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
3576
- # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
3577
- # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
3578
- # service_specification: {
3579
- # ec2_specification: {
3580
- # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
3581
- # },
3582
- # },
3583
- # page_size: 1,
3584
- # next_page_token: "NextPageToken",
3585
- # }
3586
- #
3587
3310
  # @!attribute [rw] account_id
3588
- # The account ID that is associated with the recommendation.
3311
+ # The account ID that's associated with the recommendation.
3589
3312
  # @return [String]
3590
3313
  #
3591
3314
  # @!attribute [rw] service
@@ -3593,46 +3316,84 @@ module Aws::CostExplorer
3593
3316
  # @return [String]
3594
3317
  #
3595
3318
  # @!attribute [rw] filter
3596
- # Use `Expression` to filter by cost or by usage. There are two
3597
- # patterns:
3598
- #
3599
- # * Simple dimension values - You can set the dimension name and
3600
- # values for the filters that you plan to use. For example, you can
3601
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3602
- # `GetRightsizingRecommendation`, the Region is a full name (for
3603
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
3604
- # is as follows:
3605
- #
3606
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3607
- # “us-west-1” ] \} \}`
3608
- #
3609
- # The list of dimension values are OR'd together to retrieve cost
3610
- # or usage data. You can create `Expression` and `DimensionValues`
3611
- # objects using either `with*` methods or `set*` methods in multiple
3612
- # lines.
3613
- #
3614
- # * Compound dimension values with logical operations - You can use
3615
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
3616
- # to create a list of one or more `Expression` objects. By doing
3617
- # this, you can filter on more advanced options. For example, you
3618
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3619
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3620
- # `Expression` for that is as follows:
3621
- #
3622
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3623
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3624
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3625
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
3626
- # \}\}\} ] \} `
3319
+ # Use `Expression` to filter in various Cost Explorer APIs.
3320
+ #
3321
+ # Not all `Expression` types are supported in each API. Refer to the
3322
+ # documentation for each specific API to see what is supported.
3323
+ #
3324
+ # There are two patterns:
3325
+ #
3326
+ # * Simple dimension values.
3327
+ #
3328
+ # * There are three types of simple dimension values:
3329
+ # `CostCategories`, `Tags`, and `Dimensions`.
3330
+ #
3331
+ # * Specify the `CostCategories` field to define a filter that
3332
+ # acts on Cost Categories.
3333
+ #
3334
+ # * Specify the `Tags` field to define a filter that acts on Cost
3335
+ # Allocation Tags.
3336
+ #
3337
+ # * Specify the `Dimensions` field to define a filter that acts on
3338
+ # the [ `DimensionValues` ][1].
3339
+ #
3340
+ # * For each filter type, you can set the dimension name and values
3341
+ # for the filters that you plan to use.
3342
+ #
3343
+ # * For example, you can filter for `REGION==us-east-1 OR
3344
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
3345
+ # Region is a full name (for example, `REGION==US East (N.
3346
+ # Virginia)`.
3347
+ #
3348
+ # * The corresponding `Expression` for this example is as follows:
3349
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3350
+ # "us-west-1" ] \} \}`
3351
+ #
3352
+ # * As shown in the previous example, lists of dimension values
3353
+ # are combined with `OR` when applying the filter.
3354
+ #
3355
+ # * You can also set different match options to further control how
3356
+ # the filter behaves. Not all APIs support match options. Refer to
3357
+ # the documentation for each specific API to see what is
3358
+ # supported.
3359
+ #
3360
+ # * For example, you can filter for linked account names that
3361
+ # start with "a".
3362
+ #
3363
+ # * The corresponding `Expression` for this example is as follows:
3364
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
3365
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
3366
+ #
3367
+ # * Compound `Expression` types with logical operations.
3368
+ #
3369
+ # * You can use multiple `Expression` types and the logical
3370
+ # operators `AND/OR/NOT` to create a list of one or more
3371
+ # `Expression` objects. By doing this, you can filter by more
3372
+ # advanced options.
3373
+ #
3374
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
3375
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3376
+ # DataTransfer)`.
3377
+ #
3378
+ # * The corresponding `Expression` for this example is as follows:
3379
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3380
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3381
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3382
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
3383
+ # ["DataTransfer"] \}\}\} ] \} `
3627
3384
  #
3628
3385
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
3629
3386
  # returns an error if more than one is specified. The following
3630
- # example shows an `Expression` object that creates an error.
3387
+ # example shows an `Expression` object that creates an error: ` \{
3388
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
3389
+ # "DataTransfer" ] \} \} `
3631
3390
  #
3632
- # </note>
3391
+ # The following is an example of the corresponding error message:
3392
+ # `"Expression has more than one roots. Only one root operator is
3393
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
3394
+ # CostCategories"`
3633
3395
  #
3634
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3635
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3396
+ # </note>
3636
3397
  #
3637
3398
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3638
3399
  # and NOT isn't supported. OR isn't supported between different
@@ -3645,6 +3406,10 @@ module Aws::CostExplorer
3645
3406
  # `LINKED_ACCOUNT`.
3646
3407
  #
3647
3408
  # </note>
3409
+ #
3410
+ #
3411
+ #
3412
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
3648
3413
  # @return [Types::Expression]
3649
3414
  #
3650
3415
  # @!attribute [rw] account_scope
@@ -3724,65 +3489,13 @@ module Aws::CostExplorer
3724
3489
  include Aws::Structure
3725
3490
  end
3726
3491
 
3727
- # @note When making an API call, you may pass GetReservationUtilizationRequest
3728
- # data as a hash:
3729
- #
3730
- # {
3731
- # time_period: { # required
3732
- # start: "YearMonthDay", # required
3733
- # end: "YearMonthDay", # required
3734
- # },
3735
- # group_by: [
3736
- # {
3737
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
3738
- # key: "GroupDefinitionKey",
3739
- # },
3740
- # ],
3741
- # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
3742
- # filter: {
3743
- # or: [
3744
- # {
3745
- # # recursive Expression
3746
- # },
3747
- # ],
3748
- # and: [
3749
- # {
3750
- # # recursive Expression
3751
- # },
3752
- # ],
3753
- # not: {
3754
- # # recursive Expression
3755
- # },
3756
- # dimensions: {
3757
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3758
- # values: ["Value"],
3759
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3760
- # },
3761
- # tags: {
3762
- # key: "TagKey",
3763
- # values: ["Value"],
3764
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3765
- # },
3766
- # cost_categories: {
3767
- # key: "CostCategoryName",
3768
- # values: ["Value"],
3769
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3770
- # },
3771
- # },
3772
- # sort_by: {
3773
- # key: "SortDefinitionKey", # required
3774
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3775
- # },
3776
- # next_page_token: "NextPageToken",
3777
- # max_results: 1,
3778
- # }
3779
- #
3780
3492
  # @!attribute [rw] time_period
3781
- # Sets the start and end dates for retrieving RI utilization. The
3782
- # start date is inclusive, but the end date is exclusive. For example,
3783
- # if `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost
3784
- # and usage data is retrieved from `2017-01-01` up to and including
3785
- # `2017-04-30` but not including `2017-05-01`.
3493
+ # Sets the start and end dates for retrieving Reserved Instance (RI)
3494
+ # utilization. The start date is inclusive, but the end date is
3495
+ # exclusive. For example, if `start` is `2017-01-01` and `end` is
3496
+ # `2017-05-01`, then the cost and usage data is retrieved from
3497
+ # `2017-01-01` up to and including `2017-04-30` but not including
3498
+ # `2017-05-01`.
3786
3499
  # @return [Types::DateInterval]
3787
3500
  #
3788
3501
  # @!attribute [rw] group_by
@@ -3836,9 +3549,9 @@ module Aws::CostExplorer
3836
3549
  # @return [Types::Expression]
3837
3550
  #
3838
3551
  # @!attribute [rw] sort_by
3839
- # The value by which you want to sort the data.
3552
+ # The value that you want to sort the data by.
3840
3553
  #
3841
- # The following values are supported for `Key`\:
3554
+ # The following values are supported for `Key`:
3842
3555
  #
3843
3556
  # * `UtilizationPercentage`
3844
3557
  #
@@ -3874,7 +3587,8 @@ module Aws::CostExplorer
3874
3587
  #
3875
3588
  # * `UnrealizedSavings`
3876
3589
  #
3877
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3590
+ # The supported values for `SortOrder` are `ASCENDING` and
3591
+ # `DESCENDING`.
3878
3592
  # @return [Types::SortDefinition]
3879
3593
  #
3880
3594
  # @!attribute [rw] next_page_token
@@ -3905,11 +3619,12 @@ module Aws::CostExplorer
3905
3619
  end
3906
3620
 
3907
3621
  # @!attribute [rw] utilizations_by_time
3908
- # The amount of time that you used your RIs.
3622
+ # The amount of time that you used your Reserved Instances (RIs).
3909
3623
  # @return [Array<Types::UtilizationByTime>]
3910
3624
  #
3911
3625
  # @!attribute [rw] total
3912
- # The total amount of time that you used your RIs.
3626
+ # The total amount of time that you used your Reserved Instances
3627
+ # (RIs).
3913
3628
  # @return [Types::ReservationAggregates]
3914
3629
  #
3915
3630
  # @!attribute [rw] next_page_token
@@ -3928,90 +3643,85 @@ module Aws::CostExplorer
3928
3643
  include Aws::Structure
3929
3644
  end
3930
3645
 
3931
- # @note When making an API call, you may pass GetRightsizingRecommendationRequest
3932
- # data as a hash:
3933
- #
3934
- # {
3935
- # filter: {
3936
- # or: [
3937
- # {
3938
- # # recursive Expression
3939
- # },
3940
- # ],
3941
- # and: [
3942
- # {
3943
- # # recursive Expression
3944
- # },
3945
- # ],
3946
- # not: {
3947
- # # recursive Expression
3948
- # },
3949
- # dimensions: {
3950
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3951
- # values: ["Value"],
3952
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3953
- # },
3954
- # tags: {
3955
- # key: "TagKey",
3956
- # values: ["Value"],
3957
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3958
- # },
3959
- # cost_categories: {
3960
- # key: "CostCategoryName",
3961
- # values: ["Value"],
3962
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3963
- # },
3964
- # },
3965
- # configuration: {
3966
- # recommendation_target: "SAME_INSTANCE_FAMILY", # required, accepts SAME_INSTANCE_FAMILY, CROSS_INSTANCE_FAMILY
3967
- # benefits_considered: false, # required
3968
- # },
3969
- # service: "GenericString", # required
3970
- # page_size: 1,
3971
- # next_page_token: "NextPageToken",
3972
- # }
3973
- #
3974
3646
  # @!attribute [rw] filter
3975
- # Use `Expression` to filter by cost or by usage. There are two
3976
- # patterns:
3977
- #
3978
- # * Simple dimension values - You can set the dimension name and
3979
- # values for the filters that you plan to use. For example, you can
3980
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3981
- # `GetRightsizingRecommendation`, the Region is a full name (for
3982
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
3983
- # is as follows:
3984
- #
3985
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3986
- # “us-west-1” ] \} \}`
3987
- #
3988
- # The list of dimension values are OR'd together to retrieve cost
3989
- # or usage data. You can create `Expression` and `DimensionValues`
3990
- # objects using either `with*` methods or `set*` methods in multiple
3991
- # lines.
3992
- #
3993
- # * Compound dimension values with logical operations - You can use
3994
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
3995
- # to create a list of one or more `Expression` objects. By doing
3996
- # this, you can filter on more advanced options. For example, you
3997
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3998
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3999
- # `Expression` for that is as follows:
4000
- #
4001
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4002
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4003
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4004
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
4005
- # \}\}\} ] \} `
3647
+ # Use `Expression` to filter in various Cost Explorer APIs.
3648
+ #
3649
+ # Not all `Expression` types are supported in each API. Refer to the
3650
+ # documentation for each specific API to see what is supported.
3651
+ #
3652
+ # There are two patterns:
3653
+ #
3654
+ # * Simple dimension values.
3655
+ #
3656
+ # * There are three types of simple dimension values:
3657
+ # `CostCategories`, `Tags`, and `Dimensions`.
3658
+ #
3659
+ # * Specify the `CostCategories` field to define a filter that
3660
+ # acts on Cost Categories.
3661
+ #
3662
+ # * Specify the `Tags` field to define a filter that acts on Cost
3663
+ # Allocation Tags.
3664
+ #
3665
+ # * Specify the `Dimensions` field to define a filter that acts on
3666
+ # the [ `DimensionValues` ][1].
3667
+ #
3668
+ # * For each filter type, you can set the dimension name and values
3669
+ # for the filters that you plan to use.
3670
+ #
3671
+ # * For example, you can filter for `REGION==us-east-1 OR
3672
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
3673
+ # Region is a full name (for example, `REGION==US East (N.
3674
+ # Virginia)`.
3675
+ #
3676
+ # * The corresponding `Expression` for this example is as follows:
3677
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3678
+ # "us-west-1" ] \} \}`
3679
+ #
3680
+ # * As shown in the previous example, lists of dimension values
3681
+ # are combined with `OR` when applying the filter.
3682
+ #
3683
+ # * You can also set different match options to further control how
3684
+ # the filter behaves. Not all APIs support match options. Refer to
3685
+ # the documentation for each specific API to see what is
3686
+ # supported.
3687
+ #
3688
+ # * For example, you can filter for linked account names that
3689
+ # start with "a".
3690
+ #
3691
+ # * The corresponding `Expression` for this example is as follows:
3692
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
3693
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
3694
+ #
3695
+ # * Compound `Expression` types with logical operations.
3696
+ #
3697
+ # * You can use multiple `Expression` types and the logical
3698
+ # operators `AND/OR/NOT` to create a list of one or more
3699
+ # `Expression` objects. By doing this, you can filter by more
3700
+ # advanced options.
3701
+ #
3702
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
3703
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3704
+ # DataTransfer)`.
3705
+ #
3706
+ # * The corresponding `Expression` for this example is as follows:
3707
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3708
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3709
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3710
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
3711
+ # ["DataTransfer"] \}\}\} ] \} `
4006
3712
  #
4007
3713
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
4008
3714
  # returns an error if more than one is specified. The following
4009
- # example shows an `Expression` object that creates an error.
3715
+ # example shows an `Expression` object that creates an error: ` \{
3716
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
3717
+ # "DataTransfer" ] \} \} `
4010
3718
  #
4011
- # </note>
3719
+ # The following is an example of the corresponding error message:
3720
+ # `"Expression has more than one roots. Only one root operator is
3721
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
3722
+ # CostCategories"`
4012
3723
  #
4013
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
4014
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3724
+ # </note>
4015
3725
  #
4016
3726
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
4017
3727
  # and NOT isn't supported. OR isn't supported between different
@@ -4024,15 +3734,19 @@ module Aws::CostExplorer
4024
3734
  # `LINKED_ACCOUNT`.
4025
3735
  #
4026
3736
  # </note>
3737
+ #
3738
+ #
3739
+ #
3740
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
4027
3741
  # @return [Types::Expression]
4028
3742
  #
4029
3743
  # @!attribute [rw] configuration
4030
- # Enables you to customize recommendations across two attributes. You
4031
- # can choose to view recommendations for instances within the same
4032
- # instance families or across different instance families. You can
4033
- # also choose to view your estimated savings associated with
4034
- # recommendations with consideration of existing Savings Plans or RI
4035
- # benefits, or neither.
3744
+ # You can use Configuration to customize recommendations across two
3745
+ # attributes. You can choose to view recommendations for instances
3746
+ # within the same instance families or across different instance
3747
+ # families. You can also choose to view your estimated savings that
3748
+ # are associated with recommendations with consideration of existing
3749
+ # Savings Plans or RI benefits, or neither.
4036
3750
  # @return [Types::RightsizingRecommendationConfiguration]
4037
3751
  #
4038
3752
  # @!attribute [rw] service
@@ -4079,12 +3793,12 @@ module Aws::CostExplorer
4079
3793
  # @return [String]
4080
3794
  #
4081
3795
  # @!attribute [rw] configuration
4082
- # Enables you to customize recommendations across two attributes. You
4083
- # can choose to view recommendations for instances within the same
4084
- # instance families or across different instance families. You can
4085
- # also choose to view your estimated savings associated with
4086
- # recommendations with consideration of existing Savings Plans or RI
4087
- # benefits, or neither.
3796
+ # You can use Configuration to customize recommendations across two
3797
+ # attributes. You can choose to view recommendations for instances
3798
+ # within the same instance families or across different instance
3799
+ # families. You can also choose to view your estimated savings that
3800
+ # are associated with recommendations with consideration of existing
3801
+ # Savings Plans or RI benefits, or neither.
4088
3802
  # @return [Types::RightsizingRecommendationConfiguration]
4089
3803
  #
4090
3804
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendationResponse AWS API Documentation
@@ -4099,60 +3813,36 @@ module Aws::CostExplorer
4099
3813
  include Aws::Structure
4100
3814
  end
4101
3815
 
4102
- # @note When making an API call, you may pass GetSavingsPlansCoverageRequest
4103
- # data as a hash:
4104
- #
4105
- # {
4106
- # time_period: { # required
4107
- # start: "YearMonthDay", # required
4108
- # end: "YearMonthDay", # required
4109
- # },
4110
- # group_by: [
4111
- # {
4112
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
4113
- # key: "GroupDefinitionKey",
4114
- # },
4115
- # ],
4116
- # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
4117
- # filter: {
4118
- # or: [
4119
- # {
4120
- # # recursive Expression
4121
- # },
4122
- # ],
4123
- # and: [
4124
- # {
4125
- # # recursive Expression
4126
- # },
4127
- # ],
4128
- # not: {
4129
- # # recursive Expression
4130
- # },
4131
- # dimensions: {
4132
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4133
- # values: ["Value"],
4134
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4135
- # },
4136
- # tags: {
4137
- # key: "TagKey",
4138
- # values: ["Value"],
4139
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4140
- # },
4141
- # cost_categories: {
4142
- # key: "CostCategoryName",
4143
- # values: ["Value"],
4144
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4145
- # },
4146
- # },
4147
- # metrics: ["MetricName"],
4148
- # next_token: "NextPageToken",
4149
- # max_results: 1,
4150
- # sort_by: {
4151
- # key: "SortDefinitionKey", # required
4152
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4153
- # },
4154
- # }
3816
+ # @!attribute [rw] recommendation_detail_id
3817
+ # The ID that is associated with the Savings Plan recommendation.
3818
+ # @return [String]
3819
+ #
3820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlanPurchaseRecommendationDetailsRequest AWS API Documentation
3821
+ #
3822
+ class GetSavingsPlanPurchaseRecommendationDetailsRequest < Struct.new(
3823
+ :recommendation_detail_id)
3824
+ SENSITIVE = []
3825
+ include Aws::Structure
3826
+ end
3827
+
3828
+ # @!attribute [rw] recommendation_detail_id
3829
+ # The ID that is associated with the Savings Plan recommendation.
3830
+ # @return [String]
3831
+ #
3832
+ # @!attribute [rw] recommendation_detail_data
3833
+ # Contains detailed information about a specific Savings Plan
3834
+ # recommendation.
3835
+ # @return [Types::RecommendationDetailData]
4155
3836
  #
3837
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlanPurchaseRecommendationDetailsResponse AWS API Documentation
3838
+ #
3839
+ class GetSavingsPlanPurchaseRecommendationDetailsResponse < Struct.new(
3840
+ :recommendation_detail_id,
3841
+ :recommendation_detail_data)
3842
+ SENSITIVE = []
3843
+ include Aws::Structure
3844
+ end
3845
+
4156
3846
  # @!attribute [rw] time_period
4157
3847
  # The time period that you want the usage and costs for. The `Start`
4158
3848
  # date must be within 13 months. The `End` date must be after the
@@ -4214,9 +3904,9 @@ module Aws::CostExplorer
4214
3904
  # @return [Integer]
4215
3905
  #
4216
3906
  # @!attribute [rw] sort_by
4217
- # The value by which you want to sort the data.
3907
+ # The value that you want to sort the data by.
4218
3908
  #
4219
- # The following values are supported for `Key`\:
3909
+ # The following values are supported for `Key`:
4220
3910
  #
4221
3911
  # * `SpendCoveredBySavingsPlan`
4222
3912
  #
@@ -4232,7 +3922,8 @@ module Aws::CostExplorer
4232
3922
  #
4233
3923
  # * `Service`
4234
3924
  #
4235
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3925
+ # The supported values for `SortOrder` are `ASCENDING` and
3926
+ # `DESCENDING`.
4236
3927
  # @return [Types::SortDefinition]
4237
3928
  #
4238
3929
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageRequest AWS API Documentation
@@ -4269,60 +3960,17 @@ module Aws::CostExplorer
4269
3960
  include Aws::Structure
4270
3961
  end
4271
3962
 
4272
- # @note When making an API call, you may pass GetSavingsPlansPurchaseRecommendationRequest
4273
- # data as a hash:
4274
- #
4275
- # {
4276
- # savings_plans_type: "COMPUTE_SP", # required, accepts COMPUTE_SP, EC2_INSTANCE_SP, SAGEMAKER_SP
4277
- # term_in_years: "ONE_YEAR", # required, accepts ONE_YEAR, THREE_YEARS
4278
- # payment_option: "NO_UPFRONT", # required, accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
4279
- # account_scope: "PAYER", # accepts PAYER, LINKED
4280
- # next_page_token: "NextPageToken",
4281
- # page_size: 1,
4282
- # lookback_period_in_days: "SEVEN_DAYS", # required, accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
4283
- # filter: {
4284
- # or: [
4285
- # {
4286
- # # recursive Expression
4287
- # },
4288
- # ],
4289
- # and: [
4290
- # {
4291
- # # recursive Expression
4292
- # },
4293
- # ],
4294
- # not: {
4295
- # # recursive Expression
4296
- # },
4297
- # dimensions: {
4298
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4299
- # values: ["Value"],
4300
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4301
- # },
4302
- # tags: {
4303
- # key: "TagKey",
4304
- # values: ["Value"],
4305
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4306
- # },
4307
- # cost_categories: {
4308
- # key: "CostCategoryName",
4309
- # values: ["Value"],
4310
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4311
- # },
4312
- # },
4313
- # }
4314
- #
4315
3963
  # @!attribute [rw] savings_plans_type
4316
- # The Savings Plans recommendation type requested.
3964
+ # The Savings Plans recommendation type that's requested.
4317
3965
  # @return [String]
4318
3966
  #
4319
3967
  # @!attribute [rw] term_in_years
4320
- # The savings plan recommendation term used to generate these
3968
+ # The savings plan recommendation term that's used to generate these
4321
3969
  # recommendations.
4322
3970
  # @return [String]
4323
3971
  #
4324
3972
  # @!attribute [rw] payment_option
4325
- # The payment option used to generate these recommendations.
3973
+ # The payment option that's used to generate these recommendations.
4326
3974
  # @return [String]
4327
3975
  #
4328
3976
  # @!attribute [rw] account_scope
@@ -4345,22 +3993,22 @@ module Aws::CostExplorer
4345
3993
  # @return [Integer]
4346
3994
  #
4347
3995
  # @!attribute [rw] lookback_period_in_days
4348
- # The lookback period used to generate the recommendation.
3996
+ # The lookback period that's used to generate the recommendation.
4349
3997
  # @return [String]
4350
3998
  #
4351
3999
  # @!attribute [rw] filter
4352
4000
  # You can filter your recommendations by Account ID with the
4353
4001
  # `LINKED_ACCOUNT` dimension. To filter your recommendations by
4354
4002
  # Account ID, specify `Key` as `LINKED_ACCOUNT` and `Value` as the
4355
- # comma-separated Acount ID(s) for which you want to see Savings Plans
4356
- # purchase recommendations.
4003
+ # comma-separated Acount ID(s) that you want to see Savings Plans
4004
+ # purchase recommendations for.
4357
4005
  #
4358
- # For GetSavingsPlansPurchaseRecommendation, the `Filter` does not
4006
+ # For GetSavingsPlansPurchaseRecommendation, the `Filter` doesn't
4359
4007
  # include `CostCategories` or `Tags`. It only includes `Dimensions`.
4360
4008
  # With `Dimensions`, `Key` must be `LINKED_ACCOUNT` and `Value` can be
4361
- # a single Account ID or multiple comma-separated Account IDs for
4362
- # which you want to see Savings Plans Purchase Recommendations. `AND`
4363
- # and `OR` operators are not supported.
4009
+ # a single Account ID or multiple comma-separated Account IDs that you
4010
+ # want to see Savings Plans Purchase Recommendations for. `AND` and
4011
+ # `OR` operators are not supported.
4364
4012
  # @return [Types::Expression]
4365
4013
  #
4366
4014
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendationRequest AWS API Documentation
@@ -4379,7 +4027,7 @@ module Aws::CostExplorer
4379
4027
  end
4380
4028
 
4381
4029
  # @!attribute [rw] metadata
4382
- # Information regarding this specific recommendation set.
4030
+ # Information that regards this specific recommendation set.
4383
4031
  # @return [Types::SavingsPlansPurchaseRecommendationMetadata]
4384
4032
  #
4385
4033
  # @!attribute [rw] savings_plans_purchase_recommendation
@@ -4403,53 +4051,6 @@ module Aws::CostExplorer
4403
4051
  include Aws::Structure
4404
4052
  end
4405
4053
 
4406
- # @note When making an API call, you may pass GetSavingsPlansUtilizationDetailsRequest
4407
- # data as a hash:
4408
- #
4409
- # {
4410
- # time_period: { # required
4411
- # start: "YearMonthDay", # required
4412
- # end: "YearMonthDay", # required
4413
- # },
4414
- # filter: {
4415
- # or: [
4416
- # {
4417
- # # recursive Expression
4418
- # },
4419
- # ],
4420
- # and: [
4421
- # {
4422
- # # recursive Expression
4423
- # },
4424
- # ],
4425
- # not: {
4426
- # # recursive Expression
4427
- # },
4428
- # dimensions: {
4429
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4430
- # values: ["Value"],
4431
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4432
- # },
4433
- # tags: {
4434
- # key: "TagKey",
4435
- # values: ["Value"],
4436
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4437
- # },
4438
- # cost_categories: {
4439
- # key: "CostCategoryName",
4440
- # values: ["Value"],
4441
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4442
- # },
4443
- # },
4444
- # data_type: ["ATTRIBUTES"], # accepts ATTRIBUTES, UTILIZATION, AMORTIZED_COMMITMENT, SAVINGS
4445
- # next_token: "NextPageToken",
4446
- # max_results: 1,
4447
- # sort_by: {
4448
- # key: "SortDefinitionKey", # required
4449
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4450
- # },
4451
- # }
4452
- #
4453
4054
  # @!attribute [rw] time_period
4454
4055
  # The time period that you want the usage and costs for. The `Start`
4455
4056
  # date must be within 13 months. The `End` date must be after the
@@ -4496,9 +4097,9 @@ module Aws::CostExplorer
4496
4097
  # @return [Integer]
4497
4098
  #
4498
4099
  # @!attribute [rw] sort_by
4499
- # The value by which you want to sort the data.
4100
+ # The value that you want to sort the data by.
4500
4101
  #
4501
- # The following values are supported for `Key`\:
4102
+ # The following values are supported for `Key`:
4502
4103
  #
4503
4104
  # * `UtilizationPercentage`
4504
4105
  #
@@ -4514,7 +4115,8 @@ module Aws::CostExplorer
4514
4115
  #
4515
4116
  # * `AmortizedUpfrontCommitment`
4516
4117
  #
4517
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4118
+ # The supported values for `SortOrder` are `ASCENDING` and
4119
+ # `DESCENDING`.
4518
4120
  # @return [Types::SortDefinition]
4519
4121
  #
4520
4122
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsRequest AWS API Documentation
@@ -4560,51 +4162,6 @@ module Aws::CostExplorer
4560
4162
  include Aws::Structure
4561
4163
  end
4562
4164
 
4563
- # @note When making an API call, you may pass GetSavingsPlansUtilizationRequest
4564
- # data as a hash:
4565
- #
4566
- # {
4567
- # time_period: { # required
4568
- # start: "YearMonthDay", # required
4569
- # end: "YearMonthDay", # required
4570
- # },
4571
- # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
4572
- # filter: {
4573
- # or: [
4574
- # {
4575
- # # recursive Expression
4576
- # },
4577
- # ],
4578
- # and: [
4579
- # {
4580
- # # recursive Expression
4581
- # },
4582
- # ],
4583
- # not: {
4584
- # # recursive Expression
4585
- # },
4586
- # dimensions: {
4587
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4588
- # values: ["Value"],
4589
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4590
- # },
4591
- # tags: {
4592
- # key: "TagKey",
4593
- # values: ["Value"],
4594
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4595
- # },
4596
- # cost_categories: {
4597
- # key: "CostCategoryName",
4598
- # values: ["Value"],
4599
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4600
- # },
4601
- # },
4602
- # sort_by: {
4603
- # key: "SortDefinitionKey", # required
4604
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4605
- # },
4606
- # }
4607
- #
4608
4165
  # @!attribute [rw] time_period
4609
4166
  # The time period that you want the usage and costs for. The `Start`
4610
4167
  # date must be within 13 months. The `End` date must be after the
@@ -4646,9 +4203,9 @@ module Aws::CostExplorer
4646
4203
  # @return [Types::Expression]
4647
4204
  #
4648
4205
  # @!attribute [rw] sort_by
4649
- # The value by which you want to sort the data.
4206
+ # The value that you want to sort the data by.
4650
4207
  #
4651
- # The following values are supported for `Key`\:
4208
+ # The following values are supported for `Key`:
4652
4209
  #
4653
4210
  # * `UtilizationPercentage`
4654
4211
  #
@@ -4660,7 +4217,8 @@ module Aws::CostExplorer
4660
4217
  #
4661
4218
  # * `NetSavings`
4662
4219
  #
4663
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4220
+ # The supported values for `SortOrder` are `ASCENDING` and
4221
+ # `DESCENDING`.
4664
4222
  # @return [Types::SortDefinition]
4665
4223
  #
4666
4224
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationRequest AWS API Documentation
@@ -4675,8 +4233,8 @@ module Aws::CostExplorer
4675
4233
  end
4676
4234
 
4677
4235
  # @!attribute [rw] savings_plans_utilizations_by_time
4678
- # The amount of cost/commitment you used your Savings Plans. This
4679
- # allows you to specify date ranges.
4236
+ # The amount of cost/commitment that you used your Savings Plans. You
4237
+ # can use it to specify date ranges.
4680
4238
  # @return [Array<Types::SavingsPlansUtilizationByTime>]
4681
4239
  #
4682
4240
  # @!attribute [rw] total
@@ -4693,56 +4251,6 @@ module Aws::CostExplorer
4693
4251
  include Aws::Structure
4694
4252
  end
4695
4253
 
4696
- # @note When making an API call, you may pass GetTagsRequest
4697
- # data as a hash:
4698
- #
4699
- # {
4700
- # search_string: "SearchString",
4701
- # time_period: { # required
4702
- # start: "YearMonthDay", # required
4703
- # end: "YearMonthDay", # required
4704
- # },
4705
- # tag_key: "TagKey",
4706
- # filter: {
4707
- # or: [
4708
- # {
4709
- # # recursive Expression
4710
- # },
4711
- # ],
4712
- # and: [
4713
- # {
4714
- # # recursive Expression
4715
- # },
4716
- # ],
4717
- # not: {
4718
- # # recursive Expression
4719
- # },
4720
- # dimensions: {
4721
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4722
- # values: ["Value"],
4723
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4724
- # },
4725
- # tags: {
4726
- # key: "TagKey",
4727
- # values: ["Value"],
4728
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4729
- # },
4730
- # cost_categories: {
4731
- # key: "CostCategoryName",
4732
- # values: ["Value"],
4733
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4734
- # },
4735
- # },
4736
- # sort_by: [
4737
- # {
4738
- # key: "SortDefinitionKey", # required
4739
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4740
- # },
4741
- # ],
4742
- # max_results: 1,
4743
- # next_page_token: "NextPageToken",
4744
- # }
4745
- #
4746
4254
  # @!attribute [rw] search_string
4747
4255
  # The value that you want to search for.
4748
4256
  # @return [String]
@@ -4760,46 +4268,84 @@ module Aws::CostExplorer
4760
4268
  # @return [String]
4761
4269
  #
4762
4270
  # @!attribute [rw] filter
4763
- # Use `Expression` to filter by cost or by usage. There are two
4764
- # patterns:
4765
- #
4766
- # * Simple dimension values - You can set the dimension name and
4767
- # values for the filters that you plan to use. For example, you can
4768
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
4769
- # `GetRightsizingRecommendation`, the Region is a full name (for
4770
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
4771
- # is as follows:
4772
- #
4773
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4774
- # “us-west-1” ] \} \}`
4775
- #
4776
- # The list of dimension values are OR'd together to retrieve cost
4777
- # or usage data. You can create `Expression` and `DimensionValues`
4778
- # objects using either `with*` methods or `set*` methods in multiple
4779
- # lines.
4780
- #
4781
- # * Compound dimension values with logical operations - You can use
4782
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
4783
- # to create a list of one or more `Expression` objects. By doing
4784
- # this, you can filter on more advanced options. For example, you
4785
- # can filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
4786
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
4787
- # `Expression` for that is as follows:
4788
- #
4789
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4790
- # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4791
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4792
- # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
4793
- # \}\}\} ] \} `
4271
+ # Use `Expression` to filter in various Cost Explorer APIs.
4272
+ #
4273
+ # Not all `Expression` types are supported in each API. Refer to the
4274
+ # documentation for each specific API to see what is supported.
4275
+ #
4276
+ # There are two patterns:
4277
+ #
4278
+ # * Simple dimension values.
4279
+ #
4280
+ # * There are three types of simple dimension values:
4281
+ # `CostCategories`, `Tags`, and `Dimensions`.
4282
+ #
4283
+ # * Specify the `CostCategories` field to define a filter that
4284
+ # acts on Cost Categories.
4285
+ #
4286
+ # * Specify the `Tags` field to define a filter that acts on Cost
4287
+ # Allocation Tags.
4288
+ #
4289
+ # * Specify the `Dimensions` field to define a filter that acts on
4290
+ # the [ `DimensionValues` ][1].
4291
+ #
4292
+ # * For each filter type, you can set the dimension name and values
4293
+ # for the filters that you plan to use.
4294
+ #
4295
+ # * For example, you can filter for `REGION==us-east-1 OR
4296
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
4297
+ # Region is a full name (for example, `REGION==US East (N.
4298
+ # Virginia)`.
4299
+ #
4300
+ # * The corresponding `Expression` for this example is as follows:
4301
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4302
+ # "us-west-1" ] \} \}`
4303
+ #
4304
+ # * As shown in the previous example, lists of dimension values
4305
+ # are combined with `OR` when applying the filter.
4306
+ #
4307
+ # * You can also set different match options to further control how
4308
+ # the filter behaves. Not all APIs support match options. Refer to
4309
+ # the documentation for each specific API to see what is
4310
+ # supported.
4311
+ #
4312
+ # * For example, you can filter for linked account names that
4313
+ # start with "a".
4314
+ #
4315
+ # * The corresponding `Expression` for this example is as follows:
4316
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
4317
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
4318
+ #
4319
+ # * Compound `Expression` types with logical operations.
4320
+ #
4321
+ # * You can use multiple `Expression` types and the logical
4322
+ # operators `AND/OR/NOT` to create a list of one or more
4323
+ # `Expression` objects. By doing this, you can filter by more
4324
+ # advanced options.
4325
+ #
4326
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
4327
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4328
+ # DataTransfer)`.
4329
+ #
4330
+ # * The corresponding `Expression` for this example is as follows:
4331
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4332
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4333
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4334
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values":
4335
+ # ["DataTransfer"] \}\}\} ] \} `
4794
4336
  #
4795
4337
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
4796
4338
  # returns an error if more than one is specified. The following
4797
- # example shows an `Expression` object that creates an error.
4339
+ # example shows an `Expression` object that creates an error: ` \{
4340
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
4341
+ # "DataTransfer" ] \} \} `
4798
4342
  #
4799
- # </note>
4343
+ # The following is an example of the corresponding error message:
4344
+ # `"Expression has more than one roots. Only one root operator is
4345
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
4346
+ # CostCategories"`
4800
4347
  #
4801
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
4802
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
4348
+ # </note>
4803
4349
  #
4804
4350
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
4805
4351
  # and NOT isn't supported. OR isn't supported between different
@@ -4812,10 +4358,14 @@ module Aws::CostExplorer
4812
4358
  # `LINKED_ACCOUNT`.
4813
4359
  #
4814
4360
  # </note>
4361
+ #
4362
+ #
4363
+ #
4364
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
4815
4365
  # @return [Types::Expression]
4816
4366
  #
4817
4367
  # @!attribute [rw] sort_by
4818
- # The value by which you want to sort the data.
4368
+ # The value that you want to sort the data by.
4819
4369
  #
4820
4370
  # The key represents cost and usage metrics. The following values are
4821
4371
  # supported:
@@ -4834,19 +4384,20 @@ module Aws::CostExplorer
4834
4384
  #
4835
4385
  # * `NormalizedUsageAmount`
4836
4386
  #
4837
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4387
+ # The supported values for `SortOrder` are `ASCENDING` and
4388
+ # `DESCENDING`.
4838
4389
  #
4839
- # When using `SortBy`, `NextPageToken` and `SearchString` are not
4390
+ # When you use `SortBy`, `NextPageToken` and `SearchString` aren't
4840
4391
  # supported.
4841
4392
  # @return [Array<Types::SortDefinition>]
4842
4393
  #
4843
4394
  # @!attribute [rw] max_results
4844
4395
  # This field is only used when SortBy is provided in the request. The
4845
- # maximum number of objects that to be returned for this request. If
4846
- # MaxResults is not specified with SortBy, the request will return
4847
- # 1000 results as the default value for this parameter.
4396
+ # maximum number of objects that are returned for this request. If
4397
+ # MaxResults isn't specified with SortBy, the request returns 1000
4398
+ # results as the default value for this parameter.
4848
4399
  #
4849
- # For `GetTags`, MaxResults has an upper limit of 1000.
4400
+ # For `GetTags`, MaxResults has an upper quota of 1000.
4850
4401
  # @return [Integer]
4851
4402
  #
4852
4403
  # @!attribute [rw] next_page_token
@@ -4899,57 +4450,14 @@ module Aws::CostExplorer
4899
4450
  include Aws::Structure
4900
4451
  end
4901
4452
 
4902
- # @note When making an API call, you may pass GetUsageForecastRequest
4903
- # data as a hash:
4904
- #
4905
- # {
4906
- # time_period: { # required
4907
- # start: "YearMonthDay", # required
4908
- # end: "YearMonthDay", # required
4909
- # },
4910
- # metric: "BLENDED_COST", # required, accepts BLENDED_COST, UNBLENDED_COST, AMORTIZED_COST, NET_UNBLENDED_COST, NET_AMORTIZED_COST, USAGE_QUANTITY, NORMALIZED_USAGE_AMOUNT
4911
- # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
4912
- # filter: {
4913
- # or: [
4914
- # {
4915
- # # recursive Expression
4916
- # },
4917
- # ],
4918
- # and: [
4919
- # {
4920
- # # recursive Expression
4921
- # },
4922
- # ],
4923
- # not: {
4924
- # # recursive Expression
4925
- # },
4926
- # dimensions: {
4927
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4928
- # values: ["Value"],
4929
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4930
- # },
4931
- # tags: {
4932
- # key: "TagKey",
4933
- # values: ["Value"],
4934
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4935
- # },
4936
- # cost_categories: {
4937
- # key: "CostCategoryName",
4938
- # values: ["Value"],
4939
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4940
- # },
4941
- # },
4942
- # prediction_interval_level: 1,
4943
- # }
4944
- #
4945
4453
  # @!attribute [rw] time_period
4946
4454
  # The start and end dates of the period that you want to retrieve
4947
- # usage forecast for. The start date is inclusive, but the end date is
4948
- # exclusive. For example, if `start` is `2017-01-01` and `end` is
4949
- # `2017-05-01`, then the cost and usage data is retrieved from
4950
- # `2017-01-01` up to and including `2017-04-30` but not including
4951
- # `2017-05-01`. The start date must be equal to or later than the
4952
- # current date to avoid a validation error.
4455
+ # usage forecast for. The start date is included in the period, but
4456
+ # the end date isn't included in the period. For example, if `start`
4457
+ # is `2017-01-01` and `end` is `2017-05-01`, then the cost and usage
4458
+ # data is retrieved from `2017-01-01` up to and including `2017-04-30`
4459
+ # but not including `2017-05-01`. The start date must be equal to or
4460
+ # later than the current date to avoid a validation error.
4953
4461
  # @return [Types::DateInterval]
4954
4462
  #
4955
4463
  # @!attribute [rw] metric
@@ -5023,12 +4531,12 @@ module Aws::CostExplorer
5023
4531
  # @return [Types::Expression]
5024
4532
  #
5025
4533
  # @!attribute [rw] prediction_interval_level
5026
- # Cost Explorer always returns the mean forecast as a single point.
5027
- # You can request a prediction interval around the mean by specifying
5028
- # a confidence level. The higher the confidence level, the more
5029
- # confident Cost Explorer is about the actual value falling in the
5030
- # prediction interval. Higher confidence levels result in wider
5031
- # prediction intervals.
4534
+ # Amazon Web Services Cost Explorer always returns the mean forecast
4535
+ # as a single point. You can request a prediction interval around the
4536
+ # mean by specifying a confidence level. The higher the confidence
4537
+ # level, the more confident Cost Explorer is about the actual value
4538
+ # falling in the prediction interval. Higher confidence levels result
4539
+ # in wider prediction intervals.
5032
4540
  # @return [Integer]
5033
4541
  #
5034
4542
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecastRequest AWS API Documentation
@@ -5084,14 +4592,6 @@ module Aws::CostExplorer
5084
4592
  # Represents a group when you specify a group by criteria or in the
5085
4593
  # response to a query with a specific grouping.
5086
4594
  #
5087
- # @note When making an API call, you may pass GroupDefinition
5088
- # data as a hash:
5089
- #
5090
- # {
5091
- # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
5092
- # key: "GroupDefinitionKey",
5093
- # }
5094
- #
5095
4595
  # @!attribute [rw] type
5096
4596
  # The string that represents the type of group.
5097
4597
  # @return [String]
@@ -5116,46 +4616,76 @@ module Aws::CostExplorer
5116
4616
  # @return [Float]
5117
4617
  #
5118
4618
  # @!attribute [rw] total_impact
5119
- # The cumulative dollar value that's observed for an anomaly.
4619
+ # The cumulative dollar difference between the total actual spend and
4620
+ # total expected spend. It is calculated as `TotalActualSpend -
4621
+ # TotalExpectedSpend`.
4622
+ # @return [Float]
4623
+ #
4624
+ # @!attribute [rw] total_actual_spend
4625
+ # The cumulative dollar amount that was actually spent during the
4626
+ # anomaly.
4627
+ # @return [Float]
4628
+ #
4629
+ # @!attribute [rw] total_expected_spend
4630
+ # The cumulative dollar amount that was expected to be spent during
4631
+ # the anomaly. It is calculated using advanced machine learning models
4632
+ # to determine the typical spending pattern based on historical data
4633
+ # for a customer.
4634
+ # @return [Float]
4635
+ #
4636
+ # @!attribute [rw] total_impact_percentage
4637
+ # The cumulative percentage difference between the total actual spend
4638
+ # and total expected spend. It is calculated as `(TotalImpact /
4639
+ # TotalExpectedSpend) * 100`. When `TotalExpectedSpend` is zero, this
4640
+ # field is omitted. Expected spend can be zero in situations such as
4641
+ # when you start to use a service for the first time.
5120
4642
  # @return [Float]
5121
4643
  #
5122
4644
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Impact AWS API Documentation
5123
4645
  #
5124
4646
  class Impact < Struct.new(
5125
4647
  :max_impact,
5126
- :total_impact)
4648
+ :total_impact,
4649
+ :total_actual_spend,
4650
+ :total_expected_spend,
4651
+ :total_impact_percentage)
5127
4652
  SENSITIVE = []
5128
4653
  include Aws::Structure
5129
4654
  end
5130
4655
 
5131
- # Details about the instances that Amazon Web Services recommends that
5132
- # you purchase.
4656
+ # Details about the reservations that Amazon Web Services recommends
4657
+ # that you purchase.
5133
4658
  #
5134
4659
  # @!attribute [rw] ec2_instance_details
5135
- # The Amazon EC2 instances that Amazon Web Services recommends that
4660
+ # The Amazon EC2 reservations that Amazon Web Services recommends that
5136
4661
  # you purchase.
5137
4662
  # @return [Types::EC2InstanceDetails]
5138
4663
  #
5139
4664
  # @!attribute [rw] rds_instance_details
5140
- # The Amazon RDS instances that Amazon Web Services recommends that
4665
+ # The Amazon RDS reservations that Amazon Web Services recommends that
5141
4666
  # you purchase.
5142
4667
  # @return [Types::RDSInstanceDetails]
5143
4668
  #
5144
4669
  # @!attribute [rw] redshift_instance_details
5145
- # The Amazon Redshift instances that Amazon Web Services recommends
4670
+ # The Amazon Redshift reservations that Amazon Web Services recommends
5146
4671
  # that you purchase.
5147
4672
  # @return [Types::RedshiftInstanceDetails]
5148
4673
  #
5149
4674
  # @!attribute [rw] elasticache_instance_details
5150
- # The ElastiCache instances that Amazon Web Services recommends that
5151
- # you purchase.
4675
+ # The ElastiCache reservations that Amazon Web Services recommends
4676
+ # that you purchase.
5152
4677
  # @return [Types::ElastiCacheInstanceDetails]
5153
4678
  #
5154
4679
  # @!attribute [rw] es_instance_details
5155
- # The Amazon ES instances that Amazon Web Services recommends that you
5156
- # purchase.
4680
+ # The Amazon OpenSearch Service reservations that Amazon Web Services
4681
+ # recommends that you purchase.
5157
4682
  # @return [Types::ESInstanceDetails]
5158
4683
  #
4684
+ # @!attribute [rw] memory_db_instance_details
4685
+ # The MemoryDB reservations that Amazon Web Services recommends that
4686
+ # you purchase.
4687
+ # @return [Types::MemoryDBInstanceDetails]
4688
+ #
5159
4689
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/InstanceDetails AWS API Documentation
5160
4690
  #
5161
4691
  class InstanceDetails < Struct.new(
@@ -5163,7 +4693,8 @@ module Aws::CostExplorer
5163
4693
  :rds_instance_details,
5164
4694
  :redshift_instance_details,
5165
4695
  :elasticache_instance_details,
5166
- :es_instance_details)
4696
+ :es_instance_details,
4697
+ :memory_db_instance_details)
5167
4698
  SENSITIVE = []
5168
4699
  include Aws::Structure
5169
4700
  end
@@ -5194,15 +4725,67 @@ module Aws::CostExplorer
5194
4725
  include Aws::Structure
5195
4726
  end
5196
4727
 
5197
- # @note When making an API call, you may pass ListCostCategoryDefinitionsRequest
5198
- # data as a hash:
4728
+ # @!attribute [rw] status
4729
+ # The status of cost allocation tag keys that are returned for this
4730
+ # request.
4731
+ # @return [String]
4732
+ #
4733
+ # @!attribute [rw] tag_keys
4734
+ # The list of cost allocation tag keys that are returned for this
4735
+ # request.
4736
+ # @return [Array<String>]
4737
+ #
4738
+ # @!attribute [rw] type
4739
+ # The type of `CostAllocationTag` object that are returned for this
4740
+ # request. The `AWSGenerated` type tags are tags that Amazon Web
4741
+ # Services defines and applies to support Amazon Web Services
4742
+ # resources for cost allocation purposes. The `UserDefined` type tags
4743
+ # are tags that you define, create, and apply to resources.
4744
+ # @return [String]
4745
+ #
4746
+ # @!attribute [rw] next_token
4747
+ # The token to retrieve the next set of results. Amazon Web Services
4748
+ # provides the token when the response from a previous call has more
4749
+ # results than the maximum page size.
4750
+ # @return [String]
4751
+ #
4752
+ # @!attribute [rw] max_results
4753
+ # The maximum number of objects that are returned for this request. By
4754
+ # default, the request returns 100 results.
4755
+ # @return [Integer]
5199
4756
  #
5200
- # {
5201
- # effective_on: "ZonedDateTime",
5202
- # next_token: "NextPageToken",
5203
- # max_results: 1,
5204
- # }
4757
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostAllocationTagsRequest AWS API Documentation
5205
4758
  #
4759
+ class ListCostAllocationTagsRequest < Struct.new(
4760
+ :status,
4761
+ :tag_keys,
4762
+ :type,
4763
+ :next_token,
4764
+ :max_results)
4765
+ SENSITIVE = []
4766
+ include Aws::Structure
4767
+ end
4768
+
4769
+ # @!attribute [rw] cost_allocation_tags
4770
+ # A list of cost allocation tags that includes the detailed metadata
4771
+ # for each one.
4772
+ # @return [Array<Types::CostAllocationTag>]
4773
+ #
4774
+ # @!attribute [rw] next_token
4775
+ # The token to retrieve the next set of results. Amazon Web Services
4776
+ # provides the token when the response from a previous call has more
4777
+ # results than the maximum page size.
4778
+ # @return [String]
4779
+ #
4780
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostAllocationTagsResponse AWS API Documentation
4781
+ #
4782
+ class ListCostAllocationTagsResponse < Struct.new(
4783
+ :cost_allocation_tags,
4784
+ :next_token)
4785
+ SENSITIVE = []
4786
+ include Aws::Structure
4787
+ end
4788
+
5206
4789
  # @!attribute [rw] effective_on
5207
4790
  # The date when the Cost Category was effective.
5208
4791
  # @return [String]
@@ -5228,7 +4811,7 @@ module Aws::CostExplorer
5228
4811
  end
5229
4812
 
5230
4813
  # @!attribute [rw] cost_category_references
5231
- # A reference to a Cost Category containing enough information to
4814
+ # A reference to a Cost Category that contains enough information to
5232
4815
  # identify the Cost Category.
5233
4816
  # @return [Array<Types::CostCategoryReference>]
5234
4817
  #
@@ -5247,31 +4830,141 @@ module Aws::CostExplorer
5247
4830
  include Aws::Structure
5248
4831
  end
5249
4832
 
5250
- # The aggregated value for a metric.
5251
- #
5252
- # @!attribute [rw] amount
5253
- # The actual number that represents the metric.
4833
+ # @!attribute [rw] generation_status
4834
+ # The status of the recommendation generation.
5254
4835
  # @return [String]
5255
4836
  #
5256
- # @!attribute [rw] unit
5257
- # The unit that the metric is given in.
4837
+ # @!attribute [rw] recommendation_ids
4838
+ # The IDs for each specific recommendation.
4839
+ # @return [Array<String>]
4840
+ #
4841
+ # @!attribute [rw] page_size
4842
+ # The number of recommendations that you want returned in a single
4843
+ # response object.
4844
+ # @return [Integer]
4845
+ #
4846
+ # @!attribute [rw] next_page_token
4847
+ # The token to retrieve the next set of results.
5258
4848
  # @return [String]
5259
4849
  #
5260
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/MetricValue AWS API Documentation
4850
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListSavingsPlansPurchaseRecommendationGenerationRequest AWS API Documentation
5261
4851
  #
5262
- class MetricValue < Struct.new(
5263
- :amount,
5264
- :unit)
4852
+ class ListSavingsPlansPurchaseRecommendationGenerationRequest < Struct.new(
4853
+ :generation_status,
4854
+ :recommendation_ids,
4855
+ :page_size,
4856
+ :next_page_token)
5265
4857
  SENSITIVE = []
5266
4858
  include Aws::Structure
5267
4859
  end
5268
4860
 
5269
- # Details on the modification recommendation.
4861
+ # @!attribute [rw] generation_summary_list
4862
+ # The list of historical recommendation generations.
4863
+ # @return [Array<Types::GenerationSummary>]
5270
4864
  #
5271
- # @!attribute [rw] target_instances
5272
- # Determines whether this instance type is the Amazon Web Services
5273
- # default recommendation.
5274
- # @return [Array<Types::TargetInstance>]
4865
+ # @!attribute [rw] next_page_token
4866
+ # The token to retrieve the next set of results.
4867
+ # @return [String]
4868
+ #
4869
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListSavingsPlansPurchaseRecommendationGenerationResponse AWS API Documentation
4870
+ #
4871
+ class ListSavingsPlansPurchaseRecommendationGenerationResponse < Struct.new(
4872
+ :generation_summary_list,
4873
+ :next_page_token)
4874
+ SENSITIVE = []
4875
+ include Aws::Structure
4876
+ end
4877
+
4878
+ # @!attribute [rw] resource_arn
4879
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4880
+ # supported resources, see [ResourceTag][1].
4881
+ #
4882
+ #
4883
+ #
4884
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4885
+ # @return [String]
4886
+ #
4887
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResourceRequest AWS API Documentation
4888
+ #
4889
+ class ListTagsForResourceRequest < Struct.new(
4890
+ :resource_arn)
4891
+ SENSITIVE = []
4892
+ include Aws::Structure
4893
+ end
4894
+
4895
+ # @!attribute [rw] resource_tags
4896
+ # A list of tag key value pairs that are associated with the resource.
4897
+ # @return [Array<Types::ResourceTag>]
4898
+ #
4899
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResourceResponse AWS API Documentation
4900
+ #
4901
+ class ListTagsForResourceResponse < Struct.new(
4902
+ :resource_tags)
4903
+ SENSITIVE = []
4904
+ include Aws::Structure
4905
+ end
4906
+
4907
+ # Details about the MemoryDB reservations that Amazon Web Services
4908
+ # recommends that you purchase.
4909
+ #
4910
+ # @!attribute [rw] family
4911
+ # The instance family of the recommended reservation.
4912
+ # @return [String]
4913
+ #
4914
+ # @!attribute [rw] node_type
4915
+ # The node type of the recommended reservation.
4916
+ # @return [String]
4917
+ #
4918
+ # @!attribute [rw] region
4919
+ # The Amazon Web Services Region of the recommended reservation.
4920
+ # @return [String]
4921
+ #
4922
+ # @!attribute [rw] current_generation
4923
+ # Determines whether the recommendation is for a current generation
4924
+ # instance.
4925
+ # @return [Boolean]
4926
+ #
4927
+ # @!attribute [rw] size_flex_eligible
4928
+ # Determines whether the recommended reservation is size flexible.
4929
+ # @return [Boolean]
4930
+ #
4931
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/MemoryDBInstanceDetails AWS API Documentation
4932
+ #
4933
+ class MemoryDBInstanceDetails < Struct.new(
4934
+ :family,
4935
+ :node_type,
4936
+ :region,
4937
+ :current_generation,
4938
+ :size_flex_eligible)
4939
+ SENSITIVE = []
4940
+ include Aws::Structure
4941
+ end
4942
+
4943
+ # The aggregated value for a metric.
4944
+ #
4945
+ # @!attribute [rw] amount
4946
+ # The actual number that represents the metric.
4947
+ # @return [String]
4948
+ #
4949
+ # @!attribute [rw] unit
4950
+ # The unit that the metric is given in.
4951
+ # @return [String]
4952
+ #
4953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/MetricValue AWS API Documentation
4954
+ #
4955
+ class MetricValue < Struct.new(
4956
+ :amount,
4957
+ :unit)
4958
+ SENSITIVE = []
4959
+ include Aws::Structure
4960
+ end
4961
+
4962
+ # Details for the modification recommendation.
4963
+ #
4964
+ # @!attribute [rw] target_instances
4965
+ # Determines whether this instance type is the Amazon Web Services
4966
+ # default recommendation.
4967
+ # @return [Array<Types::TargetInstance>]
5275
4968
  #
5276
4969
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ModifyRecommendationDetail AWS API Documentation
5277
4970
  #
@@ -5286,20 +4979,20 @@ module Aws::CostExplorer
5286
4979
  #
5287
4980
  # @!attribute [rw] network_in_bytes_per_second
5288
4981
  # The network inbound throughput utilization measured in Bytes per
5289
- # second.
4982
+ # second (Bps).
5290
4983
  # @return [String]
5291
4984
  #
5292
4985
  # @!attribute [rw] network_out_bytes_per_second
5293
4986
  # The network outbound throughput utilization measured in Bytes per
5294
- # second.
4987
+ # second (Bps).
5295
4988
  # @return [String]
5296
4989
  #
5297
4990
  # @!attribute [rw] network_packets_in_per_second
5298
- # The network ingress packets that are measured in packets per second.
4991
+ # The network inbound packets that are measured in packets per second.
5299
4992
  # @return [String]
5300
4993
  #
5301
4994
  # @!attribute [rw] network_packets_out_per_second
5302
- # The network outgress packets that are measured in packets per
4995
+ # The network outbound packets that are measured in packets per
5303
4996
  # second.
5304
4997
  # @return [String]
5305
4998
  #
@@ -5314,14 +5007,6 @@ module Aws::CostExplorer
5314
5007
  include Aws::Structure
5315
5008
  end
5316
5009
 
5317
- # @note When making an API call, you may pass ProvideAnomalyFeedbackRequest
5318
- # data as a hash:
5319
- #
5320
- # {
5321
- # anomaly_id: "GenericString", # required
5322
- # feedback: "YES", # required, accepts YES, NO, PLANNED_ACTIVITY
5323
- # }
5324
- #
5325
5010
  # @!attribute [rw] anomaly_id
5326
5011
  # A cost anomaly ID.
5327
5012
  # @return [String]
@@ -5352,7 +5037,7 @@ module Aws::CostExplorer
5352
5037
  include Aws::Structure
5353
5038
  end
5354
5039
 
5355
- # Details about the Amazon RDS instances that Amazon Web Services
5040
+ # Details about the Amazon RDS reservations that Amazon Web Services
5356
5041
  # recommends that you purchase.
5357
5042
  #
5358
5043
  # @!attribute [rw] family
@@ -5410,8 +5095,223 @@ module Aws::CostExplorer
5410
5095
  include Aws::Structure
5411
5096
  end
5412
5097
 
5413
- # Details about the Amazon Redshift instances that Amazon Web Services
5414
- # recommends that you purchase.
5098
+ # The details and metrics for the given recommendation.
5099
+ #
5100
+ # @!attribute [rw] account_scope
5101
+ # The account scope that you want your recommendations for. Amazon Web
5102
+ # Services calculates recommendations including the management account
5103
+ # and member accounts if the value is set to PAYER. If the value is
5104
+ # LINKED, recommendations are calculated for individual member
5105
+ # accounts only.
5106
+ # @return [String]
5107
+ #
5108
+ # @!attribute [rw] lookback_period_in_days
5109
+ # How many days of previous usage that Amazon Web Services considers
5110
+ # when making this recommendation.
5111
+ # @return [String]
5112
+ #
5113
+ # @!attribute [rw] savings_plans_type
5114
+ # The requested Savings Plan recommendation type.
5115
+ # @return [String]
5116
+ #
5117
+ # @!attribute [rw] term_in_years
5118
+ # The term of the commitment in years.
5119
+ # @return [String]
5120
+ #
5121
+ # @!attribute [rw] payment_option
5122
+ # The payment option for the commitment (for example, All Upfront or
5123
+ # No Upfront).
5124
+ # @return [String]
5125
+ #
5126
+ # @!attribute [rw] account_id
5127
+ # The AccountID that the recommendation is generated for.
5128
+ # @return [String]
5129
+ #
5130
+ # @!attribute [rw] currency_code
5131
+ # The currency code that Amazon Web Services used to generate the
5132
+ # recommendation and present potential savings.
5133
+ # @return [String]
5134
+ #
5135
+ # @!attribute [rw] instance_family
5136
+ # The instance family of the recommended Savings Plan.
5137
+ # @return [String]
5138
+ #
5139
+ # @!attribute [rw] region
5140
+ # The region the recommendation is generated for.
5141
+ # @return [String]
5142
+ #
5143
+ # @!attribute [rw] offering_id
5144
+ # The unique ID that's used to distinguish Savings Plans from one
5145
+ # another.
5146
+ # @return [String]
5147
+ #
5148
+ # @!attribute [rw] generation_timestamp
5149
+ # The period of time that you want the usage and costs for.
5150
+ # @return [String]
5151
+ #
5152
+ # @!attribute [rw] latest_usage_timestamp
5153
+ # The period of time that you want the usage and costs for.
5154
+ # @return [String]
5155
+ #
5156
+ # @!attribute [rw] current_average_hourly_on_demand_spend
5157
+ # The average value of hourly On-Demand spend over the lookback period
5158
+ # of the applicable usage type.
5159
+ # @return [String]
5160
+ #
5161
+ # @!attribute [rw] current_maximum_hourly_on_demand_spend
5162
+ # The highest value of hourly On-Demand spend over the lookback period
5163
+ # of the applicable usage type.
5164
+ # @return [String]
5165
+ #
5166
+ # @!attribute [rw] current_minimum_hourly_on_demand_spend
5167
+ # The lowest value of hourly On-Demand spend over the lookback period
5168
+ # of the applicable usage type.
5169
+ # @return [String]
5170
+ #
5171
+ # @!attribute [rw] estimated_average_utilization
5172
+ # The estimated utilization of the recommended Savings Plan.
5173
+ # @return [String]
5174
+ #
5175
+ # @!attribute [rw] estimated_monthly_savings_amount
5176
+ # The estimated monthly savings amount based on the recommended
5177
+ # Savings Plan.
5178
+ # @return [String]
5179
+ #
5180
+ # @!attribute [rw] estimated_on_demand_cost
5181
+ # The remaining On-Demand cost estimated to not be covered by the
5182
+ # recommended Savings Plan, over the length of the lookback period.
5183
+ # @return [String]
5184
+ #
5185
+ # @!attribute [rw] estimated_on_demand_cost_with_current_commitment
5186
+ # The estimated On-Demand costs you expect with no additional
5187
+ # commitment, based on your usage of the selected time period and the
5188
+ # Savings Plan you own.
5189
+ # @return [String]
5190
+ #
5191
+ # @!attribute [rw] estimated_roi
5192
+ # The estimated return on investment that's based on the recommended
5193
+ # Savings Plan that you purchased. This is calculated as
5194
+ # estimatedSavingsAmount/estimatedSPCost*100.
5195
+ # @return [String]
5196
+ #
5197
+ # @!attribute [rw] estimated_sp_cost
5198
+ # The cost of the recommended Savings Plan over the length of the
5199
+ # lookback period.
5200
+ # @return [String]
5201
+ #
5202
+ # @!attribute [rw] estimated_savings_amount
5203
+ # The estimated savings amount that's based on the recommended
5204
+ # Savings Plan over the length of the lookback period.
5205
+ # @return [String]
5206
+ #
5207
+ # @!attribute [rw] estimated_savings_percentage
5208
+ # The estimated savings percentage relative to the total cost of
5209
+ # applicable On-Demand usage over the lookback period.
5210
+ # @return [String]
5211
+ #
5212
+ # @!attribute [rw] existing_hourly_commitment
5213
+ # The existing hourly commitment for the Savings Plan type.
5214
+ # @return [String]
5215
+ #
5216
+ # @!attribute [rw] hourly_commitment_to_purchase
5217
+ # The recommended hourly commitment level for the Savings Plan type
5218
+ # and the configuration that's based on the usage during the lookback
5219
+ # period.
5220
+ # @return [String]
5221
+ #
5222
+ # @!attribute [rw] upfront_cost
5223
+ # The upfront cost of the recommended Savings Plan, based on the
5224
+ # selected payment option.
5225
+ # @return [String]
5226
+ #
5227
+ # @!attribute [rw] current_average_coverage
5228
+ # The average value of hourly coverage over the lookback period.
5229
+ # @return [String]
5230
+ #
5231
+ # @!attribute [rw] estimated_average_coverage
5232
+ # The estimated coverage of the recommended Savings Plan.
5233
+ # @return [String]
5234
+ #
5235
+ # @!attribute [rw] metrics_over_lookback_period
5236
+ # The related hourly cost, coverage, and utilization metrics over the
5237
+ # lookback period.
5238
+ # @return [Array<Types::RecommendationDetailHourlyMetrics>]
5239
+ #
5240
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RecommendationDetailData AWS API Documentation
5241
+ #
5242
+ class RecommendationDetailData < Struct.new(
5243
+ :account_scope,
5244
+ :lookback_period_in_days,
5245
+ :savings_plans_type,
5246
+ :term_in_years,
5247
+ :payment_option,
5248
+ :account_id,
5249
+ :currency_code,
5250
+ :instance_family,
5251
+ :region,
5252
+ :offering_id,
5253
+ :generation_timestamp,
5254
+ :latest_usage_timestamp,
5255
+ :current_average_hourly_on_demand_spend,
5256
+ :current_maximum_hourly_on_demand_spend,
5257
+ :current_minimum_hourly_on_demand_spend,
5258
+ :estimated_average_utilization,
5259
+ :estimated_monthly_savings_amount,
5260
+ :estimated_on_demand_cost,
5261
+ :estimated_on_demand_cost_with_current_commitment,
5262
+ :estimated_roi,
5263
+ :estimated_sp_cost,
5264
+ :estimated_savings_amount,
5265
+ :estimated_savings_percentage,
5266
+ :existing_hourly_commitment,
5267
+ :hourly_commitment_to_purchase,
5268
+ :upfront_cost,
5269
+ :current_average_coverage,
5270
+ :estimated_average_coverage,
5271
+ :metrics_over_lookback_period)
5272
+ SENSITIVE = []
5273
+ include Aws::Structure
5274
+ end
5275
+
5276
+ # Contains the hourly metrics for the given recommendation over the
5277
+ # lookback period.
5278
+ #
5279
+ # @!attribute [rw] start_time
5280
+ # The period of time that you want the usage and costs for.
5281
+ # @return [String]
5282
+ #
5283
+ # @!attribute [rw] estimated_on_demand_cost
5284
+ # The remaining On-Demand cost estimated to not be covered by the
5285
+ # recommended Savings Plan, over the length of the lookback period.
5286
+ # @return [String]
5287
+ #
5288
+ # @!attribute [rw] current_coverage
5289
+ # The current amount of Savings Plans eligible usage that the Savings
5290
+ # Plan covered.
5291
+ # @return [String]
5292
+ #
5293
+ # @!attribute [rw] estimated_coverage
5294
+ # The estimated coverage amount based on the recommended Savings Plan.
5295
+ # @return [String]
5296
+ #
5297
+ # @!attribute [rw] estimated_new_commitment_utilization
5298
+ # The estimated utilization for the recommended Savings Plan.
5299
+ # @return [String]
5300
+ #
5301
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RecommendationDetailHourlyMetrics AWS API Documentation
5302
+ #
5303
+ class RecommendationDetailHourlyMetrics < Struct.new(
5304
+ :start_time,
5305
+ :estimated_on_demand_cost,
5306
+ :current_coverage,
5307
+ :estimated_coverage,
5308
+ :estimated_new_commitment_utilization)
5309
+ SENSITIVE = []
5310
+ include Aws::Structure
5311
+ end
5312
+
5313
+ # Details about the Amazon Redshift reservations that Amazon Web
5314
+ # Services recommends that you purchase.
5415
5315
  #
5416
5316
  # @!attribute [rw] family
5417
5317
  # The instance family of the recommended reservation.
@@ -5642,12 +5542,12 @@ module Aws::CostExplorer
5642
5542
  # Details about your recommended reservation purchase.
5643
5543
  #
5644
5544
  # @!attribute [rw] account_id
5645
- # The account that this RI recommendation is for.
5545
+ # The account that this Reserved Instance (RI) recommendation is for.
5646
5546
  # @return [String]
5647
5547
  #
5648
5548
  # @!attribute [rw] instance_details
5649
- # Details about the instances that Amazon Web Services recommends that
5650
- # you purchase.
5549
+ # Details about the reservations that Amazon Web Services recommends
5550
+ # that you purchase.
5651
5551
  # @return [Types::InstanceDetails]
5652
5552
  #
5653
5553
  # @!attribute [rw] recommended_number_of_instances_to_purchase
@@ -5713,12 +5613,12 @@ module Aws::CostExplorer
5713
5613
  #
5714
5614
  # @!attribute [rw] estimated_monthly_savings_amount
5715
5615
  # How much Amazon Web Services estimates that this specific
5716
- # recommendation could save you in a month.
5616
+ # recommendation might save you in a month.
5717
5617
  # @return [String]
5718
5618
  #
5719
5619
  # @!attribute [rw] estimated_monthly_savings_percentage
5720
5620
  # How much Amazon Web Services estimates that this specific
5721
- # recommendation could save you in a month, as a percentage of your
5621
+ # recommendation might save you in a month, as a percentage of your
5722
5622
  # overall costs.
5723
5623
  # @return [String]
5724
5624
  #
@@ -5728,8 +5628,8 @@ module Aws::CostExplorer
5728
5628
  # @return [String]
5729
5629
  #
5730
5630
  # @!attribute [rw] estimated_reservation_cost_for_lookback_period
5731
- # How much Amazon Web Services estimates that you would have spent for
5732
- # all usage during the specified historical period if you had a
5631
+ # How much Amazon Web Services estimates that you might spend for all
5632
+ # usage during the specified historical period if you had a
5733
5633
  # reservation.
5734
5634
  # @return [String]
5735
5635
  #
@@ -5845,10 +5745,10 @@ module Aws::CostExplorer
5845
5745
  include Aws::Structure
5846
5746
  end
5847
5747
 
5848
- # Details on the resource.
5748
+ # Details for the resource.
5849
5749
  #
5850
5750
  # @!attribute [rw] ec2_resource_details
5851
- # Details on the Amazon EC2 resource.
5751
+ # Details for the Amazon EC2 resource.
5852
5752
  # @return [Types::EC2ResourceDetails]
5853
5753
  #
5854
5754
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceDetails AWS API Documentation
@@ -5864,10 +5764,45 @@ module Aws::CostExplorer
5864
5764
  # @!attribute [rw] message
5865
5765
  # @return [String]
5866
5766
  #
5767
+ # @!attribute [rw] resource_name
5768
+ # @return [String]
5769
+ #
5867
5770
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceNotFoundException AWS API Documentation
5868
5771
  #
5869
5772
  class ResourceNotFoundException < Struct.new(
5870
- :message)
5773
+ :message,
5774
+ :resource_name)
5775
+ SENSITIVE = []
5776
+ include Aws::Structure
5777
+ end
5778
+
5779
+ # The tag structure that contains a tag key and value.
5780
+ #
5781
+ # <note markdown="1"> Tagging is supported only for the following Cost Explorer resource
5782
+ # types: [ `AnomalyMonitor` ][1], [ `AnomalySubscription` ][2], [
5783
+ # `CostCategory` ][3].
5784
+ #
5785
+ # </note>
5786
+ #
5787
+ #
5788
+ #
5789
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
5790
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
5791
+ # [3]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
5792
+ #
5793
+ # @!attribute [rw] key
5794
+ # The key that's associated with the tag.
5795
+ # @return [String]
5796
+ #
5797
+ # @!attribute [rw] value
5798
+ # The value that's associated with the tag.
5799
+ # @return [String]
5800
+ #
5801
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceTag AWS API Documentation
5802
+ #
5803
+ class ResourceTag < Struct.new(
5804
+ :key,
5805
+ :value)
5871
5806
  SENSITIVE = []
5872
5807
  include Aws::Structure
5873
5808
  end
@@ -5938,8 +5873,8 @@ module Aws::CostExplorer
5938
5873
  # @return [Types::TerminateRecommendationDetail]
5939
5874
  #
5940
5875
  # @!attribute [rw] finding_reason_codes
5941
- # The list of possible reasons why the recommendation is generated
5942
- # such as under or over utilization of specific metrics (for example,
5876
+ # The list of possible reasons why the recommendation is generated,
5877
+ # such as under- or over-utilization of specific metrics (for example,
5943
5878
  # CPU, Memory, Network).
5944
5879
  # @return [Array<String>]
5945
5880
  #
@@ -5961,15 +5896,8 @@ module Aws::CostExplorer
5961
5896
  # recommendations for instances within the same instance families or
5962
5897
  # across different instance families. You can also choose to view your
5963
5898
  # estimated savings that are associated with recommendations with
5964
- # consideration of existing Savings Plans or RI benefits, or neither.
5965
- #
5966
- # @note When making an API call, you may pass RightsizingRecommendationConfiguration
5967
- # data as a hash:
5968
- #
5969
- # {
5970
- # recommendation_target: "SAME_INSTANCE_FAMILY", # required, accepts SAME_INSTANCE_FAMILY, CROSS_INSTANCE_FAMILY
5971
- # benefits_considered: false, # required
5972
- # }
5899
+ # consideration of existing Savings Plans or Reserved Instance (RI)
5900
+ # benefits, or neither.
5973
5901
  #
5974
5902
  # @!attribute [rw] recommendation_target
5975
5903
  # The option to see recommendations within the same instance family or
@@ -6054,12 +5982,14 @@ module Aws::CostExplorer
6054
5982
  include Aws::Structure
6055
5983
  end
6056
5984
 
6057
- # The combination of Amazon Web Services service, linked account,
6058
- # Region, and usage type where a cost anomaly is observed.
5985
+ # The combination of Amazon Web Service, linked account, linked account
5986
+ # name, Region, and usage type where a cost anomaly is observed. The
5987
+ # linked account name will only be available when the account name can
5988
+ # be identified.
6059
5989
  #
6060
5990
  # @!attribute [rw] service
6061
- # The Amazon Web Services service name that's associated with the
6062
- # cost anomaly.
5991
+ # The Amazon Web Service name that's associated with the cost
5992
+ # anomaly.
6063
5993
  # @return [String]
6064
5994
  #
6065
5995
  # @!attribute [rw] region
@@ -6075,13 +6005,19 @@ module Aws::CostExplorer
6075
6005
  # The `UsageType` value that's associated with the cost anomaly.
6076
6006
  # @return [String]
6077
6007
  #
6008
+ # @!attribute [rw] linked_account_name
6009
+ # The member account name value that's associated with the cost
6010
+ # anomaly.
6011
+ # @return [String]
6012
+ #
6078
6013
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RootCause AWS API Documentation
6079
6014
  #
6080
6015
  class RootCause < Struct.new(
6081
6016
  :service,
6082
6017
  :region,
6083
6018
  :linked_account,
6084
- :usage_type)
6019
+ :usage_type,
6020
+ :linked_account_name)
6085
6021
  SENSITIVE = []
6086
6022
  include Aws::Structure
6087
6023
  end
@@ -6114,7 +6050,7 @@ module Aws::CostExplorer
6114
6050
  include Aws::Structure
6115
6051
  end
6116
6052
 
6117
- # The amount of Savings Plans eligible usage that is covered by Savings
6053
+ # The amount of Savings Plans eligible usage that's covered by Savings
6118
6054
  # Plans. All calculations consider the On-Demand equivalent of your
6119
6055
  # Savings Plans usage.
6120
6056
  #
@@ -6145,7 +6081,7 @@ module Aws::CostExplorer
6145
6081
  # Savings Plans, and total Savings Plans costs for an account.
6146
6082
  #
6147
6083
  # @!attribute [rw] spend_covered_by_savings_plans
6148
- # The amount of your Amazon Web Services usage that is covered by a
6084
+ # The amount of your Amazon Web Services usage that's covered by a
6149
6085
  # Savings Plans.
6150
6086
  # @return [String]
6151
6087
  #
@@ -6224,15 +6160,16 @@ module Aws::CostExplorer
6224
6160
  # @return [String]
6225
6161
  #
6226
6162
  # @!attribute [rw] payment_option
6227
- # The payment option used to generate the recommendation.
6163
+ # The payment option that's used to generate the recommendation.
6228
6164
  # @return [String]
6229
6165
  #
6230
6166
  # @!attribute [rw] lookback_period_in_days
6231
- # The lookback period in days, used to generate the recommendation.
6167
+ # The lookback period in days that's used to generate the
6168
+ # recommendation.
6232
6169
  # @return [String]
6233
6170
  #
6234
6171
  # @!attribute [rw] savings_plans_purchase_recommendation_details
6235
- # Details for the Savings Plans we recommend that you purchase to
6172
+ # Details for the Savings Plans that we recommend that you purchase to
6236
6173
  # cover existing Savings Plans eligible workloads.
6237
6174
  # @return [Array<Types::SavingsPlansPurchaseRecommendationDetail>]
6238
6175
  #
@@ -6291,7 +6228,7 @@ module Aws::CostExplorer
6291
6228
  # @return [String]
6292
6229
  #
6293
6230
  # @!attribute [rw] estimated_on_demand_cost_with_current_commitment
6294
- # The estimated On-Demand costs you would expect with no additional
6231
+ # The estimated On-Demand costs you expect with no additional
6295
6232
  # commitment, based on your usage of the selected time period and the
6296
6233
  # Savings Plans you own.
6297
6234
  # @return [String]
@@ -6336,6 +6273,11 @@ module Aws::CostExplorer
6336
6273
  # of the applicable usage type.
6337
6274
  # @return [String]
6338
6275
  #
6276
+ # @!attribute [rw] recommendation_detail_id
6277
+ # Contains detailed information about a specific Savings Plan
6278
+ # recommendation.
6279
+ # @return [String]
6280
+ #
6339
6281
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendationDetail AWS API Documentation
6340
6282
  #
6341
6283
  class SavingsPlansPurchaseRecommendationDetail < Struct.new(
@@ -6354,7 +6296,8 @@ module Aws::CostExplorer
6354
6296
  :estimated_monthly_savings_amount,
6355
6297
  :current_minimum_hourly_on_demand_spend,
6356
6298
  :current_maximum_hourly_on_demand_spend,
6357
- :current_average_hourly_on_demand_spend)
6299
+ :current_average_hourly_on_demand_spend,
6300
+ :recommendation_detail_id)
6358
6301
  SENSITIVE = []
6359
6302
  include Aws::Structure
6360
6303
  end
@@ -6366,7 +6309,7 @@ module Aws::CostExplorer
6366
6309
  # @return [String]
6367
6310
  #
6368
6311
  # @!attribute [rw] generation_timestamp
6369
- # The timestamp showing when the recommendations were generated.
6312
+ # The timestamp that shows when the recommendations were generated.
6370
6313
  # @return [String]
6371
6314
  #
6372
6315
  # @!attribute [rw] additional_metadata
@@ -6437,7 +6380,7 @@ module Aws::CostExplorer
6437
6380
  # @return [String]
6438
6381
  #
6439
6382
  # @!attribute [rw] estimated_on_demand_cost_with_current_commitment
6440
- # The estimated On-Demand costs you would expect with no additional
6383
+ # The estimated On-Demand costs you expect with no additional
6441
6384
  # commitment. It's based on your usage of the selected time period
6442
6385
  # and the Savings Plans you own.
6443
6386
  # @return [String]
@@ -6524,8 +6467,8 @@ module Aws::CostExplorer
6524
6467
  # @return [Types::SavingsPlansUtilization]
6525
6468
  #
6526
6469
  # @!attribute [rw] savings
6527
- # The amount saved by using existing Savings Plans. Savings returns
6528
- # both net savings from Savings Plans, as well as the
6470
+ # The amount that's saved by using existing Savings Plans. Savings
6471
+ # returns both net savings from Savings Plans and also the
6529
6472
  # `onDemandCostEquivalent` of the Savings Plans when considering the
6530
6473
  # utilization rate.
6531
6474
  # @return [Types::SavingsPlansSavings]
@@ -6545,7 +6488,7 @@ module Aws::CostExplorer
6545
6488
  include Aws::Structure
6546
6489
  end
6547
6490
 
6548
- # The amount of Savings Plans utilization, in hours.
6491
+ # The amount of Savings Plans utilization (in hours).
6549
6492
  #
6550
6493
  # @!attribute [rw] time_period
6551
6494
  # The time period of the request.
@@ -6557,8 +6500,8 @@ module Aws::CostExplorer
6557
6500
  # @return [Types::SavingsPlansUtilization]
6558
6501
  #
6559
6502
  # @!attribute [rw] savings
6560
- # The amount saved by using existing Savings Plans. Savings returns
6561
- # both net savings from Savings Plans as well as the
6503
+ # The amount that's saved by using existing Savings Plans. Savings
6504
+ # returns both net savings from Savings Plans and also the
6562
6505
  # `onDemandCostEquivalent` of the Savings Plans when considering the
6563
6506
  # utilization rate.
6564
6507
  # @return [Types::SavingsPlansSavings]
@@ -6579,7 +6522,7 @@ module Aws::CostExplorer
6579
6522
  include Aws::Structure
6580
6523
  end
6581
6524
 
6582
- # A single daily or monthly Savings Plans utilization rate, and details
6525
+ # A single daily or monthly Savings Plans utilization rate and details
6583
6526
  # for your account. A management account in an organization have access
6584
6527
  # to member accounts. You can use `GetDimensionValues` to determine the
6585
6528
  # possible dimension values.
@@ -6599,7 +6542,7 @@ module Aws::CostExplorer
6599
6542
  #
6600
6543
  # @!attribute [rw] savings
6601
6544
  # The amount saved by using existing Savings Plans. Savings returns
6602
- # both net savings from savings plans as well as the
6545
+ # both net savings from savings plans and also the
6603
6546
  # `onDemandCostEquivalent` of the Savings Plans when considering the
6604
6547
  # utilization rate.
6605
6548
  # @return [Types::SavingsPlansSavings]
@@ -6638,15 +6581,6 @@ module Aws::CostExplorer
6638
6581
  # Hardware specifications for the service that you want recommendations
6639
6582
  # for.
6640
6583
  #
6641
- # @note When making an API call, you may pass ServiceSpecification
6642
- # data as a hash:
6643
- #
6644
- # {
6645
- # ec2_specification: {
6646
- # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
6647
- # },
6648
- # }
6649
- #
6650
6584
  # @!attribute [rw] ec2_specification
6651
6585
  # The Amazon EC2 hardware specifications that you want Amazon Web
6652
6586
  # Services to provide recommendations for.
@@ -6660,15 +6594,7 @@ module Aws::CostExplorer
6660
6594
  include Aws::Structure
6661
6595
  end
6662
6596
 
6663
- # The details of how to sort the data.
6664
- #
6665
- # @note When making an API call, you may pass SortDefinition
6666
- # data as a hash:
6667
- #
6668
- # {
6669
- # key: "SortDefinitionKey", # required
6670
- # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
6671
- # }
6597
+ # The details for how to sort the data.
6672
6598
  #
6673
6599
  # @!attribute [rw] key
6674
6600
  # The key that's used to sort the data.
@@ -6687,16 +6613,36 @@ module Aws::CostExplorer
6687
6613
  include Aws::Structure
6688
6614
  end
6689
6615
 
6690
- # The recipient of `AnomalySubscription` notifications.
6616
+ # @api private
6617
+ #
6618
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartSavingsPlansPurchaseRecommendationGenerationRequest AWS API Documentation
6619
+ #
6620
+ class StartSavingsPlansPurchaseRecommendationGenerationRequest < Aws::EmptyStructure; end
6621
+
6622
+ # @!attribute [rw] recommendation_id
6623
+ # The ID for this specific recommendation.
6624
+ # @return [String]
6625
+ #
6626
+ # @!attribute [rw] generation_started_time
6627
+ # The start time of the recommendation generation.
6628
+ # @return [String]
6691
6629
  #
6692
- # @note When making an API call, you may pass Subscriber
6693
- # data as a hash:
6630
+ # @!attribute [rw] estimated_completion_time
6631
+ # The estimated time for when the recommendation generation will
6632
+ # complete.
6633
+ # @return [String]
6634
+ #
6635
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartSavingsPlansPurchaseRecommendationGenerationResponse AWS API Documentation
6694
6636
  #
6695
- # {
6696
- # address: "SubscriberAddress",
6697
- # type: "EMAIL", # accepts EMAIL, SNS
6698
- # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
6699
- # }
6637
+ class StartSavingsPlansPurchaseRecommendationGenerationResponse < Struct.new(
6638
+ :recommendation_id,
6639
+ :generation_started_time,
6640
+ :estimated_completion_time)
6641
+ SENSITIVE = []
6642
+ include Aws::Structure
6643
+ end
6644
+
6645
+ # The recipient of `AnomalySubscription` notifications.
6700
6646
  #
6701
6647
  # @!attribute [rw] address
6702
6648
  # The email address or SNS Amazon Resource Name (ARN). This depends on
@@ -6721,25 +6667,64 @@ module Aws::CostExplorer
6721
6667
  include Aws::Structure
6722
6668
  end
6723
6669
 
6670
+ # @!attribute [rw] resource_arn
6671
+ # The Amazon Resource Name (ARN) of the resource. For a list of
6672
+ # supported resources, see [ResourceTag][1].
6673
+ #
6674
+ #
6675
+ #
6676
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
6677
+ # @return [String]
6678
+ #
6679
+ # @!attribute [rw] resource_tags
6680
+ # A list of tag key-value pairs to be added to the resource.
6681
+ #
6682
+ # Each tag consists of a key and a value, and each key must be unique
6683
+ # for the resource. The following restrictions apply to resource tags:
6684
+ #
6685
+ # * Although the maximum number of array members is 200, you can
6686
+ # assign a maximum of 50 user-tags to one resource. The remaining
6687
+ # are reserved for Amazon Web Services use
6688
+ #
6689
+ # * The maximum length of a key is 128 characters
6690
+ #
6691
+ # * The maximum length of a value is 256 characters
6692
+ #
6693
+ # * Keys and values can only contain alphanumeric characters, spaces,
6694
+ # and any of the following: `_.:/=+@-`
6695
+ #
6696
+ # * Keys and values are case sensitive
6697
+ #
6698
+ # * Keys and values are trimmed for any leading or trailing
6699
+ # whitespaces
6700
+ #
6701
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is
6702
+ # reserved for Amazon Web Services use
6703
+ # @return [Array<Types::ResourceTag>]
6704
+ #
6705
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResourceRequest AWS API Documentation
6706
+ #
6707
+ class TagResourceRequest < Struct.new(
6708
+ :resource_arn,
6709
+ :resource_tags)
6710
+ SENSITIVE = []
6711
+ include Aws::Structure
6712
+ end
6713
+
6714
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResourceResponse AWS API Documentation
6715
+ #
6716
+ class TagResourceResponse < Aws::EmptyStructure; end
6717
+
6724
6718
  # The values that are available for a tag.
6725
6719
  #
6726
6720
  # If `Values` and `Key` aren't specified, the `ABSENT` `MatchOption` is
6727
6721
  # applied to all tags. That is, it's filtered on resources with no
6728
6722
  # tags.
6729
6723
  #
6730
- # If `Values` is provided and `Key` isn't specified, the `ABSENT`
6724
+ # If `Key` is provided and `Values` isn't specified, the `ABSENT`
6731
6725
  # `MatchOption` is applied to the tag `Key` only. That is, it's
6732
6726
  # filtered on resources without the given tag key.
6733
6727
  #
6734
- # @note When making an API call, you may pass TagValues
6735
- # data as a hash:
6736
- #
6737
- # {
6738
- # key: "TagKey",
6739
- # values: ["Value"],
6740
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6741
- # }
6742
- #
6743
6728
  # @!attribute [rw] key
6744
6729
  # The key for the tag.
6745
6730
  # @return [String]
@@ -6795,7 +6780,7 @@ module Aws::CostExplorer
6795
6780
  # @return [Types::ResourceUtilization]
6796
6781
  #
6797
6782
  # @!attribute [rw] platform_differences
6798
- # Explains the actions you might need to take in order to successfully
6783
+ # Explains the actions that you might need to take to successfully
6799
6784
  # migrate your workloads from the current instance type to the
6800
6785
  # recommended instance type.
6801
6786
  # @return [Array<String>]
@@ -6835,16 +6820,25 @@ module Aws::CostExplorer
6835
6820
  include Aws::Structure
6836
6821
  end
6837
6822
 
6838
- # Filters cost anomalies based on the total impact.
6823
+ # Can occur if you specify a number of tags for a resource greater than
6824
+ # the maximum 50 user tags per resource.
6825
+ #
6826
+ # @!attribute [rw] message
6827
+ # @return [String]
6828
+ #
6829
+ # @!attribute [rw] resource_name
6830
+ # @return [String]
6839
6831
  #
6840
- # @note When making an API call, you may pass TotalImpactFilter
6841
- # data as a hash:
6832
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TooManyTagsException AWS API Documentation
6842
6833
  #
6843
- # {
6844
- # numeric_operator: "EQUAL", # required, accepts EQUAL, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, BETWEEN
6845
- # start_value: 1.0, # required
6846
- # end_value: 1.0,
6847
- # }
6834
+ class TooManyTagsException < Struct.new(
6835
+ :message,
6836
+ :resource_name)
6837
+ SENSITIVE = []
6838
+ include Aws::Structure
6839
+ end
6840
+
6841
+ # Filters cost anomalies based on the total impact.
6848
6842
  #
6849
6843
  # @!attribute [rw] numeric_operator
6850
6844
  # The comparing value that's used in the filter.
@@ -6909,14 +6903,36 @@ module Aws::CostExplorer
6909
6903
  include Aws::Structure
6910
6904
  end
6911
6905
 
6912
- # @note When making an API call, you may pass UpdateAnomalyMonitorRequest
6913
- # data as a hash:
6906
+ # @!attribute [rw] resource_arn
6907
+ # The Amazon Resource Name (ARN) of the resource. For a list of
6908
+ # supported resources, see [ResourceTag][1].
6914
6909
  #
6915
- # {
6916
- # monitor_arn: "GenericString", # required
6917
- # monitor_name: "GenericString",
6918
- # }
6919
6910
  #
6911
+ #
6912
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
6913
+ # @return [String]
6914
+ #
6915
+ # @!attribute [rw] resource_tag_keys
6916
+ # A list of tag keys associated with tags that need to be removed from
6917
+ # the resource. If you specify a tag key that doesn't exist, it's
6918
+ # ignored. Although the maximum number of array members is 200,
6919
+ # user-tag maximum is 50. The remaining are reserved for Amazon Web
6920
+ # Services use.
6921
+ # @return [Array<String>]
6922
+ #
6923
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResourceRequest AWS API Documentation
6924
+ #
6925
+ class UntagResourceRequest < Struct.new(
6926
+ :resource_arn,
6927
+ :resource_tag_keys)
6928
+ SENSITIVE = []
6929
+ include Aws::Structure
6930
+ end
6931
+
6932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResourceResponse AWS API Documentation
6933
+ #
6934
+ class UntagResourceResponse < Aws::EmptyStructure; end
6935
+
6920
6936
  # @!attribute [rw] monitor_arn
6921
6937
  # Cost anomaly monitor Amazon Resource Names (ARNs).
6922
6938
  # @return [String]
@@ -6946,30 +6962,21 @@ module Aws::CostExplorer
6946
6962
  include Aws::Structure
6947
6963
  end
6948
6964
 
6949
- # @note When making an API call, you may pass UpdateAnomalySubscriptionRequest
6950
- # data as a hash:
6951
- #
6952
- # {
6953
- # subscription_arn: "GenericString", # required
6954
- # threshold: 1.0,
6955
- # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
6956
- # monitor_arn_list: ["Arn"],
6957
- # subscribers: [
6958
- # {
6959
- # address: "SubscriberAddress",
6960
- # type: "EMAIL", # accepts EMAIL, SNS
6961
- # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
6962
- # },
6963
- # ],
6964
- # subscription_name: "GenericString",
6965
- # }
6966
- #
6967
6965
  # @!attribute [rw] subscription_arn
6968
6966
  # A cost anomaly subscription Amazon Resource Name (ARN).
6969
6967
  # @return [String]
6970
6968
  #
6971
6969
  # @!attribute [rw] threshold
6970
+ # (deprecated)
6971
+ #
6972
6972
  # The update to the threshold value for receiving notifications.
6973
+ #
6974
+ # This field has been deprecated. To update a threshold, use
6975
+ # ThresholdExpression. Continued use of Threshold will be treated as
6976
+ # shorthand syntax for a ThresholdExpression.
6977
+ #
6978
+ # You can specify either Threshold or ThresholdExpression, but not
6979
+ # both.
6973
6980
  # @return [Float]
6974
6981
  #
6975
6982
  # @!attribute [rw] frequency
@@ -6989,6 +6996,51 @@ module Aws::CostExplorer
6989
6996
  # The new name of the subscription.
6990
6997
  # @return [String]
6991
6998
  #
6999
+ # @!attribute [rw] threshold_expression
7000
+ # The update to the [Expression][1] object used to specify the
7001
+ # anomalies that you want to generate alerts for. This supports
7002
+ # dimensions and nested expressions. The supported dimensions are
7003
+ # `ANOMALY_TOTAL_IMPACT_ABSOLUTE` and
7004
+ # `ANOMALY_TOTAL_IMPACT_PERCENTAGE`, corresponding to an anomaly’s
7005
+ # TotalImpact and TotalImpactPercentage, respectively (see [Impact][2]
7006
+ # for more details). The supported nested expression types are `AND`
7007
+ # and `OR`. The match option `GREATER_THAN_OR_EQUAL` is required.
7008
+ # Values must be numbers between 0 and 10,000,000,000 in string
7009
+ # format.
7010
+ #
7011
+ # You can specify either Threshold or ThresholdExpression, but not
7012
+ # both.
7013
+ #
7014
+ # The following are examples of valid ThresholdExpressions:
7015
+ #
7016
+ # * Absolute threshold: `\{ "Dimensions": \{ "Key":
7017
+ # "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
7018
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
7019
+ #
7020
+ # * Percentage threshold: `\{ "Dimensions": \{ "Key":
7021
+ # "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [
7022
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
7023
+ #
7024
+ # * `AND` two thresholds together: `\{ "And": [ \{ "Dimensions": \{
7025
+ # "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
7026
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
7027
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
7028
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ]
7029
+ # \} \} ] \}`
7030
+ #
7031
+ # * `OR` two thresholds together: `\{ "Or": [ \{ "Dimensions": \{
7032
+ # "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
7033
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
7034
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
7035
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ]
7036
+ # \} \} ] \}`
7037
+ #
7038
+ #
7039
+ #
7040
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
7041
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html
7042
+ # @return [Types::Expression]
7043
+ #
6992
7044
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscriptionRequest AWS API Documentation
6993
7045
  #
6994
7046
  class UpdateAnomalySubscriptionRequest < Struct.new(
@@ -6997,7 +7049,8 @@ module Aws::CostExplorer
6997
7049
  :frequency,
6998
7050
  :monitor_arn_list,
6999
7051
  :subscribers,
7000
- :subscription_name)
7052
+ :subscription_name,
7053
+ :threshold_expression)
7001
7054
  SENSITIVE = []
7002
7055
  include Aws::Structure
7003
7056
  end
@@ -7014,72 +7067,69 @@ module Aws::CostExplorer
7014
7067
  include Aws::Structure
7015
7068
  end
7016
7069
 
7017
- # @note When making an API call, you may pass UpdateCostCategoryDefinitionRequest
7018
- # data as a hash:
7019
- #
7020
- # {
7021
- # cost_category_arn: "Arn", # required
7022
- # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
7023
- # rules: [ # required
7024
- # {
7025
- # value: "CostCategoryValue",
7026
- # rule: {
7027
- # or: [
7028
- # {
7029
- # # recursive Expression
7030
- # },
7031
- # ],
7032
- # and: [
7033
- # {
7034
- # # recursive Expression
7035
- # },
7036
- # ],
7037
- # not: {
7038
- # # recursive Expression
7039
- # },
7040
- # dimensions: {
7041
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
7042
- # values: ["Value"],
7043
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
7044
- # },
7045
- # tags: {
7046
- # key: "TagKey",
7047
- # values: ["Value"],
7048
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
7049
- # },
7050
- # cost_categories: {
7051
- # key: "CostCategoryName",
7052
- # values: ["Value"],
7053
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
7054
- # },
7055
- # },
7056
- # inherited_value: {
7057
- # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
7058
- # dimension_key: "GenericString",
7059
- # },
7060
- # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
7061
- # },
7062
- # ],
7063
- # default_value: "CostCategoryValue",
7064
- # split_charge_rules: [
7065
- # {
7066
- # source: "GenericString", # required
7067
- # targets: ["GenericString"], # required
7068
- # method: "FIXED", # required, accepts FIXED, PROPORTIONAL, EVEN
7069
- # parameters: [
7070
- # {
7071
- # type: "ALLOCATION_PERCENTAGES", # required, accepts ALLOCATION_PERCENTAGES
7072
- # values: ["GenericString"], # required
7073
- # },
7074
- # ],
7075
- # },
7076
- # ],
7077
- # }
7070
+ # Gives a detailed description of the result of an action. It's on each
7071
+ # cost allocation tag entry in the request.
7072
+ #
7073
+ # @!attribute [rw] tag_key
7074
+ # The key for the cost allocation tag.
7075
+ # @return [String]
7076
+ #
7077
+ # @!attribute [rw] code
7078
+ # An error code representing why the action failed on this entry.
7079
+ # @return [String]
7080
+ #
7081
+ # @!attribute [rw] message
7082
+ # A message explaining why the action failed on this entry.
7083
+ # @return [String]
7078
7084
  #
7085
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostAllocationTagsStatusError AWS API Documentation
7086
+ #
7087
+ class UpdateCostAllocationTagsStatusError < Struct.new(
7088
+ :tag_key,
7089
+ :code,
7090
+ :message)
7091
+ SENSITIVE = []
7092
+ include Aws::Structure
7093
+ end
7094
+
7095
+ # @!attribute [rw] cost_allocation_tags_status
7096
+ # The list of `CostAllocationTagStatusEntry` objects that are used to
7097
+ # update cost allocation tags status for this request.
7098
+ # @return [Array<Types::CostAllocationTagStatusEntry>]
7099
+ #
7100
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostAllocationTagsStatusRequest AWS API Documentation
7101
+ #
7102
+ class UpdateCostAllocationTagsStatusRequest < Struct.new(
7103
+ :cost_allocation_tags_status)
7104
+ SENSITIVE = []
7105
+ include Aws::Structure
7106
+ end
7107
+
7108
+ # @!attribute [rw] errors
7109
+ # A list of `UpdateCostAllocationTagsStatusError` objects with error
7110
+ # details about each cost allocation tag that can't be updated. If
7111
+ # there's no failure, an empty array returns.
7112
+ # @return [Array<Types::UpdateCostAllocationTagsStatusError>]
7113
+ #
7114
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostAllocationTagsStatusResponse AWS API Documentation
7115
+ #
7116
+ class UpdateCostAllocationTagsStatusResponse < Struct.new(
7117
+ :errors)
7118
+ SENSITIVE = []
7119
+ include Aws::Structure
7120
+ end
7121
+
7079
7122
  # @!attribute [rw] cost_category_arn
7080
7123
  # The unique identifier for your Cost Category.
7081
7124
  # @return [String]
7082
7125
  #
7126
+ # @!attribute [rw] effective_start
7127
+ # The Cost Category's effective start date. It can only be a billing
7128
+ # start date (first day of the month). If the date isn't provided,
7129
+ # it's the first day of the current month. Dates can't be before the
7130
+ # previous twelve months, or in the future.
7131
+ # @return [String]
7132
+ #
7083
7133
  # @!attribute [rw] rule_version
7084
7134
  # The rule schema version in this particular Cost Category.
7085
7135
  # @return [String]
@@ -7106,6 +7156,7 @@ module Aws::CostExplorer
7106
7156
  #
7107
7157
  class UpdateCostCategoryDefinitionRequest < Struct.new(
7108
7158
  :cost_category_arn,
7159
+ :effective_start,
7109
7160
  :rule_version,
7110
7161
  :rules,
7111
7162
  :default_value,
@@ -7119,7 +7170,8 @@ module Aws::CostExplorer
7119
7170
  # @return [String]
7120
7171
  #
7121
7172
  # @!attribute [rw] effective_start
7122
- # The Cost Category's effective start date.
7173
+ # The Cost Category's effective start date. It can only be a billing
7174
+ # start date (first day of the month).
7123
7175
  # @return [String]
7124
7176
  #
7125
7177
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinitionResponse AWS API Documentation