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.
@@ -27,7 +27,11 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/signature_v4.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
31
35
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
32
36
 
33
37
  Aws::Plugins::GlobalConfiguration.add_identifier(:costexplorer)
@@ -73,8 +77,13 @@ module Aws::CostExplorer
73
77
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
78
  add_plugin(Aws::Plugins::TransferEncoding)
75
79
  add_plugin(Aws::Plugins::HttpChecksum)
76
- add_plugin(Aws::Plugins::SignatureV4)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
77
85
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
+ add_plugin(Aws::CostExplorer::Plugins::Endpoints)
78
87
 
79
88
  # @overload initialize(options)
80
89
  # @param [Hash] options
@@ -175,10 +184,18 @@ module Aws::CostExplorer
175
184
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
176
185
  # a clock skew correction and retry requests with skewed client clocks.
177
186
  #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
178
191
  # @option options [Boolean] :disable_host_prefix_injection (false)
179
192
  # Set to true to disable SDK automatically adding host prefix
180
193
  # to default service endpoint when available.
181
194
  #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
182
199
  # @option options [String] :endpoint
183
200
  # The client endpoint is normally constructed from the `:region`
184
201
  # option. You should only configure an `:endpoint` when connecting
@@ -199,6 +216,10 @@ module Aws::CostExplorer
199
216
  # @option options [Boolean] :endpoint_discovery (false)
200
217
  # When set to `true`, endpoint discovery will be enabled for operations when available.
201
218
  #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
202
223
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
203
224
  # The log formatter.
204
225
  #
@@ -219,6 +240,11 @@ module Aws::CostExplorer
219
240
  # Used when loading credentials from the shared credentials file
220
241
  # at HOME/.aws/credentials. When not specified, 'default' is used.
221
242
  #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
222
248
  # @option options [Proc] :retry_backoff
223
249
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
224
250
  # This option is only used in the `legacy` retry mode.
@@ -264,6 +290,11 @@ module Aws::CostExplorer
264
290
  # in the future.
265
291
  #
266
292
  #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
267
298
  # @option options [String] :secret_access_key
268
299
  #
269
300
  # @option options [String] :session_token
@@ -287,6 +318,19 @@ module Aws::CostExplorer
287
318
  # ** Please note ** When response stubbing is enabled, no HTTP
288
319
  # requests are made, and retries are disabled.
289
320
  #
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
324
+ #
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
290
334
  # @option options [Boolean] :use_dualstack_endpoint
291
335
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
336
  # will be used if available.
@@ -300,6 +344,9 @@ module Aws::CostExplorer
300
344
  # When `true`, request parameters are validated before
301
345
  # sending the request.
302
346
  #
347
+ # @option options [Aws::CostExplorer::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::CostExplorer::EndpointParameters`
349
+ #
303
350
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
351
  # requests through. Formatted like 'http://proxy.com:123'.
305
352
  #
@@ -307,7 +354,7 @@ module Aws::CostExplorer
307
354
  # seconds to wait when opening a HTTP session before raising a
308
355
  # `Timeout::Error`.
309
356
  #
310
- # @option options [Integer] :http_read_timeout (60) The default
357
+ # @option options [Float] :http_read_timeout (60) The default
311
358
  # number of seconds to wait for response data. This value can
312
359
  # safely be set per-request on the session.
313
360
  #
@@ -323,6 +370,9 @@ module Aws::CostExplorer
323
370
  # disables this behaviour. This value can safely be set per
324
371
  # request on the session.
325
372
  #
373
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
+ # in seconds.
375
+ #
326
376
  # @option options [Boolean] :http_wire_trace (false) When `true`,
327
377
  # HTTP debug output will be sent to the `:logger`.
328
378
  #
@@ -354,6 +404,36 @@ module Aws::CostExplorer
354
404
  # @option params [required, Types::AnomalyMonitor] :anomaly_monitor
355
405
  # The cost anomaly detection monitor object that you want to create.
356
406
  #
407
+ # @option params [Array<Types::ResourceTag>] :resource_tags
408
+ # An optional list of tags to associate with the specified [
409
+ # `AnomalyMonitor` ][1]. You can use resource tags to control access to
410
+ # your `monitor` using IAM policies.
411
+ #
412
+ # Each tag consists of a key and a value, and each key must be unique
413
+ # for the resource. The following restrictions apply to resource tags:
414
+ #
415
+ # * Although the maximum number of array members is 200, you can assign
416
+ # a maximum of 50 user-tags to one resource. The remaining are
417
+ # reserved for Amazon Web Services use
418
+ #
419
+ # * The maximum length of a key is 128 characters
420
+ #
421
+ # * The maximum length of a value is 256 characters
422
+ #
423
+ # * Keys and values can only contain alphanumeric characters, spaces,
424
+ # and any of the following: `_.:/=+@-`
425
+ #
426
+ # * Keys and values are case sensitive
427
+ #
428
+ # * Keys and values are trimmed for any leading or trailing whitespaces
429
+ #
430
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
431
+ # for Amazon Web Services use
432
+ #
433
+ #
434
+ #
435
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html
436
+ #
357
437
  # @return [Types::CreateAnomalyMonitorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
358
438
  #
359
439
  # * {Types::CreateAnomalyMonitorResponse#monitor_arn #monitor_arn} => String
@@ -384,23 +464,29 @@ module Aws::CostExplorer
384
464
  # # recursive Expression
385
465
  # },
386
466
  # dimensions: {
387
- # 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
467
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
388
468
  # values: ["Value"],
389
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
469
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
390
470
  # },
391
471
  # tags: {
392
472
  # key: "TagKey",
393
473
  # values: ["Value"],
394
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
474
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
395
475
  # },
396
476
  # cost_categories: {
397
477
  # key: "CostCategoryName",
398
478
  # values: ["Value"],
399
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
479
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
400
480
  # },
401
481
  # },
402
482
  # dimensional_value_count: 1,
403
483
  # },
484
+ # resource_tags: [
485
+ # {
486
+ # key: "ResourceTagKey", # required
487
+ # value: "ResourceTagValue", # required
488
+ # },
489
+ # ],
404
490
  # })
405
491
  #
406
492
  # @example Response structure
@@ -416,14 +502,44 @@ module Aws::CostExplorer
416
502
  req.send_request(options)
417
503
  end
418
504
 
419
- # Adds a subscription to a cost anomaly detection monitor. You can use
420
- # each subscription to define subscribers with email or SNS
421
- # notifications. Email subscribers can set a dollar threshold and a time
422
- # frequency for receiving notifications.
505
+ # Adds an alert subscription to a cost anomaly detection monitor. You
506
+ # can use each subscription to define subscribers with email or SNS
507
+ # notifications. Email subscribers can set an absolute or percentage
508
+ # threshold and a time frequency for receiving notifications.
423
509
  #
424
510
  # @option params [required, Types::AnomalySubscription] :anomaly_subscription
425
511
  # The cost anomaly subscription object that you want to create.
426
512
  #
513
+ # @option params [Array<Types::ResourceTag>] :resource_tags
514
+ # An optional list of tags to associate with the specified [
515
+ # `AnomalySubscription` ][1]. You can use resource tags to control
516
+ # access to your `subscription` using IAM policies.
517
+ #
518
+ # Each tag consists of a key and a value, and each key must be unique
519
+ # for the resource. The following restrictions apply to resource tags:
520
+ #
521
+ # * Although the maximum number of array members is 200, you can assign
522
+ # a maximum of 50 user-tags to one resource. The remaining are
523
+ # reserved for Amazon Web Services use
524
+ #
525
+ # * The maximum length of a key is 128 characters
526
+ #
527
+ # * The maximum length of a value is 256 characters
528
+ #
529
+ # * Keys and values can only contain alphanumeric characters, spaces,
530
+ # and any of the following: `_.:/=+@-`
531
+ #
532
+ # * Keys and values are case sensitive
533
+ #
534
+ # * Keys and values are trimmed for any leading or trailing whitespaces
535
+ #
536
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
537
+ # for Amazon Web Services use
538
+ #
539
+ #
540
+ #
541
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html
542
+ #
427
543
  # @return [Types::CreateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
428
544
  #
429
545
  # * {Types::CreateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
@@ -442,10 +558,46 @@ module Aws::CostExplorer
442
558
  # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
443
559
  # },
444
560
  # ],
445
- # threshold: 1.0, # required
561
+ # threshold: 1.0,
446
562
  # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
447
563
  # subscription_name: "GenericString", # required
564
+ # threshold_expression: {
565
+ # or: [
566
+ # {
567
+ # # recursive Expression
568
+ # },
569
+ # ],
570
+ # and: [
571
+ # {
572
+ # # recursive Expression
573
+ # },
574
+ # ],
575
+ # not: {
576
+ # # recursive Expression
577
+ # },
578
+ # dimensions: {
579
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
580
+ # values: ["Value"],
581
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
582
+ # },
583
+ # tags: {
584
+ # key: "TagKey",
585
+ # values: ["Value"],
586
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
587
+ # },
588
+ # cost_categories: {
589
+ # key: "CostCategoryName",
590
+ # values: ["Value"],
591
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
592
+ # },
593
+ # },
448
594
  # },
595
+ # resource_tags: [
596
+ # {
597
+ # key: "ResourceTagKey", # required
598
+ # value: "ResourceTagValue", # required
599
+ # },
600
+ # ],
449
601
  # })
450
602
  #
451
603
  # @example Response structure
@@ -466,6 +618,12 @@ module Aws::CostExplorer
466
618
  # @option params [required, String] :name
467
619
  # The unique name of the Cost Category.
468
620
  #
621
+ # @option params [String] :effective_start
622
+ # The Cost Category's effective start date. It can only be a billing
623
+ # start date (first day of the month). If the date isn't provided,
624
+ # it's the first day of the current month. Dates can't be before the
625
+ # previous twelve months, or in the future.
626
+ #
469
627
  # @option params [required, String] :rule_version
470
628
  # The rule schema version in this particular Cost Category.
471
629
  #
@@ -484,6 +642,36 @@ module Aws::CostExplorer
484
642
  # The split charge rules used to allocate your charges between your Cost
485
643
  # Category values.
486
644
  #
645
+ # @option params [Array<Types::ResourceTag>] :resource_tags
646
+ # An optional list of tags to associate with the specified [
647
+ # `CostCategory` ][1]. You can use resource tags to control access to
648
+ # your `cost category` using IAM policies.
649
+ #
650
+ # Each tag consists of a key and a value, and each key must be unique
651
+ # for the resource. The following restrictions apply to resource tags:
652
+ #
653
+ # * Although the maximum number of array members is 200, you can assign
654
+ # a maximum of 50 user-tags to one resource. The remaining are
655
+ # reserved for Amazon Web Services use
656
+ #
657
+ # * The maximum length of a key is 128 characters
658
+ #
659
+ # * The maximum length of a value is 256 characters
660
+ #
661
+ # * Keys and values can only contain alphanumeric characters, spaces,
662
+ # and any of the following: `_.:/=+@-`
663
+ #
664
+ # * Keys and values are case sensitive
665
+ #
666
+ # * Keys and values are trimmed for any leading or trailing whitespaces
667
+ #
668
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
669
+ # for Amazon Web Services use
670
+ #
671
+ #
672
+ #
673
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html
674
+ #
487
675
  # @return [Types::CreateCostCategoryDefinitionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
488
676
  #
489
677
  # * {Types::CreateCostCategoryDefinitionResponse#cost_category_arn #cost_category_arn} => String
@@ -493,6 +681,7 @@ module Aws::CostExplorer
493
681
  #
494
682
  # resp = client.create_cost_category_definition({
495
683
  # name: "CostCategoryName", # required
684
+ # effective_start: "ZonedDateTime",
496
685
  # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
497
686
  # rules: [ # required
498
687
  # {
@@ -512,19 +701,19 @@ module Aws::CostExplorer
512
701
  # # recursive Expression
513
702
  # },
514
703
  # dimensions: {
515
- # 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
704
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
516
705
  # values: ["Value"],
517
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
706
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
518
707
  # },
519
708
  # tags: {
520
709
  # key: "TagKey",
521
710
  # values: ["Value"],
522
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
711
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
523
712
  # },
524
713
  # cost_categories: {
525
714
  # key: "CostCategoryName",
526
715
  # values: ["Value"],
527
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
716
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
528
717
  # },
529
718
  # },
530
719
  # inherited_value: {
@@ -548,6 +737,12 @@ module Aws::CostExplorer
548
737
  # ],
549
738
  # },
550
739
  # ],
740
+ # resource_tags: [
741
+ # {
742
+ # key: "ResourceTagKey", # required
743
+ # value: "ResourceTagValue", # required
744
+ # },
745
+ # ],
551
746
  # })
552
747
  #
553
748
  # @example Response structure
@@ -641,12 +836,12 @@ module Aws::CostExplorer
641
836
  req.send_request(options)
642
837
  end
643
838
 
644
- # Returns the name, ARN, rules, definition, and effective dates of a
645
- # Cost Category that's defined in the account.
839
+ # Returns the name, Amazon Resource Name (ARN), rules, definition, and
840
+ # effective dates of a Cost Category that's defined in the account.
646
841
  #
647
842
  # You have the option to use `EffectiveOn` to return a Cost Category
648
- # that is active on a specific date. If there is no `EffectiveOn`
649
- # specified, you’ll see a Cost Category that is effective on the current
843
+ # that's active on a specific date. If there's no `EffectiveOn`
844
+ # specified, you see a Cost Category that's effective on the current
650
845
  # date. If Cost Category is still effective, `EffectiveEnd` is omitted
651
846
  # in the response.
652
847
  #
@@ -681,21 +876,21 @@ module Aws::CostExplorer
681
876
  # resp.cost_category.rules[0].rule.and #=> Array
682
877
  # resp.cost_category.rules[0].rule.and[0] #=> Types::Expression
683
878
  # resp.cost_category.rules[0].rule.not #=> Types::Expression
684
- # resp.cost_category.rules[0].rule.dimensions.key #=> String, one of "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"
879
+ # resp.cost_category.rules[0].rule.dimensions.key #=> String, one of "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", "INVOICING_ENTITY", "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "ANOMALY_TOTAL_IMPACT_PERCENTAGE"
685
880
  # resp.cost_category.rules[0].rule.dimensions.values #=> Array
686
881
  # resp.cost_category.rules[0].rule.dimensions.values[0] #=> String
687
882
  # resp.cost_category.rules[0].rule.dimensions.match_options #=> Array
688
- # resp.cost_category.rules[0].rule.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
883
+ # resp.cost_category.rules[0].rule.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
689
884
  # resp.cost_category.rules[0].rule.tags.key #=> String
690
885
  # resp.cost_category.rules[0].rule.tags.values #=> Array
691
886
  # resp.cost_category.rules[0].rule.tags.values[0] #=> String
