aws-sdk-costexplorer 1.69.0 → 1.92.0

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