aws-sdk-costexplorer 1.69.0 → 1.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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