692
887
  # resp.cost_category.rules[0].rule.tags.match_options #=> Array
693
- # resp.cost_category.rules[0].rule.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
888
+ # resp.cost_category.rules[0].rule.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
694
889
  # resp.cost_category.rules[0].rule.cost_categories.key #=> String
695
890
  # resp.cost_category.rules[0].rule.cost_categories.values #=> Array
696
891
  # resp.cost_category.rules[0].rule.cost_categories.values[0] #=> String
697
892
  # resp.cost_category.rules[0].rule.cost_categories.match_options #=> Array
698
- # resp.cost_category.rules[0].rule.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
893
+ # resp.cost_category.rules[0].rule.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
699
894
  # resp.cost_category.rules[0].inherited_value.dimension_name #=> String, one of "LINKED_ACCOUNT_NAME", "TAG"
700
895
  # resp.cost_category.rules[0].inherited_value.dimension_key #=> String
701
896
  # resp.cost_category.rules[0].type #=> String, one of "REGULAR", "INHERITED_VALUE"
@@ -724,6 +919,7 @@ module Aws::CostExplorer
724
919
 
725
920
  # Retrieves all of the cost anomalies detected on your account during
726
921
  # the time period that's specified by the `DateInterval` object.
922
+ # Anomalies are available for up to 90 days.
727
923
  #
728
924
  # @option params [String] :monitor_arn
729
925
  # Retrieves all of the cost anomalies detected for a specific cost
@@ -785,10 +981,14 @@ module Aws::CostExplorer
785
981
  # resp.anomalies[0].root_causes[0].region #=> String
786
982
  # resp.anomalies[0].root_causes[0].linked_account #=> String
787
983
  # resp.anomalies[0].root_causes[0].usage_type #=> String
984
+ # resp.anomalies[0].root_causes[0].linked_account_name #=> String
788
985
  # resp.anomalies[0].anomaly_score.max_score #=> Float
789
986
  # resp.anomalies[0].anomaly_score.current_score #=> Float
790
987
  # resp.anomalies[0].impact.max_impact #=> Float
791
988
  # resp.anomalies[0].impact.total_impact #=> Float
989
+ # resp.anomalies[0].impact.total_actual_spend #=> Float
990
+ # resp.anomalies[0].impact.total_expected_spend #=> Float
991
+ # resp.anomalies[0].impact.total_impact_percentage #=> Float
792
992
  # resp.anomalies[0].monitor_arn #=> String
793
993
  # resp.anomalies[0].feedback #=> String, one of "YES", "NO", "PLANNED_ACTIVITY"
794
994
  # resp.next_page_token #=> String
@@ -845,21 +1045,21 @@ module Aws::CostExplorer
845
1045
  # resp.anomaly_monitors[0].monitor_specification.and #=> Array
846
1046
  # resp.anomaly_monitors[0].monitor_specification.and[0] #=> Types::Expression
847
1047
  # resp.anomaly_monitors[0].monitor_specification.not #=> Types::Expression
848
- # resp.anomaly_monitors[0].monitor_specification.dimensions.key #=> String, one of "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"
1048
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.key #=> String, one of "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", "INVOICING_ENTITY", "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "ANOMALY_TOTAL_IMPACT_PERCENTAGE"
849
1049
  # resp.anomaly_monitors[0].monitor_specification.dimensions.values #=> Array
850
1050
  # resp.anomaly_monitors[0].monitor_specification.dimensions.values[0] #=> String
851
1051
  # resp.anomaly_monitors[0].monitor_specification.dimensions.match_options #=> Array
852
- # resp.anomaly_monitors[0].monitor_specification.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1052
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
853
1053
  # resp.anomaly_monitors[0].monitor_specification.tags.key #=> String
854
1054
  # resp.anomaly_monitors[0].monitor_specification.tags.values #=> Array
855
1055
  # resp.anomaly_monitors[0].monitor_specification.tags.values[0] #=> String
856
1056
  # resp.anomaly_monitors[0].monitor_specification.tags.match_options #=> Array
857
- # resp.anomaly_monitors[0].monitor_specification.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1057
+ # resp.anomaly_monitors[0].monitor_specification.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
858
1058
  # resp.anomaly_monitors[0].monitor_specification.cost_categories.key #=> String
859
1059
  # resp.anomaly_monitors[0].monitor_specification.cost_categories.values #=> Array
860
1060
  # resp.anomaly_monitors[0].monitor_specification.cost_categories.values[0] #=> String
861
1061
  # resp.anomaly_monitors[0].monitor_specification.cost_categories.match_options #=> Array
862
- # resp.anomaly_monitors[0].monitor_specification.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1062
+ # resp.anomaly_monitors[0].monitor_specification.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
863
1063
  # resp.anomaly_monitors[0].dimensional_value_count #=> Integer
864
1064
  # resp.next_page_token #=> String
865
1065
  #
@@ -918,6 +1118,26 @@ module Aws::CostExplorer
918
1118
  # resp.anomaly_subscriptions[0].threshold #=> Float
919
1119
  # resp.anomaly_subscriptions[0].frequency #=> String, one of "DAILY", "IMMEDIATE", "WEEKLY"
920
1120
  # resp.anomaly_subscriptions[0].subscription_name #=> String
1121
+ # resp.anomaly_subscriptions[0].threshold_expression.or #=> Array
1122
+ # resp.anomaly_subscriptions[0].threshold_expression.or[0] #=> Types::Expression
1123
+ # resp.anomaly_subscriptions[0].threshold_expression.and #=> Array
1124
+ # resp.anomaly_subscriptions[0].threshold_expression.and[0] #=> Types::Expression
1125
+ # resp.anomaly_subscriptions[0].threshold_expression.not #=> Types::Expression
1126
+ # resp.anomaly_subscriptions[0].threshold_expression.dimensions.key #=> String, one of "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", "INVOICING_ENTITY", "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "ANOMALY_TOTAL_IMPACT_PERCENTAGE"
1127
+ # resp.anomaly_subscriptions[0].threshold_expression.dimensions.values #=> Array
1128
+ # resp.anomaly_subscriptions[0].threshold_expression.dimensions.values[0] #=> String
1129
+ # resp.anomaly_subscriptions[0].threshold_expression.dimensions.match_options #=> Array
1130
+ # resp.anomaly_subscriptions[0].threshold_expression.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
1131
+ # resp.anomaly_subscriptions[0].threshold_expression.tags.key #=> String
1132
+ # resp.anomaly_subscriptions[0].threshold_expression.tags.values #=> Array
1133
+ # resp.anomaly_subscriptions[0].threshold_expression.tags.values[0] #=> String
1134
+ # resp.anomaly_subscriptions[0].threshold_expression.tags.match_options #=> Array
1135
+ # resp.anomaly_subscriptions[0].threshold_expression.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
1136
+ # resp.anomaly_subscriptions[0].threshold_expression.cost_categories.key #=> String
1137
+ # resp.anomaly_subscriptions[0].threshold_expression.cost_categories.values #=> Array
1138
+ # resp.anomaly_subscriptions[0].threshold_expression.cost_categories.values[0] #=> String
1139
+ # resp.anomaly_subscriptions[0].threshold_expression.cost_categories.match_options #=> Array
1140
+ # resp.anomaly_subscriptions[0].threshold_expression.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
921
1141
  # resp.next_page_token #=> String
922
1142
  #
923
1143
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions AWS API Documentation
@@ -965,6 +1185,13 @@ module Aws::CostExplorer
965
1185
  # You can nest `Expression` objects to define any combination of
966
1186
  # dimension filters. For more information, see [Expression][1].
967
1187
  #
1188
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
1189
+ # `CASE_SENSITIVE`.
1190
+ #
1191
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
1192
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are `EQUALS`
1193
+ # and `CASE_SENSITIVE`.
1194
+ #
968
1195
  #
969
1196
  #
970
1197
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -1000,9 +1227,9 @@ module Aws::CostExplorer
1000
1227
  # by types.
1001
1228
  #
1002
1229
  # Valid values for the `DIMENSION` type are `AZ`, `INSTANCE_TYPE`,
1003
- # `LEGAL_ENTITY_NAME`, `LINKED_ACCOUNT`, `OPERATION`, `PLATFORM`,
1004
- # `PURCHASE_TYPE`, `SERVICE`, `TENANCY`, `RECORD_TYPE`, and
1005
- # `USAGE_TYPE`.
1230
+ # `LEGAL_ENTITY_NAME`, `INVOICING_ENTITY`, `LINKED_ACCOUNT`,
1231
+ # `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TENANCY`,
1232
+ # `RECORD_TYPE`, and `USAGE_TYPE`.
1006
1233
  #
1007
1234
  # When you group by the `TAG` type and include a valid tag key, you get
1008
1235
  # all tag values, including empty strings.
@@ -1042,19 +1269,19 @@ module Aws::CostExplorer
1042
1269
  # # recursive Expression
1043
1270
  # },
1044
1271
  # dimensions: {
1045
- # 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
1272
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1046
1273
  # values: ["Value"],
1047
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1274
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1048
1275
  # },
1049
1276
  # tags: {
1050
1277
  # key: "TagKey",
1051
1278
  # values: ["Value"],
1052
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1279
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1053
1280
  # },
1054
1281
  # cost_categories: {
1055
1282
  # key: "CostCategoryName",
1056
1283
  # values: ["Value"],
1057
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1284
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1058
1285
  # },
1059
1286
  # },
1060
1287
  # metrics: ["MetricName"], # required
@@ -1111,7 +1338,7 @@ module Aws::CostExplorer
1111
1338
  # Elastic Compute Cloud – Compute service only.
1112
1339
  #
1113
1340
  # <note markdown="1"> This is an opt-in only feature. You can enable this feature from the
1114
- # Cost Explorer Settings page. For information on how to access the
1341
+ # Cost Explorer Settings page. For information about how to access the
1115
1342
  # Settings page, see [Controlling Access for Cost Explorer][2] in the
1116
1343
  # *Billing and Cost Management User Guide*.
1117
1344
  #
@@ -1147,6 +1374,13 @@ module Aws::CostExplorer
1147
1374
  # group by or filter by a `ResourceId`. It requires the [Expression][1]
1148
1375
  # `"SERVICE = Amazon Elastic Compute Cloud - Compute"` in the filter.
1149
1376
  #
1377
+ # Valid values for `MatchOptions` for `Dimensions` are `EQUALS` and
1378
+ # `CASE_SENSITIVE`.
1379
+ #
1380
+ # Valid values for `MatchOptions` for `CostCategories` and `Tags` are
1381
+ # `EQUALS`, `ABSENT`, and `CASE_SENSITIVE`. Default values are `EQUALS`
1382
+ # and `CASE_SENSITIVE`.
1383
+ #
1150
1384
  #
1151
1385
  #
1152
1386
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@@ -1164,8 +1398,8 @@ module Aws::CostExplorer
1164
1398
  # usage numbers without taking the units into account. For example, if
1165
1399
  # you aggregate `usageQuantity` across all of Amazon EC2, the results
1166
1400
  # aren't meaningful because Amazon EC2 compute hours and data transfer
1167
- # are measured in different units (for example, hours vs. GB). To get
1168
- # more meaningful `UsageQuantity` metrics, filter by `UsageType` or
1401
+ # are measured in different units (for example, hour or GB). To get more
1402
+ # meaningful `UsageQuantity` metrics, filter by `UsageType` or
1169
1403
  # `UsageTypeGroups`.
1170
1404
  #
1171
1405
  # </note>
@@ -1215,19 +1449,19 @@ module Aws::CostExplorer
1215
1449
  # # recursive Expression
1216
1450
  # },
1217
1451
  # dimensions: {
1218
- # 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
1452
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1219
1453
  # values: ["Value"],
1220
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1454
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1221
1455
  # },
1222
1456
  # tags: {
1223
1457
  # key: "TagKey",
1224
1458
  # values: ["Value"],
1225
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1459
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1226
1460
  # },
1227
1461
  # cost_categories: {
1228
1462
  # key: "CostCategoryName",
1229
1463
  # values: ["Value"],
1230
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1464
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1231
1465
  # },
1232
1466
  # },
1233
1467
  # metrics: ["MetricName"],
@@ -1283,11 +1517,10 @@ module Aws::CostExplorer
1283
1517
  # @option params [String] :search_string
1284
1518
  # The value that you want to search the filter values for.
1285
1519
  #
1286
- # If you do not specify a `CostCategoryName`, `SearchString` will be
1287
- # used to filter Cost Category names that match the `SearchString`
1288
- # pattern. If you do specifiy a `CostCategoryName`, `SearchString` will
1289
- # be used to filter Cost Category values that match the `SearchString`
1290
- # pattern.
1520
+ # If you don't specify a `CostCategoryName`, `SearchString` is used to
1521
+ # filter Cost Category names that match the `SearchString` pattern. If
1522
+ # you specify a `CostCategoryName`, `SearchString` is used to filter
1523
+ # Cost Category values that match the `SearchString` pattern.
1291
1524
  #
1292
1525
  # @option params [required, Types::DateInterval] :time_period
1293
1526
  # The time period of the request.
@@ -1296,45 +1529,81 @@ module Aws::CostExplorer
1296
1529
  # The unique name of the Cost Category.
1297
1530
  #
1298
1531
  # @option params [Types::Expression] :filter
1299
- # Use `Expression` to filter by cost or by usage. There are two
1300
- # patterns:
1301
- #
1302
- # * Simple dimension values - You can set the dimension name and values
1303
- # for the filters that you plan to use. For example, you can filter
1304
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
1305
- # `GetRightsizingRecommendation`, the Region is a full name (for
1306
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
1307
- # is as follows:
1308
- #
1309
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1310
- # “us-west-1” ] \} \}`
1311
- #
1312
- # The list of dimension values are OR'd together to retrieve cost or
1313
- # usage data. You can create `Expression` and `DimensionValues`
1314
- # objects using either `with*` methods or `set*` methods in multiple
1315
- # lines.
1316
- #
1317
- # * Compound dimension values with logical operations - You can use
1318
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
1319
- # to create a list of one or more `Expression` objects. By doing this,
1320
- # you can filter on more advanced options. For example, you can filter
1321
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
1322
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
1323
- # is as follows:
1324
- #
1325
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
1326
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1327
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1328
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1532
+ # Use `Expression` to filter in various Cost Explorer APIs.
1533
+ #
1534
+ # Not all `Expression` types are supported in each API. Refer to the
1535
+ # documentation for each specific API to see what is supported.
1536
+ #
1537
+ # There are two patterns:
1538
+ #
1539
+ # * Simple dimension values.
1540
+ #
1541
+ # * There are three types of simple dimension values:
1542
+ # `CostCategories`, `Tags`, and `Dimensions`.
1543
+ #
1544
+ # * Specify the `CostCategories` field to define a filter that acts
1545
+ # on Cost Categories.
1546
+ #
1547
+ # * Specify the `Tags` field to define a filter that acts on Cost
1548
+ # Allocation Tags.
1549
+ #
1550
+ # * Specify the `Dimensions` field to define a filter that acts on
1551
+ # the [ `DimensionValues` ][1].
1552
+ #
1553
+ # * For each filter type, you can set the dimension name and values
1554
+ # for the filters that you plan to use.
1555
+ #
1556
+ # * For example, you can filter for `REGION==us-east-1 OR
1557
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
1558
+ # Region is a full name (for example, `REGION==US East (N.
1559
+ # Virginia)`.
1560
+ #
1561
+ # * The corresponding `Expression` for this example is as follows:
1562
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1563
+ # "us-west-1" ] \} \}`
1564
+ #
1565
+ # * As shown in the previous example, lists of dimension values are
1566
+ # combined with `OR` when applying the filter.
1567
+ #
1568
+ # * You can also set different match options to further control how
1569
+ # the filter behaves. Not all APIs support match options. Refer to
1570
+ # the documentation for each specific API to see what is supported.
1571
+ #
1572
+ # * For example, you can filter for linked account names that start
1573
+ # with "a".
1574
+ #
1575
+ # * The corresponding `Expression` for this example is as follows:
1576
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
1577
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
1578
+ #
1579
+ # * Compound `Expression` types with logical operations.
1580
+ #
1581
+ # * You can use multiple `Expression` types and the logical operators
1582
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
1583
+ # By doing this, you can filter by more advanced options.
1584
+ #
1585
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
1586
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
1587
+ # DataTransfer)`.
1588
+ #
1589
+ # * The corresponding `Expression` for this example is as follows: `\{
1590
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
1591
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1592
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1593
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1329
1594
  #
1330
1595
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
1331
1596
  # returns an error if more than one is specified. The following
1332
- # example shows an `Expression` object that creates an error.
1597
+ # example shows an `Expression` object that creates an error: ` \{
1598
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
1599
+ # "DataTransfer" ] \} \} `
1333
1600
  #
1334
- # </note>
1601
+ # The following is an example of the corresponding error message:
1602
+ # `"Expression has more than one roots. Only one root operator is
1603
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
1604
+ # CostCategories"`
1335
1605
  #
1336
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1337
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1606
+ # </note>
1338
1607
  #
1339
1608
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1340
1609
  # NOT isn't supported. OR isn't supported between different
@@ -1348,11 +1617,15 @@ module Aws::CostExplorer
1348
1617
  #
1349
1618
  # </note>
1350
1619
  #
1620
+ #
1621
+ #
1622
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
1623
+ #
1351
1624
  # @option params [Array<Types::SortDefinition>] :sort_by
1352
- # The value by which you want to sort the data.
1625
+ # The value that you sort the data by.
1353
1626
  #
1354
- # The key represents cost and usage metrics. The following values are
1355
- # supported:
1627
+ # The key represents the cost and usage metrics. The following values
1628
+ # are supported:
1356
1629
  #
1357
1630
  # * `BlendedCost`
1358
1631
  #
@@ -1368,25 +1641,27 @@ module Aws::CostExplorer
1368
1641
  #
1369
1642
  # * `NormalizedUsageAmount`
1370
1643
  #
1371
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
1644
+ # The supported key values for the `SortOrder` value are `ASCENDING` and
1645
+ # `DESCENDING`.
1372
1646
  #
1373
- # When using `SortBy`, `NextPageToken` and `SearchString` are not
1374
- # supported.
1647
+ # When you use the `SortBy` value, the `NextPageToken` and
1648
+ # `SearchString` key values aren't supported.
1375
1649
  #
1376
1650
  # @option params [Integer] :max_results
1377
- # This field is only used when `SortBy` is provided in the request.
1651
+ # This field is only used when the `SortBy` value is provided in the
1652
+ # request.
1378
1653
  #
1379
- # The maximum number of objects that to be returned for this request. If
1380
- # `MaxResults` is not specified with `SortBy`, the request will return
1381
- # 1000 results as the default value for this parameter.
1654
+ # The maximum number of objects that are returned for this request. If
1655
+ # `MaxResults` isn't specified with the `SortBy` value, the request
1656
+ # returns 1000 results as the default value for this parameter.
1382
1657
  #
1383
- # For `GetCostCategories`, MaxResults has an upper limit of 1000.
1658
+ # For `GetCostCategories`, MaxResults has an upper quota of 1000.
1384
1659
  #
1385
1660
  # @option params [String] :next_page_token
1386
1661
  # If the number of objects that are still available for retrieval
1387
- # exceeds the limit, Amazon Web Services returns a NextPageToken value
1662
+ # exceeds the quota, Amazon Web Services returns a NextPageToken value
1388
1663
  # in the response. To retrieve the next batch of objects, provide the
1389
- # NextPageToken from the prior call in your next request.
1664
+ # NextPageToken from the previous call in your next request.
1390
1665
  #
1391
1666
  # @return [Types::GetCostCategoriesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1392
1667
  #
@@ -1420,19 +1695,19 @@ module Aws::CostExplorer
1420
1695
  # # recursive Expression
1421
1696
  # },
1422
1697
  # dimensions: {
1423
- # 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
1698
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1424
1699
  # values: ["Value"],
1425
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1700
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1426
1701
  # },
1427
1702
  # tags: {
1428
1703
  # key: "TagKey",
1429
1704
  # values: ["Value"],
1430
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1705
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1431
1706
  # },
1432
1707
  # cost_categories: {
1433
1708
  # key: "CostCategoryName",
1434
1709
  # values: ["Value"],
1435
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1710
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1436
1711
  # },
1437
1712
  # },
1438
1713
  # sort_by: [
@@ -1588,19 +1863,19 @@ module Aws::CostExplorer
1588
1863
  # # recursive Expression
1589
1864
  # },
1590
1865
  # dimensions: {
1591
- # 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
1866
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1592
1867
  # values: ["Value"],
1593
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1868
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1594
1869
  # },
1595
1870
  # tags: {
1596
1871
  # key: "TagKey",
1597
1872
  # values: ["Value"],
1598
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1873
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1599
1874
  # },
1600
1875
  # cost_categories: {
1601
1876
  # key: "CostCategoryName",
1602
1877
  # values: ["Value"],
1603
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1878
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1604
1879
  # },
1605
1880
  # },
1606
1881
  # prediction_interval_level: 1,
@@ -1643,6 +1918,12 @@ module Aws::CostExplorer
1643
1918
  # @option params [required, String] :dimension
1644
1919
  # The name of the dimension. Each `Dimension` is available for a
1645
1920
  # different `Context`. For more information, see `Context`.
1921
+ # `LINK_ACCOUNT_NAME` and `SERVICE_CODE` can only be used in
1922
+ # [CostCategoryRule][1].
1923
+ #
1924
+ #
1925
+ #
1926
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html
1646
1927
  #
1647
1928
  # @option params [String] :context
1648
1929
  # The context for the call to `GetDimensionValues`. This can be
@@ -1658,12 +1939,39 @@ module Aws::CostExplorer
1658
1939
  #
1659
1940
  # * AZ - The Availability Zone. An example is `us-east-1a`.
1660
1941
  #
1942
+ # * BILLING\_ENTITY - The Amazon Web Services seller that your account
1943
+ # is with. Possible values are the following:
1944
+ #
1945
+ # \- Amazon Web Services(Amazon Web Services): The entity that sells
1946
+ # Amazon Web Services.
1947
+ #
1948
+ # \- AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian
1949
+ # entity that's an acting reseller for Amazon Web Services in India.
1950
+ #
1951
+ # \- Amazon Web Services Marketplace: The entity that supports the sale
1952
+ # of solutions that are built on Amazon Web Services by third-party
1953
+ # software providers.
1954
+ #
1955
+ # * CACHE\_ENGINE - The Amazon ElastiCache operating system. Examples
1956
+ # are Windows or Linux.
1957
+ #
1958
+ # * DEPLOYMENT\_OPTION - The scope of Amazon Relational Database Service
1959
+ # deployments. Valid values are `SingleAZ` and `MultiAZ`.
1960
+ #
1661
1961
  # * DATABASE\_ENGINE - The Amazon Relational Database Service database.
1662
1962
  # Examples are Aurora or MySQL.
1663
1963
  #
1664
1964
  # * INSTANCE\_TYPE - The type of Amazon EC2 instance. An example is
1665
1965
  # `m4.xlarge`.
1666
1966
  #
1967
+ # * INSTANCE\_TYPE\_FAMILY - A family of instance types optimized to fit
1968
+ # different use cases. Examples are `Compute Optimized` (for example,
1969
+ # `C4`, `C5`, `C6g`, and `C7g`), `Memory Optimization` (for example,
1970
+ # `R4`, `R5n`, `R5b`, and `R6g`).
1971
+ #
1972
+ # * INVOICING\_ENTITY - The name of the entity that issues the Amazon
1973
+ # Web Services invoice.
1974
+ #
1667
1975
  # * LEGAL\_ENTITY\_NAME - The name of the organization that sells you
1668
1976
  # Amazon Web Services services, such as Amazon Web Services.
1669
1977
  #
@@ -1680,12 +1988,23 @@ module Aws::CostExplorer
1680
1988
  # * PLATFORM - The Amazon EC2 operating system. Examples are Windows or
1681
1989
  # Linux.
1682
1990
  #
1683
- # * PURCHASE\_TYPE - The reservation type of the purchase to which this
1684
- # usage is related. Examples include On-Demand Instances and Standard
1685
- # Reserved Instances.
1991
+ # * PURCHASE\_TYPE - The reservation type of the purchase that this
1992
+ # usage is related to. Examples include On-Demand Instances and
1993
+ # Standard Reserved Instances.
1994
+ #
1995
+ # * RESERVATION\_ID - The unique identifier for an Amazon Web Services
1996
+ # Reservation Instance.
1997
+ #
1998
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plans.
1999
+ #
2000
+ # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
2001
+ # Compute).
1686
2002
  #
1687
2003
  # * SERVICE - The Amazon Web Services service such as Amazon DynamoDB.
1688
2004
  #
2005
+ # * TENANCY - The tenancy of a resource. Examples are shared or
2006
+ # dedicated.
2007
+ #
1689
2008
  # * USAGE\_TYPE - The type of usage. An example is
1690
2009
  # DataTransfer-In-Bytes. The response for the `GetDimensionValues`
1691
2010
  # operation includes a unit attribute. Examples include GB and Hrs.
@@ -1696,8 +2015,8 @@ module Aws::CostExplorer
1696
2015
  #
1697
2016
  # * REGION - The Amazon Web Services Region.
1698
2017
  #
1699
- # * RECORD\_TYPE - The different types of charges such as RI fees, usage
1700
- # costs, tax refunds, and credits.
2018
+ # * RECORD\_TYPE - The different types of charges such as Reserved
2019
+ # Instance (RI) fees, usage costs, tax refunds, and credits.
1701
2020
  #
1702
2021
  # * RESOURCE\_ID - The unique identifier of the resource. ResourceId is
1703
2022
  # an opt-in feature only available for last 14 days for EC2-Compute
@@ -1741,8 +2060,8 @@ module Aws::CostExplorer
1741
2060
  # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
1742
2061
  # Compute)
1743
2062
  #
1744
- # * PAYMENT\_OPTION - Payment option for the given Savings Plans (for
1745
- # example, All Upfront)
2063
+ # * PAYMENT\_OPTION - The payment option for the given Savings Plans
2064
+ # (for example, All Upfront)
1746
2065
  #
1747
2066
  # * REGION - The Amazon Web Services Region.
1748
2067
  #
@@ -1752,48 +2071,84 @@ module Aws::CostExplorer
1752
2071
  # the full name of the member account. The value field contains the
1753
2072
  # Amazon Web Services ID of the member account.
1754
2073
  #
1755
- # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
2074
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plans.
1756
2075
  #
1757
2076
  # @option params [Types::Expression] :filter
1758
- # Use `Expression` to filter by cost or by usage. There are two
1759
- # patterns:
1760
- #
1761
- # * Simple dimension values - You can set the dimension name and values
1762
- # for the filters that you plan to use. For example, you can filter
1763
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
1764
- # `GetRightsizingRecommendation`, the Region is a full name (for
1765
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
1766
- # is as follows:
1767
- #
1768
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1769
- # “us-west-1” ] \} \}`
1770
- #
1771
- # The list of dimension values are OR'd together to retrieve cost or
1772
- # usage data. You can create `Expression` and `DimensionValues`
1773
- # objects using either `with*` methods or `set*` methods in multiple
1774
- # lines.
1775
- #
1776
- # * Compound dimension values with logical operations - You can use
1777
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
1778
- # to create a list of one or more `Expression` objects. By doing this,
1779
- # you can filter on more advanced options. For example, you can filter
1780
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
1781
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
1782
- # is as follows:
1783
- #
1784
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
1785
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1786
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1787
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
2077
+ # Use `Expression` to filter in various Cost Explorer APIs.
2078
+ #
2079
+ # Not all `Expression` types are supported in each API. Refer to the
2080
+ # documentation for each specific API to see what is supported.
2081
+ #
2082
+ # There are two patterns:
2083
+ #
2084
+ # * Simple dimension values.
2085
+ #
2086
+ # * There are three types of simple dimension values:
2087
+ # `CostCategories`, `Tags`, and `Dimensions`.
2088
+ #
2089
+ # * Specify the `CostCategories` field to define a filter that acts
2090
+ # on Cost Categories.
2091
+ #
2092
+ # * Specify the `Tags` field to define a filter that acts on Cost
2093
+ # Allocation Tags.
2094
+ #
2095
+ # * Specify the `Dimensions` field to define a filter that acts on
2096
+ # the [ `DimensionValues` ][1].
2097
+ #
2098
+ # * For each filter type, you can set the dimension name and values
2099
+ # for the filters that you plan to use.
2100
+ #
2101
+ # * For example, you can filter for `REGION==us-east-1 OR
2102
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
2103
+ # Region is a full name (for example, `REGION==US East (N.
2104
+ # Virginia)`.
2105
+ #
2106
+ # * The corresponding `Expression` for this example is as follows:
2107
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2108
+ # "us-west-1" ] \} \}`
2109
+ #
2110
+ # * As shown in the previous example, lists of dimension values are
2111
+ # combined with `OR` when applying the filter.
2112
+ #
2113
+ # * You can also set different match options to further control how
2114
+ # the filter behaves. Not all APIs support match options. Refer to
2115
+ # the documentation for each specific API to see what is supported.
2116
+ #
2117
+ # * For example, you can filter for linked account names that start
2118
+ # with "a".
2119
+ #
2120
+ # * The corresponding `Expression` for this example is as follows:
2121
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
2122
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
2123
+ #
2124
+ # * Compound `Expression` types with logical operations.
2125
+ #
2126
+ # * You can use multiple `Expression` types and the logical operators
2127
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
2128
+ # By doing this, you can filter by more advanced options.
2129
+ #
2130
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
2131
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
2132
+ # DataTransfer)`.
2133
+ #
2134
+ # * The corresponding `Expression` for this example is as follows: `\{
2135
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
2136
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
2137
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
2138
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1788
2139
  #
1789
2140
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
1790
2141
  # returns an error if more than one is specified. The following
1791
- # example shows an `Expression` object that creates an error.
2142
+ # example shows an `Expression` object that creates an error: ` \{
2143
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
2144
+ # "DataTransfer" ] \} \} `
1792
2145
  #
1793
- # </note>
2146
+ # The following is an example of the corresponding error message:
2147
+ # `"Expression has more than one roots. Only one root operator is
2148
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
2149
+ # CostCategories"`
1794
2150
  #
1795
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1796
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2151
+ # </note>
1797
2152
  #
1798
2153
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1799
2154
  # NOT isn't supported. OR isn't supported between different
@@ -1807,8 +2162,12 @@ module Aws::CostExplorer
1807
2162
  #
1808
2163
  # </note>
1809
2164
  #
2165
+ #
2166
+ #
2167
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
2168
+ #
1810
2169
  # @option params [Array<Types::SortDefinition>] :sort_by
1811
- # The value by which you want to sort the data.
2170
+ # The value that you want to sort the data by.
1812
2171
  #
1813
2172
  # The key represents cost and usage metrics. The following values are
1814
2173
  # supported:
@@ -1827,16 +2186,17 @@ module Aws::CostExplorer
1827
2186
  #
1828
2187
  # * `NormalizedUsageAmount`
1829
2188
  #
1830
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2189
+ # The supported values for the `SortOrder` key are `ASCENDING` or
2190
+ # `DESCENDING`.
1831
2191
  #
1832
2192
  # When you specify a `SortBy` paramater, the context must be
1833
2193
  # `COST_AND_USAGE`. Further, when using `SortBy`, `NextPageToken` and
1834
- # `SearchString` are not supported.
2194
+ # `SearchString` aren't supported.
1835
2195
  #
1836
2196
  # @option params [Integer] :max_results
1837
2197
  # This field is only used when SortBy is provided in the request. The
1838
- # maximum number of objects that to be returned for this request. If
1839
- # MaxResults is not specified with SortBy, the request will return 1000
2198
+ # maximum number of objects that are returned for this request. If
2199
+ # MaxResults isn't specified with SortBy, the request returns 1000
1840
2200
  # results as the default value for this parameter.
1841
2201
  #
1842
2202
  # For `GetDimensionValues`, MaxResults has an upper limit of 1000.
@@ -1861,7 +2221,7 @@ module Aws::CostExplorer
1861
2221
  # start: "YearMonthDay", # required
1862
2222
  # end: "YearMonthDay", # required
1863
2223
  # },
1864
- # 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
2224
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1865
2225
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
1866
2226
  # filter: {
1867
2227
  # or: [
@@ -1878,19 +2238,19 @@ module Aws::CostExplorer
1878
2238
  # # recursive Expression
1879
2239
  # },
1880
2240
  # dimensions: {
1881
- # 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
2241
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
1882
2242
  # values: ["Value"],
1883
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2243
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1884
2244
  # },
1885
2245
  # tags: {
1886
2246
  # key: "TagKey",
1887
2247
  # values: ["Value"],
1888
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2248
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1889
2249
  # },
1890
2250
  # cost_categories: {
1891
2251
  # key: "CostCategoryName",
1892
2252
  # values: ["Value"],
1893
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2253
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
1894
2254
  # },
1895
2255
  # },
1896
2256
  # sort_by: [
@@ -1922,7 +2282,7 @@ module Aws::CostExplorer
1922
2282
  req.send_request(options)
1923
2283
  end
1924
2284
 
1925
- # Retrieves the reservation coverage for your account. This enables you
2285
+ # Retrieves the reservation coverage for your account, which you can use
1926
2286
  # to see how much of your Amazon Elastic Compute Cloud, Amazon
1927
2287
  # ElastiCache, Amazon Relational Database Service, or Amazon Redshift
1928
2288
  # usage is covered by a reservation. An organization's management
@@ -1980,6 +2340,8 @@ module Aws::CostExplorer
1980
2340
  #
1981
2341
  # * INSTANCE\_TYPE
1982
2342
  #
2343
+ # * INVOICING\_ENTITY
2344
+ #
1983
2345
  # * LINKED\_ACCOUNT
1984
2346
  #
1985
2347
  # * OPERATING\_SYSTEM
@@ -2057,7 +2419,7 @@ module Aws::CostExplorer
2057
2419
  # @option params [Types::SortDefinition] :sort_by
2058
2420
  # The value by which you want to sort the data.
2059
2421
  #
2060
- # The following values are supported for `Key`\:
2422
+ # The following values are supported for `Key`:
2061
2423
  #
2062
2424
  # * `OnDemandCost`
2063
2425
  #
@@ -2122,19 +2484,19 @@ module Aws::CostExplorer
2122
2484
  # # recursive Expression
2123
2485
  # },
2124
2486
  # dimensions: {
2125
- # 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
2487
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
2126
2488
  # values: ["Value"],
2127
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2489
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2128
2490
  # },
2129
2491
  # tags: {
2130
2492
  # key: "TagKey",
2131
2493
  # values: ["Value"],
2132
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2494
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2133
2495
  # },
2134
2496
  # cost_categories: {
2135
2497
  # key: "CostCategoryName",
2136
2498
  # values: ["Value"],
2137
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2499
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2138
2500
  # },
2139
2501
  # },
2140
2502
  # metrics: ["MetricName"],
@@ -2192,75 +2554,111 @@ module Aws::CostExplorer
2192
2554
  req.send_request(options)
2193
2555
  end
2194
2556
 
2195
- # Gets recommendations for which reservations to purchase. These
2196
- # recommendations could help you reduce your costs. Reservations provide
2197
- # a discounted hourly rate (up to 75%) compared to On-Demand pricing.
2557
+ # Gets recommendations for reservation purchases. These recommendations
2558
+ # might help you to reduce your costs. Reservations provide a discounted
2559
+ # hourly rate (up to 75%) compared to On-Demand pricing.
2198
2560
  #
2199
2561
  # Amazon Web Services generates your recommendations by identifying your
2200
2562
  # On-Demand usage during a specific time period and collecting your
2201
2563
  # usage into categories that are eligible for a reservation. After
2202
2564
  # Amazon Web Services has these categories, it simulates every
2203
2565
  # combination of reservations in each category of usage to identify the
2204
- # best number of each type of RI to purchase to maximize your estimated
2205
- # savings.
2566
+ # best number of each type of Reserved Instance (RI) to purchase to
2567
+ # maximize your estimated savings.
2206
2568
  #
2207
2569
  # For example, Amazon Web Services automatically aggregates your Amazon
2208
2570
  # EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon)
2209
2571
  # Region and recommends that you buy size-flexible regional reservations
2210
2572
  # to apply to the c4 family usage. Amazon Web Services recommends the
2211
2573
  # smallest size instance in an instance family. This makes it easier to
2212
- # purchase a size-flexible RI. Amazon Web Services also shows the equal
2213
- # number of normalized units so that you can purchase any instance size
2214
- # that you want. For this example, your RI recommendation would be for
2215
- # `c4.large` because that is the smallest size instance in the c4
2216
- # instance family.
2574
+ # purchase a size-flexible Reserved Instance (RI). Amazon Web Services
2575
+ # also shows the equal number of normalized units. This way, you can
2576
+ # purchase any instance size that you want. For this example, your RI
2577
+ # recommendation is for `c4.large` because that is the smallest size
2578
+ # instance in the c4 instance family.
2217
2579
  #
2218
2580
  # @option params [String] :account_id
2219
- # The account ID that is associated with the recommendation.
2581
+ # The account ID that's associated with the recommendation.
2220
2582
  #
2221
2583
  # @option params [required, String] :service
2222
2584
  # The specific service that you want recommendations for.
2223
2585
  #
2224
2586
  # @option params [Types::Expression] :filter
2225
- # Use `Expression` to filter by cost or by usage. There are two
2226
- # patterns:
2227
- #
2228
- # * Simple dimension values - You can set the dimension name and values
2229
- # for the filters that you plan to use. For example, you can filter
2230
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
2231
- # `GetRightsizingRecommendation`, the Region is a full name (for
2232
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
2233
- # is as follows:
2234
- #
2235
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2236
- # “us-west-1” ] \} \}`
2237
- #
2238
- # The list of dimension values are OR'd together to retrieve cost or
2239
- # usage data. You can create `Expression` and `DimensionValues`
2240
- # objects using either `with*` methods or `set*` methods in multiple
2241
- # lines.
2242
- #
2243
- # * Compound dimension values with logical operations - You can use
2244
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
2245
- # to create a list of one or more `Expression` objects. By doing this,
2246
- # you can filter on more advanced options. For example, you can filter
2247
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
2248
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
2249
- # is as follows:
2250
- #
2251
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
2252
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
2253
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
2254
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
2587
+ # Use `Expression` to filter in various Cost Explorer APIs.
2588
+ #
2589
+ # Not all `Expression` types are supported in each API. Refer to the
2590
+ # documentation for each specific API to see what is supported.
2591
+ #
2592
+ # There are two patterns:
2593
+ #
2594
+ # * Simple dimension values.
2595
+ #
2596
+ # * There are three types of simple dimension values:
2597
+ # `CostCategories`, `Tags`, and `Dimensions`.
2598
+ #
2599
+ # * Specify the `CostCategories` field to define a filter that acts
2600
+ # on Cost Categories.
2601
+ #
2602
+ # * Specify the `Tags` field to define a filter that acts on Cost
2603
+ # Allocation Tags.
2604
+ #
2605
+ # * Specify the `Dimensions` field to define a filter that acts on
2606
+ # the [ `DimensionValues` ][1].
2607
+ #
2608
+ # * For each filter type, you can set the dimension name and values
2609
+ # for the filters that you plan to use.
2610
+ #
2611
+ # * For example, you can filter for `REGION==us-east-1 OR
2612
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
2613
+ # Region is a full name (for example, `REGION==US East (N.
2614
+ # Virginia)`.
2615
+ #
2616
+ # * The corresponding `Expression` for this example is as follows:
2617
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2618
+ # "us-west-1" ] \} \}`
2619
+ #
2620
+ # * As shown in the previous example, lists of dimension values are
2621
+ # combined with `OR` when applying the filter.
2622
+ #
2623
+ # * You can also set different match options to further control how
2624
+ # the filter behaves. Not all APIs support match options. Refer to
2625
+ # the documentation for each specific API to see what is supported.
2626
+ #
2627
+ # * For example, you can filter for linked account names that start
2628
+ # with "a".
2629
+ #
2630
+ # * The corresponding `Expression` for this example is as follows:
2631
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
2632
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
2633
+ #
2634
+ # * Compound `Expression` types with logical operations.
2635
+ #
2636
+ # * You can use multiple `Expression` types and the logical operators
2637
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
2638
+ # By doing this, you can filter by more advanced options.
2639
+ #
2640
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
2641
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
2642
+ # DataTransfer)`.
2643
+ #
2644
+ # * The corresponding `Expression` for this example is as follows: `\{
2645
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
2646
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
2647
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
2648
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
2255
2649
  #
2256
2650
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
2257
2651
  # returns an error if more than one is specified. The following
2258
- # example shows an `Expression` object that creates an error.
2652
+ # example shows an `Expression` object that creates an error: ` \{
2653
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
2654
+ # "DataTransfer" ] \} \} `
2259
2655
  #
2260
- # </note>
2656
+ # The following is an example of the corresponding error message:
2657
+ # `"Expression has more than one roots. Only one root operator is
2658
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
2659
+ # CostCategories"`
2261
2660
  #
2262
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2263
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2661
+ # </note>
2264
2662
  #
2265
2663
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
2266
2664
  # NOT isn't supported. OR isn't supported between different
@@ -2274,6 +2672,10 @@ module Aws::CostExplorer
2274
2672
  #
2275
2673
  # </note>
2276
2674
  #
2675
+ #
2676
+ #
2677
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
2678
+ #
2277
2679
  # @option params [String] :account_scope
2278
2680
  # The account scope that you want your recommendations for. Amazon Web
2279
2681
  # Services calculates recommendations including the management account
@@ -2330,19 +2732,19 @@ module Aws::CostExplorer
2330
2732
  # # recursive Expression
2331
2733
  # },
2332
2734
  # dimensions: {
2333
- # 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
2735
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
2334
2736
  # values: ["Value"],
2335
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2737
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2336
2738
  # },
2337
2739
  # tags: {
2338
2740
  # key: "TagKey",
2339
2741
  # values: ["Value"],
2340
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2742
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2341
2743
  # },
2342
2744
  # cost_categories: {
2343
2745
  # key: "CostCategoryName",
2344
2746
  # values: ["Value"],
2345
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2747
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2346
2748
  # },
2347
2749
  # },
2348
2750
  # account_scope: "PAYER", # accepts PAYER, LINKED
@@ -2403,6 +2805,11 @@ module Aws::CostExplorer
2403
2805
  # resp.recommendations[0].recommendation_details[0].instance_details.es_instance_details.region #=> String
2404
2806
  # resp.recommendations[0].recommendation_details[0].instance_details.es_instance_details.current_generation #=> Boolean
2405
2807
  # resp.recommendations[0].recommendation_details[0].instance_details.es_instance_details.size_flex_eligible #=> Boolean
2808
+ # resp.recommendations[0].recommendation_details[0].instance_details.memory_db_instance_details.family #=> String
2809
+ # resp.recommendations[0].recommendation_details[0].instance_details.memory_db_instance_details.node_type #=> String
2810
+ # resp.recommendations[0].recommendation_details[0].instance_details.memory_db_instance_details.region #=> String
2811
+ # resp.recommendations[0].recommendation_details[0].instance_details.memory_db_instance_details.current_generation #=> Boolean
2812
+ # resp.recommendations[0].recommendation_details[0].instance_details.memory_db_instance_details.size_flex_eligible #=> Boolean
2406
2813
  # resp.recommendations[0].recommendation_details[0].recommended_number_of_instances_to_purchase #=> String
2407
2814
  # resp.recommendations[0].recommendation_details[0].recommended_normalized_units_to_purchase #=> String
2408
2815
  # resp.recommendations[0].recommendation_details[0].minimum_number_of_instances_used_per_hour #=> String
@@ -2441,11 +2848,12 @@ module Aws::CostExplorer
2441
2848
  # Currently, you can group only by `SUBSCRIPTION_ID`.
2442
2849
  #
2443
2850
  # @option params [required, Types::DateInterval] :time_period
2444
- # Sets the start and end dates for retrieving RI utilization. The start
2445
- # date is inclusive, but the end date is exclusive. For example, if
2446
- # `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost and
2447
- # usage data is retrieved from `2017-01-01` up to and including
2448
- # `2017-04-30` but not including `2017-05-01`.
2851
+ # Sets the start and end dates for retrieving Reserved Instance (RI)
2852
+ # utilization. The start date is inclusive, but the end date is
2853
+ # exclusive. For example, if `start` is `2017-01-01` and `end` is
2854
+ # `2017-05-01`, then the cost and usage data is retrieved from
2855
+ # `2017-01-01` up to and including `2017-04-30` but not including
2856
+ # `2017-05-01`.
2449
2857
  #
2450
2858
  # @option params [Array<Types::GroupDefinition>] :group_by
2451
2859
  # Groups only by `SUBSCRIPTION_ID`. Metadata is included.
@@ -2495,9 +2903,9 @@ module Aws::CostExplorer
2495
2903
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
2496
2904
  #
2497
2905
  # @option params [Types::SortDefinition] :sort_by
2498
- # The value by which you want to sort the data.
2906
+ # The value that you want to sort the data by.
2499
2907
  #
2500
- # The following values are supported for `Key`\:
2908
+ # The following values are supported for `Key`:
2501
2909
  #
2502
2910
  # * `UtilizationPercentage`
2503
2911
  #
@@ -2533,7 +2941,7 @@ module Aws::CostExplorer
2533
2941
  #
2534
2942
  # * `UnrealizedSavings`
2535
2943
  #
2536
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2944
+ # The supported values for `SortOrder` are `ASCENDING` and `DESCENDING`.
2537
2945
  #
2538
2946
  # @option params [String] :next_page_token
2539
2947
  # The token to retrieve the next set of results. Amazon Web Services
@@ -2581,19 +2989,19 @@ module Aws::CostExplorer
2581
2989
  # # recursive Expression
2582
2990
  # },
2583
2991
  # dimensions: {
2584
- # 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
2992
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
2585
2993
  # values: ["Value"],
2586
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2994
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2587
2995
  # },
2588
2996
  # tags: {
2589
2997
  # key: "TagKey",
2590
2998
  # values: ["Value"],
2591
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2999
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2592
3000
  # },
2593
3001
  # cost_categories: {
2594
3002
  # key: "CostCategoryName",
2595
3003
  # values: ["Value"],
2596
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3004
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2597
3005
  # },
2598
3006
  # },
2599
3007
  # sort_by: {
@@ -2680,55 +3088,91 @@ module Aws::CostExplorer
2680
3088
  # and underutilized Amazon EC2 instances.
2681
3089
  #
2682
3090
  # Recommendations are generated to either downsize or terminate
2683
- # instances, along with providing savings detail and metrics. For
2684
- # details on calculation and function, see [Optimizing Your Cost with
2685
- # Rightsizing Recommendations][1] in the *Billing and Cost Management
2686
- # User Guide*.
3091
+ # instances, along with providing savings detail and metrics. For more
3092
+ # information about calculation and function, see [Optimizing Your Cost
3093
+ # with Rightsizing Recommendations][1] in the *Billing and Cost
3094
+ # Management User Guide*.
2687
3095
  #
2688
3096
  #
2689
3097
  #
2690
3098
  # [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html
2691
3099
  #
2692
3100
  # @option params [Types::Expression] :filter
2693
- # Use `Expression` to filter by cost or by usage. There are two
2694
- # patterns:
2695
- #
2696
- # * Simple dimension values - You can set the dimension name and values
2697
- # for the filters that you plan to use. For example, you can filter
2698
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
2699
- # `GetRightsizingRecommendation`, the Region is a full name (for
2700
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
2701
- # is as follows:
2702
- #
2703
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2704
- # “us-west-1” ] \} \}`
2705
- #
2706
- # The list of dimension values are OR'd together to retrieve cost or
2707
- # usage data. You can create `Expression` and `DimensionValues`
2708
- # objects using either `with*` methods or `set*` methods in multiple
2709
- # lines.
2710
- #
2711
- # * Compound dimension values with logical operations - You can use
2712
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
2713
- # to create a list of one or more `Expression` objects. By doing this,
2714
- # you can filter on more advanced options. For example, you can filter
2715
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
2716
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
2717
- # is as follows:
2718
- #
2719
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
2720
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
2721
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
2722
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
3101
+ # Use `Expression` to filter in various Cost Explorer APIs.
3102
+ #
3103
+ # Not all `Expression` types are supported in each API. Refer to the
3104
+ # documentation for each specific API to see what is supported.
3105
+ #
3106
+ # There are two patterns:
3107
+ #
3108
+ # * Simple dimension values.
3109
+ #
3110
+ # * There are three types of simple dimension values:
3111
+ # `CostCategories`, `Tags`, and `Dimensions`.
3112
+ #
3113
+ # * Specify the `CostCategories` field to define a filter that acts
3114
+ # on Cost Categories.
3115
+ #
3116
+ # * Specify the `Tags` field to define a filter that acts on Cost
3117
+ # Allocation Tags.
3118
+ #
3119
+ # * Specify the `Dimensions` field to define a filter that acts on
3120
+ # the [ `DimensionValues` ][1].
3121
+ #
3122
+ # * For each filter type, you can set the dimension name and values
3123
+ # for the filters that you plan to use.
3124
+ #
3125
+ # * For example, you can filter for `REGION==us-east-1 OR
3126
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
3127
+ # Region is a full name (for example, `REGION==US East (N.
3128
+ # Virginia)`.
3129
+ #
3130
+ # * The corresponding `Expression` for this example is as follows:
3131
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3132
+ # "us-west-1" ] \} \}`
3133
+ #
3134
+ # * As shown in the previous example, lists of dimension values are
3135
+ # combined with `OR` when applying the filter.
3136
+ #
3137
+ # * You can also set different match options to further control how
3138
+ # the filter behaves. Not all APIs support match options. Refer to
3139
+ # the documentation for each specific API to see what is supported.
3140
+ #
3141
+ # * For example, you can filter for linked account names that start
3142
+ # with "a".
3143
+ #
3144
+ # * The corresponding `Expression` for this example is as follows:
3145
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
3146
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
3147
+ #
3148
+ # * Compound `Expression` types with logical operations.
3149
+ #
3150
+ # * You can use multiple `Expression` types and the logical operators
3151
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
3152
+ # By doing this, you can filter by more advanced options.
3153
+ #
3154
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
3155
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3156
+ # DataTransfer)`.
3157
+ #
3158
+ # * The corresponding `Expression` for this example is as follows: `\{
3159
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
3160
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
3161
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
3162
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
2723
3163
  #
2724
3164
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
2725
3165
  # returns an error if more than one is specified. The following
2726
- # example shows an `Expression` object that creates an error.
3166
+ # example shows an `Expression` object that creates an error: ` \{
3167
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
3168
+ # "DataTransfer" ] \} \} `
2727
3169
  #
2728
- # </note>
3170
+ # The following is an example of the corresponding error message:
3171
+ # `"Expression has more than one roots. Only one root operator is
3172
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
3173
+ # CostCategories"`
2729
3174
  #
2730
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2731
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3175
+ # </note>
2732
3176
  #
2733
3177
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
2734
3178
  # NOT isn't supported. OR isn't supported between different
@@ -2742,13 +3186,17 @@ module Aws::CostExplorer
2742
3186
  #
2743
3187
  # </note>
2744
3188
  #
3189
+ #
3190
+ #
3191
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
3192
+ #
2745
3193
  # @option params [Types::RightsizingRecommendationConfiguration] :configuration
2746
- # Enables you to customize recommendations across two attributes. You
2747
- # can choose to view recommendations for instances within the same
2748
- # instance families or across different instance families. You can also
2749
- # choose to view your estimated savings associated with recommendations
2750
- # with consideration of existing Savings Plans or RI benefits, or
2751
- # neither.
3194
+ # You can use Configuration to customize recommendations across two
3195
+ # attributes. You can choose to view recommendations for instances
3196
+ # within the same instance families or across different instance
3197
+ # families. You can also choose to view your estimated savings that are
3198
+ # associated with recommendations with consideration of existing Savings
3199
+ # Plans or RI benefits, or neither.
2752
3200
  #
2753
3201
  # @option params [required, String] :service
2754
3202
  # The specific service that you want recommendations for. The only valid
@@ -2788,19 +3236,19 @@ module Aws::CostExplorer
2788
3236
  # # recursive Expression
2789
3237
  # },
2790
3238
  # dimensions: {
2791
- # 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
3239
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
2792
3240
  # values: ["Value"],
2793
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3241
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2794
3242
  # },
2795
3243
  # tags: {
2796
3244
  # key: "TagKey",
2797
3245
  # values: ["Value"],
2798
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3246
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2799
3247
  # },
2800
3248
  # cost_categories: {
2801
3249
  # key: "CostCategoryName",
2802
3250
  # values: ["Value"],
2803
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3251
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
2804
3252
  # },
2805
3253
  # },
2806
3254
  # configuration: {
@@ -2831,7 +3279,7 @@ module Aws::CostExplorer
2831
3279
  # resp.rightsizing_recommendations[0].current_instance.tags[0].values #=> Array
2832
3280
  # resp.rightsizing_recommendations[0].current_instance.tags[0].values[0] #=> String
2833
3281
  # resp.rightsizing_recommendations[0].current_instance.tags[0].match_options #=> Array
2834
- # resp.rightsizing_recommendations[0].current_instance.tags[0].match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
3282
+ # resp.rightsizing_recommendations[0].current_instance.tags[0].match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE", "GREATER_THAN_OR_EQUAL"
2835
3283
  # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.hourly_on_demand_rate #=> String
2836
3284
  # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.instance_type #=> String
2837
3285
  # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.platform #=> String
@@ -2911,6 +3359,71 @@ module Aws::CostExplorer
2911
3359
  req.send_request(options)
2912
3360
  end
2913
3361
 
3362
+ # Retrieves the details for a Savings Plan recommendation. These details
3363
+ # include the hourly data-points that construct the cost, coverage, and
3364
+ # utilization charts.
3365
+ #
3366
+ # @option params [required, String] :recommendation_detail_id
3367
+ # The ID that is associated with the Savings Plan recommendation.
3368
+ #
3369
+ # @return [Types::GetSavingsPlanPurchaseRecommendationDetailsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3370
+ #
3371
+ # * {Types::GetSavingsPlanPurchaseRecommendationDetailsResponse#recommendation_detail_id #recommendation_detail_id} => String
3372
+ # * {Types::GetSavingsPlanPurchaseRecommendationDetailsResponse#recommendation_detail_data #recommendation_detail_data} => Types::RecommendationDetailData
3373
+ #
3374
+ # @example Request syntax with placeholder values
3375
+ #
3376
+ # resp = client.get_savings_plan_purchase_recommendation_details({
3377
+ # recommendation_detail_id: "RecommendationDetailId", # required
3378
+ # })
3379
+ #
3380
+ # @example Response structure
3381
+ #
3382
+ # resp.recommendation_detail_id #=> String
3383
+ # resp.recommendation_detail_data.account_scope #=> String, one of "PAYER", "LINKED"
3384
+ # resp.recommendation_detail_data.lookback_period_in_days #=> String, one of "SEVEN_DAYS", "THIRTY_DAYS", "SIXTY_DAYS"
3385
+ # resp.recommendation_detail_data.savings_plans_type #=> String, one of "COMPUTE_SP", "EC2_INSTANCE_SP", "SAGEMAKER_SP"
3386
+ # resp.recommendation_detail_data.term_in_years #=> String, one of "ONE_YEAR", "THREE_YEARS"
3387
+ # resp.recommendation_detail_data.payment_option #=> String, one of "NO_UPFRONT", "PARTIAL_UPFRONT", "ALL_UPFRONT", "LIGHT_UTILIZATION", "MEDIUM_UTILIZATION", "HEAVY_UTILIZATION"
3388
+ # resp.recommendation_detail_data.account_id #=> String
3389
+ # resp.recommendation_detail_data.currency_code #=> String
3390
+ # resp.recommendation_detail_data.instance_family #=> String
3391
+ # resp.recommendation_detail_data.region #=> String
3392
+ # resp.recommendation_detail_data.offering_id #=> String
3393
+ # resp.recommendation_detail_data.generation_timestamp #=> String
3394
+ # resp.recommendation_detail_data.latest_usage_timestamp #=> String
3395
+ # resp.recommendation_detail_data.current_average_hourly_on_demand_spend #=> String
3396
+ # resp.recommendation_detail_data.current_maximum_hourly_on_demand_spend #=> String
3397
+ # resp.recommendation_detail_data.current_minimum_hourly_on_demand_spend #=> String
3398
+ # resp.recommendation_detail_data.estimated_average_utilization #=> String
3399
+ # resp.recommendation_detail_data.estimated_monthly_savings_amount #=> String
3400
+ # resp.recommendation_detail_data.estimated_on_demand_cost #=> String
3401
+ # resp.recommendation_detail_data.estimated_on_demand_cost_with_current_commitment #=> String
3402
+ # resp.recommendation_detail_data.estimated_roi #=> String
3403
+ # resp.recommendation_detail_data.estimated_sp_cost #=> String
3404
+ # resp.recommendation_detail_data.estimated_savings_amount #=> String
3405
+ # resp.recommendation_detail_data.estimated_savings_percentage #=> String
3406
+ # resp.recommendation_detail_data.existing_hourly_commitment #=> String
3407
+ # resp.recommendation_detail_data.hourly_commitment_to_purchase #=> String
3408
+ # resp.recommendation_detail_data.upfront_cost #=> String
3409
+ # resp.recommendation_detail_data.current_average_coverage #=> String
3410
+ # resp.recommendation_detail_data.estimated_average_coverage #=> String
3411
+ # resp.recommendation_detail_data.metrics_over_lookback_period #=> Array
3412
+ # resp.recommendation_detail_data.metrics_over_lookback_period[0].start_time #=> String
3413
+ # resp.recommendation_detail_data.metrics_over_lookback_period[0].estimated_on_demand_cost #=> String
3414
+ # resp.recommendation_detail_data.metrics_over_lookback_period[0].current_coverage #=> String
3415
+ # resp.recommendation_detail_data.metrics_over_lookback_period[0].estimated_coverage #=> String
3416
+ # resp.recommendation_detail_data.metrics_over_lookback_period[0].estimated_new_commitment_utilization #=> String
3417
+ #
3418
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlanPurchaseRecommendationDetails AWS API Documentation
3419
+ #
3420
+ # @overload get_savings_plan_purchase_recommendation_details(params = {})
3421
+ # @param [Hash] params ({})
3422
+ def get_savings_plan_purchase_recommendation_details(params = {}, options = {})
3423
+ req = build_request(:get_savings_plan_purchase_recommendation_details, params)
3424
+ req.send_request(options)
3425
+ end
3426
+
2914
3427
  # Retrieves the Savings Plans covered for your account. This enables you
2915
3428
  # to see how much of your cost is covered by a Savings Plan. An
2916
3429
  # organization’s management account can see the coverage of the
@@ -2982,9 +3495,9 @@ module Aws::CostExplorer
2982
3495
  # with a minimum value of `1`.
2983
3496
  #
2984
3497
  # @option params [Types::SortDefinition] :sort_by
2985
- # The value by which you want to sort the data.
3498
+ # The value that you want to sort the data by.
2986
3499
  #
2987
- # The following values are supported for `Key`\:
3500
+ # The following values are supported for `Key`:
2988
3501
  #
2989
3502
  # * `SpendCoveredBySavingsPlan`
2990
3503
  #
@@ -3000,7 +3513,7 @@ module Aws::CostExplorer
3000
3513
  #
3001
3514
  # * `Service`
3002
3515
  #
3003
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3516
+ # The supported values for `SortOrder` are `ASCENDING` and `DESCENDING`.
3004
3517
  #
3005
3518
  # @return [Types::GetSavingsPlansCoverageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3006
3519
  #
@@ -3038,19 +3551,19 @@ module Aws::CostExplorer
3038
3551
  # # recursive Expression
3039
3552
  # },
3040
3553
  # dimensions: {
3041
- # 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
3554
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3042
3555
  # values: ["Value"],
3043
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3556
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3044
3557
  # },
3045
3558
  # tags: {
3046
3559
  # key: "TagKey",
3047
3560
  # values: ["Value"],
3048
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3561
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3049
3562
  # },
3050
3563
  # cost_categories: {
3051
3564
  # key: "CostCategoryName",
3052
3565
  # values: ["Value"],
3053
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3566
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3054
3567
  # },
3055
3568
  # },
3056
3569
  # metrics: ["MetricName"],
@@ -3084,18 +3597,20 @@ module Aws::CostExplorer
3084
3597
  req.send_request(options)
3085
3598
  end
3086
3599
 
3087
- # Retrieves your request parameters, Savings Plan Recommendations
3088
- # Summary and Details.
3600
+ # Retrieves the Savings Plans recommendations for your account. First
3601
+ # use `StartSavingsPlansPurchaseRecommendationGeneration` to generate a
3602
+ # new set of recommendations, and then use
3603
+ # `GetSavingsPlansPurchaseRecommendation` to retrieve them.
3089
3604
  #
3090
3605
  # @option params [required, String] :savings_plans_type
3091
- # The Savings Plans recommendation type requested.
3606
+ # The Savings Plans recommendation type that's requested.
3092
3607
  #
3093
3608
  # @option params [required, String] :term_in_years
3094
- # The savings plan recommendation term used to generate these
3609
+ # The savings plan recommendation term that's used to generate these
3095
3610
  # recommendations.
3096
3611
  #
3097
3612
  # @option params [required, String] :payment_option
3098
- # The payment option used to generate these recommendations.
3613
+ # The payment option that's used to generate these recommendations.
3099
3614
  #
3100
3615
  # @option params [String] :account_scope
3101
3616
  # The account scope that you want your recommendations for. Amazon Web
@@ -3114,20 +3629,20 @@ module Aws::CostExplorer
3114
3629
  # response object.
3115
3630
  #
3116
3631
  # @option params [required, String] :lookback_period_in_days
3117
- # The lookback period used to generate the recommendation.
3632
+ # The lookback period that's used to generate the recommendation.
3118
3633
  #
3119
3634
  # @option params [Types::Expression] :filter
3120
3635
  # You can filter your recommendations by Account ID with the
3121
3636
  # `LINKED_ACCOUNT` dimension. To filter your recommendations by Account
3122
3637
  # ID, specify `Key` as `LINKED_ACCOUNT` and `Value` as the
3123
- # comma-separated Acount ID(s) for which you want to see Savings Plans
3124
- # purchase recommendations.
3638
+ # comma-separated Acount ID(s) that you want to see Savings Plans
3639
+ # purchase recommendations for.
3125
3640
  #
3126
- # For GetSavingsPlansPurchaseRecommendation, the `Filter` does not
3641
+ # For GetSavingsPlansPurchaseRecommendation, the `Filter` doesn't
3127
3642
  # include `CostCategories` or `Tags`. It only includes `Dimensions`.
3128
3643
  # With `Dimensions`, `Key` must be `LINKED_ACCOUNT` and `Value` can be a
3129
- # single Account ID or multiple comma-separated Account IDs for which
3130
- # you want to see Savings Plans Purchase Recommendations. `AND` and `OR`
3644
+ # single Account ID or multiple comma-separated Account IDs that you
3645
+ # want to see Savings Plans Purchase Recommendations for. `AND` and `OR`
3131
3646
  # operators are not supported.
3132
3647
  #
3133
3648
  # @return [Types::GetSavingsPlansPurchaseRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -3161,19 +3676,19 @@ module Aws::CostExplorer
3161
3676
  # # recursive Expression
3162
3677
  # },
3163
3678
  # dimensions: {
3164
- # 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
3679
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3165
3680
  # values: ["Value"],
3166
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3681
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3167
3682
  # },
3168
3683
  # tags: {
3169
3684
  # key: "TagKey",
3170
3685
  # values: ["Value"],
3171
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3686
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3172
3687
  # },
3173
3688
  # cost_categories: {
3174
3689
  # key: "CostCategoryName",
3175
3690
  # values: ["Value"],
3176
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3691
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3177
3692
  # },
3178
3693
  # },
3179
3694
  # })
@@ -3207,6 +3722,7 @@ module Aws::CostExplorer
3207
3722
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_details[0].current_minimum_hourly_on_demand_spend #=> String
3208
3723
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_details[0].current_maximum_hourly_on_demand_spend #=> String
3209
3724
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_details[0].current_average_hourly_on_demand_spend #=> String
3725
+ # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_details[0].recommendation_detail_id #=> String
3210
3726
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_summary.estimated_roi #=> String
3211
3727
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_summary.currency_code #=> String
3212
3728
  # resp.savings_plans_purchase_recommendation.savings_plans_purchase_recommendation_summary.estimated_total_cost #=> String
@@ -3235,7 +3751,7 @@ module Aws::CostExplorer
3235
3751
  # `GetDimensionValues` in `SAVINGS_PLANS` to determine the possible
3236
3752
  # dimension values.
3237
3753
  #
3238
- # <note markdown="1"> You cannot group by any dimension values for
3754
+ # <note markdown="1"> You can't group by any dimension values for
3239
3755
  # `GetSavingsPlansUtilization`.
3240
3756
  #
3241
3757
  # </note>
@@ -3278,9 +3794,9 @@ module Aws::CostExplorer
3278
3794
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3279
3795
  #
3280
3796
  # @option params [Types::SortDefinition] :sort_by
3281
- # The value by which you want to sort the data.
3797
+ # The value that you want to sort the data by.
3282
3798
  #
3283
- # The following values are supported for `Key`\:
3799
+ # The following values are supported for `Key`:
3284
3800
  #
3285
3801
  # * `UtilizationPercentage`
3286
3802
  #
@@ -3292,7 +3808,7 @@ module Aws::CostExplorer
3292
3808
  #
3293
3809
  # * `NetSavings`
3294
3810
  #
3295
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3811
+ # The supported values for `SortOrder` are `ASCENDING` and `DESCENDING`.
3296
3812
  #
3297
3813
  # @return [Types::GetSavingsPlansUtilizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3298
3814
  #
@@ -3322,19 +3838,19 @@ module Aws::CostExplorer
3322
3838
  # # recursive Expression
3323
3839
  # },
3324
3840
  # dimensions: {
3325
- # 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
3841
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3326
3842
  # values: ["Value"],
3327
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3843
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3328
3844
  # },
3329
3845
  # tags: {
3330
3846
  # key: "TagKey",
3331
3847
  # values: ["Value"],
3332
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3848
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3333
3849
  # },
3334
3850
  # cost_categories: {
3335
3851
  # key: "CostCategoryName",
3336
3852
  # values: ["Value"],
3337
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3853
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3338
3854
  # },
3339
3855
  # },
3340
3856
  # sort_by: {
@@ -3431,9 +3947,9 @@ module Aws::CostExplorer
3431
3947
  # with a minimum value of `1`.
3432
3948
  #
3433
3949
  # @option params [Types::SortDefinition] :sort_by
3434
- # The value by which you want to sort the data.
3950
+ # The value that you want to sort the data by.
3435
3951
  #
3436
- # The following values are supported for `Key`\:
3952
+ # The following values are supported for `Key`:
3437
3953
  #
3438
3954
  # * `UtilizationPercentage`
3439
3955
  #
@@ -3449,7 +3965,7 @@ module Aws::CostExplorer
3449
3965
  #
3450
3966
  # * `AmortizedUpfrontCommitment`
3451
3967
  #
3452
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3968
+ # The supported values for `SortOrder` are `ASCENDING` and `DESCENDING`.
3453
3969
  #
3454
3970
  # @return [Types::GetSavingsPlansUtilizationDetailsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3455
3971
  #
@@ -3482,19 +3998,19 @@ module Aws::CostExplorer
3482
3998
  # # recursive Expression
3483
3999
  # },
3484
4000
  # dimensions: {
3485
- # 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
4001
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3486
4002
  # values: ["Value"],
3487
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4003
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3488
4004
  # },
3489
4005
  # tags: {
3490
4006
  # key: "TagKey",
3491
4007
  # values: ["Value"],
3492
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4008
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3493
4009
  # },
3494
4010
  # cost_categories: {
3495
4011
  # key: "CostCategoryName",
3496
4012
  # values: ["Value"],
3497
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4013
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3498
4014
  # },
3499
4015
  # },
3500
4016
  # data_type: ["ATTRIBUTES"], # accepts ATTRIBUTES, UTILIZATION, AMORTIZED_COMMITMENT, SAVINGS
@@ -3560,45 +4076,81 @@ module Aws::CostExplorer
3560
4076
  # The key of the tag that you want to return values for.
3561
4077
  #
3562
4078
  # @option params [Types::Expression] :filter
3563
- # Use `Expression` to filter by cost or by usage. There are two
3564
- # patterns:
3565
- #
3566
- # * Simple dimension values - You can set the dimension name and values
3567
- # for the filters that you plan to use. For example, you can filter
3568
- # for `REGION==us-east-1 OR REGION==us-west-1`. For
3569
- # `GetRightsizingRecommendation`, the Region is a full name (for
3570
- # example, `REGION==US East (N. Virginia)`. The `Expression` example
3571
- # is as follows:
3572
- #
3573
- # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3574
- # “us-west-1” ] \} \}`
3575
- #
3576
- # The list of dimension values are OR'd together to retrieve cost or
3577
- # usage data. You can create `Expression` and `DimensionValues`
3578
- # objects using either `with*` methods or `set*` methods in multiple
3579
- # lines.
3580
- #
3581
- # * Compound dimension values with logical operations - You can use
3582
- # multiple `Expression` types and the logical operators `AND/OR/NOT`
3583
- # to create a list of one or more `Expression` objects. By doing this,
3584
- # you can filter on more advanced options. For example, you can filter
3585
- # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
3586
- # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
3587
- # is as follows:
3588
- #
3589
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
3590
- # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
3591
- # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
3592
- # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
4079
+ # Use `Expression` to filter in various Cost Explorer APIs.
4080
+ #
4081
+ # Not all `Expression` types are supported in each API. Refer to the
4082
+ # documentation for each specific API to see what is supported.
4083
+ #
4084
+ # There are two patterns:
4085
+ #
4086
+ # * Simple dimension values.
4087
+ #
4088
+ # * There are three types of simple dimension values:
4089
+ # `CostCategories`, `Tags`, and `Dimensions`.
4090
+ #
4091
+ # * Specify the `CostCategories` field to define a filter that acts
4092
+ # on Cost Categories.
4093
+ #
4094
+ # * Specify the `Tags` field to define a filter that acts on Cost
4095
+ # Allocation Tags.
4096
+ #
4097
+ # * Specify the `Dimensions` field to define a filter that acts on
4098
+ # the [ `DimensionValues` ][1].
4099
+ #
4100
+ # * For each filter type, you can set the dimension name and values
4101
+ # for the filters that you plan to use.
4102
+ #
4103
+ # * For example, you can filter for `REGION==us-east-1 OR
4104
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
4105
+ # Region is a full name (for example, `REGION==US East (N.
4106
+ # Virginia)`.
4107
+ #
4108
+ # * The corresponding `Expression` for this example is as follows:
4109
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4110
+ # "us-west-1" ] \} \}`
4111
+ #
4112
+ # * As shown in the previous example, lists of dimension values are
4113
+ # combined with `OR` when applying the filter.
4114
+ #
4115
+ # * You can also set different match options to further control how
4116
+ # the filter behaves. Not all APIs support match options. Refer to
4117
+ # the documentation for each specific API to see what is supported.
4118
+ #
4119
+ # * For example, you can filter for linked account names that start
4120
+ # with "a".
4121
+ #
4122
+ # * The corresponding `Expression` for this example is as follows:
4123
+ # `\{ "Dimensions": \{ "Key": "LINKED_ACCOUNT_NAME",
4124
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] \} \}`
4125
+ #
4126
+ # * Compound `Expression` types with logical operations.
4127
+ #
4128
+ # * You can use multiple `Expression` types and the logical operators
4129
+ # `AND/OR/NOT` to create a list of one or more `Expression` objects.
4130
+ # By doing this, you can filter by more advanced options.
4131
+ #
4132
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION ==
4133
+ # us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4134
+ # DataTransfer)`.
4135
+ #
4136
+ # * The corresponding `Expression` for this example is as follows: `\{
4137
+ # "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values": [
4138
+ # "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
4139
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
4140
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
3593
4141
  #
3594
4142
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
3595
4143
  # returns an error if more than one is specified. The following
3596
- # example shows an `Expression` object that creates an error.
4144
+ # example shows an `Expression` object that creates an error: ` \{
4145
+ # "And": [ ... ], "Dimensions": \{ "Key": "USAGE_TYPE", "Values": [
4146
+ # "DataTransfer" ] \} \} `
3597
4147
  #
3598
- # </note>
4148
+ # The following is an example of the corresponding error message:
4149
+ # `"Expression has more than one roots. Only one root operator is
4150
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
4151
+ # CostCategories"`
3599
4152
  #
3600
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3601
- # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
4153
+ # </note>
3602
4154
  #
3603
4155
  # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
3604
4156
  # NOT isn't supported. OR isn't supported between different
@@ -3612,8 +4164,12 @@ module Aws::CostExplorer
3612
4164
  #
3613
4165
  # </note>
3614
4166
  #
4167
+ #
4168
+ #
4169
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
4170
+ #
3615
4171
  # @option params [Array<Types::SortDefinition>] :sort_by
3616
- # The value by which you want to sort the data.
4172
+ # The value that you want to sort the data by.
3617
4173
  #
3618
4174
  # The key represents cost and usage metrics. The following values are
3619
4175
  # supported:
@@ -3632,18 +4188,18 @@ module Aws::CostExplorer
3632
4188
  #
3633
4189
  # * `NormalizedUsageAmount`
3634
4190
  #
3635
- # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4191
+ # The supported values for `SortOrder` are `ASCENDING` and `DESCENDING`.
3636
4192
  #
3637
- # When using `SortBy`, `NextPageToken` and `SearchString` are not
4193
+ # When you use `SortBy`, `NextPageToken` and `SearchString` aren't
3638
4194
  # supported.
3639
4195
  #
3640
4196
  # @option params [Integer] :max_results
3641
4197
  # This field is only used when SortBy is provided in the request. The
3642
- # maximum number of objects that to be returned for this request. If
3643
- # MaxResults is not specified with SortBy, the request will return 1000
4198
+ # maximum number of objects that are returned for this request. If
4199
+ # MaxResults isn't specified with SortBy, the request returns 1000
3644
4200
  # results as the default value for this parameter.
3645
4201
  #
3646
- # For `GetTags`, MaxResults has an upper limit of 1000.
4202
+ # For `GetTags`, MaxResults has an upper quota of 1000.
3647
4203
  #
3648
4204
  # @option params [String] :next_page_token
3649
4205
  # The token to retrieve the next set of results. Amazon Web Services
@@ -3681,19 +4237,19 @@ module Aws::CostExplorer
3681
4237
  # # recursive Expression
3682
4238
  # },
3683
4239
  # dimensions: {
3684
- # 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
4240
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3685
4241
  # values: ["Value"],
3686
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4242
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3687
4243
  # },
3688
4244
  # tags: {
3689
4245
  # key: "TagKey",
3690
4246
  # values: ["Value"],
3691
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4247
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3692
4248
  # },
3693
4249
  # cost_categories: {
3694
4250
  # key: "CostCategoryName",
3695
4251
  # values: ["Value"],
3696
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4252
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3697
4253
  # },
3698
4254
  # },
3699
4255
  # sort_by: [
@@ -3729,12 +4285,12 @@ module Aws::CostExplorer
3729
4285
  #
3730
4286
  # @option params [required, Types::DateInterval] :time_period
3731
4287
  # The start and end dates of the period that you want to retrieve usage
3732
- # forecast for. The start date is inclusive, but the end date is
3733
- # exclusive. For example, if `start` is `2017-01-01` and `end` is
3734
- # `2017-05-01`, then the cost and usage data is retrieved from
3735
- # `2017-01-01` up to and including `2017-04-30` but not including
3736
- # `2017-05-01`. The start date must be equal to or later than the
3737
- # current date to avoid a validation error.
4288
+ # forecast for. The start date is included in the period, but the end
4289
+ # date isn't included in the period. For example, if `start` is
4290
+ # `2017-01-01` and `end` is `2017-05-01`, then the cost and usage data
4291
+ # is retrieved from `2017-01-01` up to and including `2017-04-30` but
4292
+ # not including `2017-05-01`. The start date must be equal to or later
4293
+ # than the current date to avoid a validation error.
3738
4294
  #
3739
4295
  # @option params [required, String] :metric
3740
4296
  # Which metric Cost Explorer uses to create your forecast.
@@ -3803,12 +4359,12 @@ module Aws::CostExplorer
3803
4359
  # * `SAVINGS_PLAN_ARN`
3804
4360
  #
3805
4361
  # @option params [Integer] :prediction_interval_level
3806
- # Cost Explorer always returns the mean forecast as a single point. You
3807
- # can request a prediction interval around the mean by specifying a
3808
- # confidence level. The higher the confidence level, the more confident
3809
- # Cost Explorer is about the actual value falling in the prediction
3810
- # interval. Higher confidence levels result in wider prediction
3811
- # intervals.
4362
+ # Amazon Web Services Cost Explorer always returns the mean forecast as
4363
+ # a single point. You can request a prediction interval around the mean
4364
+ # by specifying a confidence level. The higher the confidence level, the
4365
+ # more confident Cost Explorer is about the actual value falling in the
4366
+ # prediction interval. Higher confidence levels result in wider
4367
+ # prediction intervals.
3812
4368
  #
3813
4369
  # @return [Types::GetUsageForecastResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3814
4370
  #
@@ -3839,19 +4395,19 @@ module Aws::CostExplorer
3839
4395
  # # recursive Expression
3840
4396
  # },
3841
4397
  # dimensions: {
3842
- # 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
4398
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
3843
4399
  # values: ["Value"],
3844
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4400
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3845
4401
  # },
3846
4402
  # tags: {
3847
4403
  # key: "TagKey",
3848
4404
  # values: ["Value"],
3849
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4405
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3850
4406
  # },
3851
4407
  # cost_categories: {
3852
4408
  # key: "CostCategoryName",
3853
4409
  # values: ["Value"],
3854
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4410
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
3855
4411
  # },
3856
4412
  # },
3857
4413
  # prediction_interval_level: 1,
@@ -3877,14 +4433,79 @@ module Aws::CostExplorer
3877
4433
  req.send_request(options)
3878
4434
  end
3879
4435
 
3880
- # Returns the name, ARN, `NumberOfRules` and effective dates of all Cost
3881
- # Categories defined in the account. You have the option to use
3882
- # `EffectiveOn` to return a list of Cost Categories that were active on
3883
- # a specific date. If there is no `EffectiveOn` specified, you’ll see
3884
- # Cost Categories that are effective on the current date. If Cost
3885
- # Category is still effective, `EffectiveEnd` is omitted in the
3886
- # response. `ListCostCategoryDefinitions` supports pagination. The
3887
- # request can have a `MaxResults` range up to 100.
4436
+ # Get a list of cost allocation tags. All inputs in the API are optional
4437
+ # and serve as filters. By default, all cost allocation tags are
4438
+ # returned.
4439
+ #
4440
+ # @option params [String] :status
4441
+ # The status of cost allocation tag keys that are returned for this
4442
+ # request.
4443
+ #
4444
+ # @option params [Array<String>] :tag_keys
4445
+ # The list of cost allocation tag keys that are returned for this
4446
+ # request.
4447
+ #
4448
+ # @option params [String] :type
4449
+ # The type of `CostAllocationTag` object that are returned for this
4450
+ # request. The `AWSGenerated` type tags are tags that Amazon Web
4451
+ # Services defines and applies to support Amazon Web Services resources
4452
+ # for cost allocation purposes. The `UserDefined` type tags are tags
4453
+ # that you define, create, and apply to resources.
4454
+ #
4455
+ # @option params [String] :next_token
4456
+ # The token to retrieve the next set of results. Amazon Web Services
4457
+ # provides the token when the response from a previous call has more
4458
+ # results than the maximum page size.
4459
+ #
4460
+ # @option params [Integer] :max_results
4461
+ # The maximum number of objects that are returned for this request. By
4462
+ # default, the request returns 100 results.
4463
+ #
4464
+ # @return [Types::ListCostAllocationTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4465
+ #
4466
+ # * {Types::ListCostAllocationTagsResponse#cost_allocation_tags #cost_allocation_tags} => Array&lt;Types::CostAllocationTag&gt;
4467
+ # * {Types::ListCostAllocationTagsResponse#next_token #next_token} => String
4468
+ #
4469
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4470
+ #
4471
+ # @example Request syntax with placeholder values
4472
+ #
4473
+ # resp = client.list_cost_allocation_tags({
4474
+ # status: "Active", # accepts Active, Inactive
4475
+ # tag_keys: ["TagKey"],
4476
+ # type: "AWSGenerated", # accepts AWSGenerated, UserDefined
4477
+ # next_token: "NextPageToken",
4478
+ # max_results: 1,
4479
+ # })
4480
+ #
4481
+ # @example Response structure
4482
+ #
4483
+ # resp.cost_allocation_tags #=> Array
4484
+ # resp.cost_allocation_tags[0].tag_key #=> String
4485
+ # resp.cost_allocation_tags[0].type #=> String, one of "AWSGenerated", "UserDefined"
4486
+ # resp.cost_allocation_tags[0].status #=> String, one of "Active", "Inactive"
4487
+ # resp.cost_allocation_tags[0].last_updated_date #=> String
4488
+ # resp.cost_allocation_tags[0].last_used_date #=> String
4489
+ # resp.next_token #=> String
4490
+ #
4491
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostAllocationTags AWS API Documentation
4492
+ #
4493
+ # @overload list_cost_allocation_tags(params = {})
4494
+ # @param [Hash] params ({})
4495
+ def list_cost_allocation_tags(params = {}, options = {})
4496
+ req = build_request(:list_cost_allocation_tags, params)
4497
+ req.send_request(options)
4498
+ end
4499
+
4500
+ # Returns the name, Amazon Resource Name (ARN), `NumberOfRules` and
4501
+ # effective dates of all Cost Categories defined in the account. You
4502
+ # have the option to use `EffectiveOn` to return a list of Cost
4503
+ # Categories that were active on a specific date. If there is no
4504
+ # `EffectiveOn` specified, you’ll see Cost Categories that are effective
4505
+ # on the current date. If Cost Category is still effective,
4506
+ # `EffectiveEnd` is omitted in the response.
4507
+ # `ListCostCategoryDefinitions` supports pagination. The request can
4508
+ # have a `MaxResults` range up to 100.
3888
4509
  #
3889
4510
  # @option params [String] :effective_on
3890
4511
  # The date when the Cost Category was effective.
@@ -3937,6 +4558,91 @@ module Aws::CostExplorer
3937
4558
  req.send_request(options)
3938
4559
  end
3939
4560
 
4561
+ # Retrieves a list of your historical recommendation generations within
4562
+ # the past 30 days.
4563
+ #
4564
+ # @option params [String] :generation_status
4565
+ # The status of the recommendation generation.
4566
+ #
4567
+ # @option params [Array<String>] :recommendation_ids
4568
+ # The IDs for each specific recommendation.
4569
+ #
4570
+ # @option params [Integer] :page_size
4571
+ # The number of recommendations that you want returned in a single
4572
+ # response object.
4573
+ #
4574
+ # @option params [String] :next_page_token
4575
+ # The token to retrieve the next set of results.
4576
+ #
4577
+ # @return [Types::ListSavingsPlansPurchaseRecommendationGenerationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4578
+ #
4579
+ # * {Types::ListSavingsPlansPurchaseRecommendationGenerationResponse#generation_summary_list #generation_summary_list} => Array&lt;Types::GenerationSummary&gt;
4580
+ # * {Types::ListSavingsPlansPurchaseRecommendationGenerationResponse#next_page_token #next_page_token} => String
4581
+ #
4582
+ # @example Request syntax with placeholder values
4583
+ #
4584
+ # resp = client.list_savings_plans_purchase_recommendation_generation({
4585
+ # generation_status: "SUCCEEDED", # accepts SUCCEEDED, PROCESSING, FAILED
4586
+ # recommendation_ids: ["RecommendationId"],
4587
+ # page_size: 1,
4588
+ # next_page_token: "NextPageToken",
4589
+ # })
4590
+ #
4591
+ # @example Response structure
4592
+ #
4593
+ # resp.generation_summary_list #=> Array
4594
+ # resp.generation_summary_list[0].recommendation_id #=> String
4595
+ # resp.generation_summary_list[0].generation_status #=> String, one of "SUCCEEDED", "PROCESSING", "FAILED"
4596
+ # resp.generation_summary_list[0].generation_started_time #=> String
4597
+ # resp.generation_summary_list[0].generation_completion_time #=> String
4598
+ # resp.generation_summary_list[0].estimated_completion_time #=> String
4599
+ # resp.next_page_token #=> String
4600
+ #
4601
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListSavingsPlansPurchaseRecommendationGeneration AWS API Documentation
4602
+ #
4603
+ # @overload list_savings_plans_purchase_recommendation_generation(params = {})
4604
+ # @param [Hash] params ({})
4605
+ def list_savings_plans_purchase_recommendation_generation(params = {}, options = {})
4606
+ req = build_request(:list_savings_plans_purchase_recommendation_generation, params)
4607
+ req.send_request(options)
4608
+ end
4609
+
4610
+ # Returns a list of resource tags associated with the resource specified
4611
+ # by the Amazon Resource Name (ARN).
4612
+ #
4613
+ # @option params [required, String] :resource_arn
4614
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4615
+ # supported resources, see [ResourceTag][1].
4616
+ #
4617
+ #
4618
+ #
4619
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4620
+ #
4621
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4622
+ #
4623
+ # * {Types::ListTagsForResourceResponse#resource_tags #resource_tags} => Array&lt;Types::ResourceTag&gt;
4624
+ #
4625
+ # @example Request syntax with placeholder values
4626
+ #
4627
+ # resp = client.list_tags_for_resource({
4628
+ # resource_arn: "Arn", # required
4629
+ # })
4630
+ #
4631
+ # @example Response structure
4632
+ #
4633
+ # resp.resource_tags #=> Array
4634
+ # resp.resource_tags[0].key #=> String
4635
+ # resp.resource_tags[0].value #=> String
4636
+ #
4637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListTagsForResource AWS API Documentation
4638
+ #
4639
+ # @overload list_tags_for_resource(params = {})
4640
+ # @param [Hash] params ({})
4641
+ def list_tags_for_resource(params = {}, options = {})
4642
+ req = build_request(:list_tags_for_resource, params)
4643
+ req.send_request(options)
4644
+ end
4645
+
3940
4646
  # Modifies the feedback property of a given cost anomaly.
3941
4647
  #
3942
4648
  # @option params [required, String] :anomaly_id
@@ -3970,8 +4676,143 @@ module Aws::CostExplorer
3970
4676
  req.send_request(options)
3971
4677
  end
3972
4678
 
4679
+ # Requests a Savings Plans recommendation generation. This enables you
4680
+ # to calculate a fresh set of Savings Plans recommendations that takes
4681
+ # your latest usage data and current Savings Plans inventory into
4682
+ # account. You can refresh Savings Plans recommendations up to three
4683
+ # times daily for a consolidated billing family.
4684
+ #
4685
+ # <note markdown="1"> `StartSavingsPlansPurchaseRecommendationGeneration` has no request
4686
+ # syntax because no input parameters are needed to support this
4687
+ # operation.
4688
+ #
4689
+ # </note>
4690
+ #
4691
+ # @return [Types::StartSavingsPlansPurchaseRecommendationGenerationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4692
+ #
4693
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#recommendation_id #recommendation_id} => String
4694
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#generation_started_time #generation_started_time} => String
4695
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#estimated_completion_time #estimated_completion_time} => String
4696
+ #
4697
+ # @example Response structure
4698
+ #
4699
+ # resp.recommendation_id #=> String
4700
+ # resp.generation_started_time #=> String
4701
+ # resp.estimated_completion_time #=> String
4702
+ #
4703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartSavingsPlansPurchaseRecommendationGeneration AWS API Documentation
4704
+ #
4705
+ # @overload start_savings_plans_purchase_recommendation_generation(params = {})
4706
+ # @param [Hash] params ({})
4707
+ def start_savings_plans_purchase_recommendation_generation(params = {}, options = {})
4708
+ req = build_request(:start_savings_plans_purchase_recommendation_generation, params)
4709
+ req.send_request(options)
4710
+ end
4711
+
4712
+ # An API operation for adding one or more tags (key-value pairs) to a
4713
+ # resource.
4714
+ #
4715
+ # You can use the `TagResource` operation with a resource that already
4716
+ # has tags. If you specify a new tag key for the resource, this tag is
4717
+ # appended to the list of tags associated with the resource. If you
4718
+ # specify a tag key that is already associated with the resource, the
4719
+ # new tag value you specify replaces the previous value for that tag.
4720
+ #
4721
+ # Although the maximum number of array members is 200, user-tag maximum
4722
+ # is 50. The remaining are reserved for Amazon Web Services use.
4723
+ #
4724
+ # @option params [required, String] :resource_arn
4725
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4726
+ # supported resources, see [ResourceTag][1].
4727
+ #
4728
+ #
4729
+ #
4730
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4731
+ #
4732
+ # @option params [required, Array<Types::ResourceTag>] :resource_tags
4733
+ # A list of tag key-value pairs to be added to the resource.
4734
+ #
4735
+ # Each tag consists of a key and a value, and each key must be unique
4736
+ # for the resource. The following restrictions apply to resource tags:
4737
+ #
4738
+ # * Although the maximum number of array members is 200, you can assign
4739
+ # a maximum of 50 user-tags to one resource. The remaining are
4740
+ # reserved for Amazon Web Services use
4741
+ #
4742
+ # * The maximum length of a key is 128 characters
4743
+ #
4744
+ # * The maximum length of a value is 256 characters
4745
+ #
4746
+ # * Keys and values can only contain alphanumeric characters, spaces,
4747
+ # and any of the following: `_.:/=+@-`
4748
+ #
4749
+ # * Keys and values are case sensitive
4750
+ #
4751
+ # * Keys and values are trimmed for any leading or trailing whitespaces
4752
+ #
4753
+ # * Don’t use `aws:` as a prefix for your keys. This prefix is reserved
4754
+ # for Amazon Web Services use
4755
+ #
4756
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4757
+ #
4758
+ # @example Request syntax with placeholder values
4759
+ #
4760
+ # resp = client.tag_resource({
4761
+ # resource_arn: "Arn", # required
4762
+ # resource_tags: [ # required
4763
+ # {
4764
+ # key: "ResourceTagKey", # required
4765
+ # value: "ResourceTagValue", # required
4766
+ # },
4767
+ # ],
4768
+ # })
4769
+ #
4770
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagResource AWS API Documentation
4771
+ #
4772
+ # @overload tag_resource(params = {})
4773
+ # @param [Hash] params ({})
4774
+ def tag_resource(params = {}, options = {})
4775
+ req = build_request(:tag_resource, params)
4776
+ req.send_request(options)
4777
+ end
4778
+
4779
+ # Removes one or more tags from a resource. Specify only tag keys in
4780
+ # your request. Don't specify the value.
4781
+ #
4782
+ # @option params [required, String] :resource_arn
4783
+ # The Amazon Resource Name (ARN) of the resource. For a list of
4784
+ # supported resources, see [ResourceTag][1].
4785
+ #
4786
+ #
4787
+ #
4788
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html
4789
+ #
4790
+ # @option params [required, Array<String>] :resource_tag_keys
4791
+ # A list of tag keys associated with tags that need to be removed from
4792
+ # the resource. If you specify a tag key that doesn't exist, it's
4793
+ # ignored. Although the maximum number of array members is 200, user-tag
4794
+ # maximum is 50. The remaining are reserved for Amazon Web Services use.
4795
+ #
4796
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4797
+ #
4798
+ # @example Request syntax with placeholder values
4799
+ #
4800
+ # resp = client.untag_resource({
4801
+ # resource_arn: "Arn", # required
4802
+ # resource_tag_keys: ["ResourceTagKey"], # required
4803
+ # })
4804
+ #
4805
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UntagResource AWS API Documentation
4806
+ #
4807
+ # @overload untag_resource(params = {})
4808
+ # @param [Hash] params ({})
4809
+ def untag_resource(params = {}, options = {})
4810
+ req = build_request(:untag_resource, params)
4811
+ req.send_request(options)
4812
+ end
4813
+
3973
4814
  # Updates an existing cost anomaly monitor. The changes made are applied
3974
- # going forward, and doesn'tt change anomalies detected in the past.
4815
+ # going forward, and doesn't change anomalies detected in the past.
3975
4816
  #
3976
4817
  # @option params [required, String] :monitor_arn
3977
4818
  # Cost anomaly monitor Amazon Resource Names (ARNs).
@@ -4003,14 +4844,33 @@ module Aws::CostExplorer
4003
4844
  req.send_request(options)
4004
4845
  end
4005
4846
 
4006
- # Updates an existing cost anomaly monitor subscription.
4847
+ # Updates an existing cost anomaly subscription. Specify the fields that
4848
+ # you want to update. Omitted fields are unchanged.
4849
+ #
4850
+ # <note markdown="1"> The JSON below describes the generic construct for each type. See
4851
+ # [Request Parameters][1] for possible values as they apply to
4852
+ # `AnomalySubscription`.
4853
+ #
4854
+ # </note>
4855
+ #
4856
+ #
4857
+ #
4858
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_UpdateAnomalySubscription.html#API_UpdateAnomalySubscription_RequestParameters
4007
4859
  #
4008
4860
  # @option params [required, String] :subscription_arn
4009
4861
  # A cost anomaly subscription Amazon Resource Name (ARN).
4010
4862
  #
4011
4863
  # @option params [Float] :threshold
4864
+ # (deprecated)
4865
+ #
4012
4866
  # The update to the threshold value for receiving notifications.
4013
4867
  #
4868
+ # This field has been deprecated. To update a threshold, use
4869
+ # ThresholdExpression. Continued use of Threshold will be treated as
4870
+ # shorthand syntax for a ThresholdExpression.
4871
+ #
4872
+ # You can specify either Threshold or ThresholdExpression, but not both.
4873
+ #
4014
4874
  # @option params [String] :frequency
4015
4875
  # The update to the frequency value that subscribers receive
4016
4876
  # notifications.
@@ -4024,6 +4884,48 @@ module Aws::CostExplorer
4024
4884
  # @option params [String] :subscription_name
4025
4885
  # The new name of the subscription.
4026
4886
  #
4887
+ # @option params [Types::Expression] :threshold_expression
4888
+ # The update to the [Expression][1] object used to specify the anomalies
4889
+ # that you want to generate alerts for. This supports dimensions and
4890
+ # nested expressions. The supported dimensions are
4891
+ # `ANOMALY_TOTAL_IMPACT_ABSOLUTE` and `ANOMALY_TOTAL_IMPACT_PERCENTAGE`,
4892
+ # corresponding to an anomaly’s TotalImpact and TotalImpactPercentage,
4893
+ # respectively (see [Impact][2] for more details). The supported nested
4894
+ # expression types are `AND` and `OR`. The match option
4895
+ # `GREATER_THAN_OR_EQUAL` is required. Values must be numbers between 0
4896
+ # and 10,000,000,000 in string format.
4897
+ #
4898
+ # You can specify either Threshold or ThresholdExpression, but not both.
4899
+ #
4900
+ # The following are examples of valid ThresholdExpressions:
4901
+ #
4902
+ # * Absolute threshold: `\{ "Dimensions": \{ "Key":
4903
+ # "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
4904
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
4905
+ #
4906
+ # * Percentage threshold: `\{ "Dimensions": \{ "Key":
4907
+ # "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [
4908
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}`
4909
+ #
4910
+ # * `AND` two thresholds together: `\{ "And": [ \{ "Dimensions": \{
4911
+ # "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
4912
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
4913
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
4914
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \}
4915
+ # \} ] \}`
4916
+ #
4917
+ # * `OR` two thresholds together: `\{ "Or": [ \{ "Dimensions": \{ "Key":
4918
+ # "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
4919
+ # "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \} \}, \{
4920
+ # "Dimensions": \{ "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
4921
+ # "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] \}
4922
+ # \} ] \}`
4923
+ #
4924
+ #
4925
+ #
4926
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
4927
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html
4928
+ #
4027
4929
  # @return [Types::UpdateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4028
4930
  #
4029
4931
  # * {Types::UpdateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
@@ -4043,6 +4945,36 @@ module Aws::CostExplorer
4043
4945
  # },
4044
4946
  # ],
4045
4947
  # subscription_name: "GenericString",
4948
+ # threshold_expression: {
4949
+ # or: [
4950
+ # {
4951
+ # # recursive Expression
4952
+ # },
4953
+ # ],
4954
+ # and: [
4955
+ # {
4956
+ # # recursive Expression
4957
+ # },
4958
+ # ],
4959
+ # not: {
4960
+ # # recursive Expression
4961
+ # },
4962
+ # dimensions: {
4963
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
4964
+ # values: ["Value"],
4965
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4966
+ # },
4967
+ # tags: {
4968
+ # key: "TagKey",
4969
+ # values: ["Value"],
4970
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4971
+ # },
4972
+ # cost_categories: {
4973
+ # key: "CostCategoryName",
4974
+ # values: ["Value"],
4975
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4976
+ # },
4977
+ # },
4046
4978
  # })
4047
4979
  #
4048
4980
  # @example Response structure
@@ -4058,6 +4990,47 @@ module Aws::CostExplorer
4058
4990
  req.send_request(options)
4059
4991
  end
4060
4992
 
4993
+ # Updates status for cost allocation tags in bulk, with maximum batch
4994
+ # size of 20. If the tag status that's updated is the same as the
4995
+ # existing tag status, the request doesn't fail. Instead, it doesn't
4996
+ # have any effect on the tag status (for example, activating the active
4997
+ # tag).
4998
+ #
4999
+ # @option params [required, Array<Types::CostAllocationTagStatusEntry>] :cost_allocation_tags_status
5000
+ # The list of `CostAllocationTagStatusEntry` objects that are used to
5001
+ # update cost allocation tags status for this request.
5002
+ #
5003
+ # @return [Types::UpdateCostAllocationTagsStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5004
+ #
5005
+ # * {Types::UpdateCostAllocationTagsStatusResponse#errors #errors} => Array&lt;Types::UpdateCostAllocationTagsStatusError&gt;
5006
+ #
5007
+ # @example Request syntax with placeholder values
5008
+ #
5009
+ # resp = client.update_cost_allocation_tags_status({
5010
+ # cost_allocation_tags_status: [ # required
5011
+ # {
5012
+ # tag_key: "TagKey", # required
5013
+ # status: "Active", # required, accepts Active, Inactive
5014
+ # },
5015
+ # ],
5016
+ # })
5017
+ #
5018
+ # @example Response structure
5019
+ #
5020
+ # resp.errors #=> Array
5021
+ # resp.errors[0].tag_key #=> String
5022
+ # resp.errors[0].code #=> String
5023
+ # resp.errors[0].message #=> String
5024
+ #
5025
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostAllocationTagsStatus AWS API Documentation
5026
+ #
5027
+ # @overload update_cost_allocation_tags_status(params = {})
5028
+ # @param [Hash] params ({})
5029
+ def update_cost_allocation_tags_status(params = {}, options = {})
5030
+ req = build_request(:update_cost_allocation_tags_status, params)
5031
+ req.send_request(options)
5032
+ end
5033
+
4061
5034
  # Updates an existing Cost Category. Changes made to the Cost Category
4062
5035
  # rules will be used to categorize the current month’s expenses and
4063
5036
  # future expenses. This won’t change categorization for the previous
@@ -4066,6 +5039,12 @@ module Aws::CostExplorer
4066
5039
  # @option params [required, String] :cost_category_arn
4067
5040
  # The unique identifier for your Cost Category.
4068
5041
  #
5042
+ # @option params [String] :effective_start
5043
+ # The Cost Category's effective start date. It can only be a billing
5044
+ # start date (first day of the month). If the date isn't provided,
5045
+ # it's the first day of the current month. Dates can't be before the
5046
+ # previous twelve months, or in the future.
5047
+ #
4069
5048
  # @option params [required, String] :rule_version
4070
5049
  # The rule schema version in this particular Cost Category.
4071
5050
  #
@@ -4093,6 +5072,7 @@ module Aws::CostExplorer
4093
5072
  #
4094
5073
  # resp = client.update_cost_category_definition({
4095
5074
  # cost_category_arn: "Arn", # required
5075
+ # effective_start: "ZonedDateTime",
4096
5076
  # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
4097
5077
  # rules: [ # required
4098
5078
  # {
@@ -4112,19 +5092,19 @@ module Aws::CostExplorer
4112
5092
  # # recursive Expression
4113
5093
  # },
4114
5094
  # dimensions: {
4115
- # 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
5095
+ # 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, INVOICING_ENTITY, ANOMALY_TOTAL_IMPACT_ABSOLUTE, ANOMALY_TOTAL_IMPACT_PERCENTAGE
4116
5096
  # values: ["Value"],
4117
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5097
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4118
5098
  # },
4119
5099
  # tags: {
4120
5100
  # key: "TagKey",
4121
5101
  # values: ["Value"],
4122
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5102
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4123
5103
  # },
4124
5104
  # cost_categories: {
4125
5105
  # key: "CostCategoryName",
4126
5106
  # values: ["Value"],
4127
- # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5107
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE, GREATER_THAN_OR_EQUAL
4128
5108
  # },
4129
5109
  # },
4130
5110
  # inherited_value: {
@@ -4177,7 +5157,7 @@ module Aws::CostExplorer
4177
5157
  params: params,
4178
5158
  config: config)
4179
5159
  context[:gem_name] = 'aws-sdk-costexplorer'
4180
- context[:gem_version] = '1.69.0'
5160
+ context[:gem_version] = '1.92.0'
4181
5161
  Seahorse::Client::Request.new(handlers, context)
4182
5162
  end
4183
5163