aws-sdk-costexplorer 1.45.0 → 1.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6aba9e216bd7048869658584a32b8a5a8a94d420db7fa0302e6b20abd0677f3a
4
- data.tar.gz: fccc1d2f324d62faa70100d53a600872aecf1f03e6360966ee62448308245e93
3
+ metadata.gz: '0922786b526a6cedca60638eae0ebfdc2d2c887254752dac9fcf8c565283eb1d'
4
+ data.tar.gz: 17ec5125ea455debb770910eb304b218b749ad581bea44595953eda5d9ba2aae
5
5
  SHA512:
6
- metadata.gz: 35d1503b8aa33cf7e072d25c772f7899cbad7cd71dc33ebf052e99ea68e0b45ba1e7348dbc8bf51977d7ac7e7d724d7e5643bdd002a12bd7d76bd4895c817e45
7
- data.tar.gz: 1765bc3baa8db543374d738e8e2548fb12fde75fe6a627620710c8e9701b36b0281cb388cc0ac41f6ca6ed1beb3f56a45eb34dfaadad7c5e63bd04452e188f35
6
+ metadata.gz: 6c33eabe4ba56eb0f6bcaadef9d88576c81142aabe6114192b1e391896be7cb31d536a4d1507128f64547e7f1bbbd56d05e68179b6a007a214c0fa1f5b181e22
7
+ data.tar.gz: 8df69c2ec38f3f0ed9a82edd7d0471f356a6a20afe1f03636ef54fbfdbe4aba4b2ba04d8e5b889f9d37feec230339778eac3a13070a7cdb6f475b2d0b8fd958a
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -27,7 +28,7 @@ require_relative 'aws-sdk-costexplorer/customizations'
27
28
  # structure.
28
29
  #
29
30
  # cost_explorer = Aws::CostExplorer::Client.new
30
- # resp = cost_explorer.create_cost_category_definition(params)
31
+ # resp = cost_explorer.create_anomaly_monitor(params)
31
32
  #
32
33
  # See {Client} for more information.
33
34
  #
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-costexplorer/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::CostExplorer
49
50
 
50
- GEM_VERSION = '1.45.0'
51
+ GEM_VERSION = '1.50.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::CostExplorer
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::CostExplorer
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -322,6 +337,118 @@ module Aws::CostExplorer
322
337
 
323
338
  # @!group API Operations
324
339
 
340
+ # Creates a new cost anomaly detection monitor with the requested type
341
+ # and monitor specification.
342
+ #
343
+ # @option params [required, Types::AnomalyMonitor] :anomaly_monitor
344
+ # The cost anomaly detection monitor object that you want to create.
345
+ #
346
+ # @return [Types::CreateAnomalyMonitorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
347
+ #
348
+ # * {Types::CreateAnomalyMonitorResponse#monitor_arn #monitor_arn} => String
349
+ #
350
+ # @example Request syntax with placeholder values
351
+ #
352
+ # resp = client.create_anomaly_monitor({
353
+ # anomaly_monitor: { # required
354
+ # monitor_arn: "GenericString",
355
+ # monitor_name: "GenericString", # required
356
+ # creation_date: "YearMonthDay",
357
+ # last_updated_date: "YearMonthDay",
358
+ # last_evaluated_date: "YearMonthDay",
359
+ # monitor_type: "DIMENSIONAL", # required, accepts DIMENSIONAL, CUSTOM
360
+ # monitor_dimension: "SERVICE", # accepts SERVICE
361
+ # monitor_specification: {
362
+ # or: [
363
+ # {
364
+ # # recursive Expression
365
+ # },
366
+ # ],
367
+ # and: [
368
+ # {
369
+ # # recursive Expression
370
+ # },
371
+ # ],
372
+ # not: {
373
+ # # recursive Expression
374
+ # },
375
+ # dimensions: {
376
+ # 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
377
+ # values: ["Value"],
378
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
379
+ # },
380
+ # tags: {
381
+ # key: "TagKey",
382
+ # values: ["Value"],
383
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
384
+ # },
385
+ # cost_categories: {
386
+ # key: "CostCategoryName",
387
+ # values: ["Value"],
388
+ # },
389
+ # },
390
+ # dimensional_value_count: 1,
391
+ # },
392
+ # })
393
+ #
394
+ # @example Response structure
395
+ #
396
+ # resp.monitor_arn #=> String
397
+ #
398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor AWS API Documentation
399
+ #
400
+ # @overload create_anomaly_monitor(params = {})
401
+ # @param [Hash] params ({})
402
+ def create_anomaly_monitor(params = {}, options = {})
403
+ req = build_request(:create_anomaly_monitor, params)
404
+ req.send_request(options)
405
+ end
406
+
407
+ # Adds a subscription to a cost anomaly detection monitor. You can use
408
+ # each subscription to define subscribers with email or SNS
409
+ # notifications. Email subscribers can set a dollar threshold and a time
410
+ # frequency for receiving notifications.
411
+ #
412
+ # @option params [required, Types::AnomalySubscription] :anomaly_subscription
413
+ # The cost anomaly subscription object that you want to create.
414
+ #
415
+ # @return [Types::CreateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
416
+ #
417
+ # * {Types::CreateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
418
+ #
419
+ # @example Request syntax with placeholder values
420
+ #
421
+ # resp = client.create_anomaly_subscription({
422
+ # anomaly_subscription: { # required
423
+ # subscription_arn: "GenericString",
424
+ # account_id: "GenericString",
425
+ # monitor_arn_list: ["Value"], # required
426
+ # subscribers: [ # required
427
+ # {
428
+ # address: "SubscriberAddress",
429
+ # type: "EMAIL", # accepts EMAIL, SNS
430
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
431
+ # },
432
+ # ],
433
+ # threshold: 1.0, # required
434
+ # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
435
+ # subscription_name: "GenericString", # required
436
+ # },
437
+ # })
438
+ #
439
+ # @example Response structure
440
+ #
441
+ # resp.subscription_arn #=> String
442
+ #
443
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription AWS API Documentation
444
+ #
445
+ # @overload create_anomaly_subscription(params = {})
446
+ # @param [Hash] params ({})
447
+ def create_anomaly_subscription(params = {}, options = {})
448
+ req = build_request(:create_anomaly_subscription, params)
449
+ req.send_request(options)
450
+ end
451
+
325
452
  # Creates a new Cost Category with the requested name and rules.
326
453
  #
327
454
  # @option params [required, String] :name
@@ -398,6 +525,52 @@ module Aws::CostExplorer
398
525
  req.send_request(options)
399
526
  end
400
527
 
528
+ # Deletes a cost anomaly monitor.
529
+ #
530
+ # @option params [required, String] :monitor_arn
531
+ # The unique identifier of the cost anomaly monitor that you want to
532
+ # delete.
533
+ #
534
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
535
+ #
536
+ # @example Request syntax with placeholder values
537
+ #
538
+ # resp = client.delete_anomaly_monitor({
539
+ # monitor_arn: "GenericString", # required
540
+ # })
541
+ #
542
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor AWS API Documentation
543
+ #
544
+ # @overload delete_anomaly_monitor(params = {})
545
+ # @param [Hash] params ({})
546
+ def delete_anomaly_monitor(params = {}, options = {})
547
+ req = build_request(:delete_anomaly_monitor, params)
548
+ req.send_request(options)
549
+ end
550
+
551
+ # Deletes a cost anomaly subscription.
552
+ #
553
+ # @option params [required, String] :subscription_arn
554
+ # The unique identifier of the cost anomaly subscription that you want
555
+ # to delete.
556
+ #
557
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
558
+ #
559
+ # @example Request syntax with placeholder values
560
+ #
561
+ # resp = client.delete_anomaly_subscription({
562
+ # subscription_arn: "GenericString", # required
563
+ # })
564
+ #
565
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription AWS API Documentation
566
+ #
567
+ # @overload delete_anomaly_subscription(params = {})
568
+ # @param [Hash] params ({})
569
+ def delete_anomaly_subscription(params = {}, options = {})
570
+ req = build_request(:delete_anomaly_subscription, params)
571
+ req.send_request(options)
572
+ end
573
+
401
574
  # Deletes a Cost Category. Expenses from this month going forward will
402
575
  # no longer be categorized with this Cost Category.
403
576
  #
@@ -492,12 +665,217 @@ module Aws::CostExplorer
492
665
  req.send_request(options)
493
666
  end
494
667
 
668
+ # Retrieves all of the cost anomalies detected on your account, during
669
+ # the time period specified by the `DateInterval` object.
670
+ #
671
+ # @option params [String] :monitor_arn
672
+ # Retrieves all of the cost anomalies detected for a specific cost
673
+ # anomaly monitor Amazon Resource Name (ARN).
674
+ #
675
+ # @option params [required, Types::AnomalyDateInterval] :date_interval
676
+ # Assigns the start and end dates for retrieving cost anomalies. The
677
+ # returned anomaly object will have an `AnomalyEndDate` in the specified
678
+ # time range.
679
+ #
680
+ # @option params [String] :feedback
681
+ # Filters anomaly results by the feedback field on the anomaly object.
682
+ #
683
+ # @option params [Types::TotalImpactFilter] :total_impact
684
+ # Filters anomaly results by the total impact field on the anomaly
685
+ # object. For example, you can filter anomalies `GREATER_THAN 200.00` to
686
+ # retrieve anomalies, with an estimated dollar impact greater than 200.
687
+ #
688
+ # @option params [String] :next_page_token
689
+ # The token to retrieve the next set of results. AWS provides the token
690
+ # when the response from a previous call has more results than the
691
+ # maximum page size.
692
+ #
693
+ # @option params [Integer] :max_results
694
+ # The number of entries a paginated response contains.
695
+ #
696
+ # @return [Types::GetAnomaliesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
697
+ #
698
+ # * {Types::GetAnomaliesResponse#anomalies #anomalies} => Array<Types::Anomaly>
699
+ # * {Types::GetAnomaliesResponse#next_page_token #next_page_token} => String
700
+ #
701
+ # @example Request syntax with placeholder values
702
+ #
703
+ # resp = client.get_anomalies({
704
+ # monitor_arn: "GenericString",
705
+ # date_interval: { # required
706
+ # start_date: "YearMonthDay", # required
707
+ # end_date: "YearMonthDay",
708
+ # },
709
+ # feedback: "YES", # accepts YES, NO, PLANNED_ACTIVITY
710
+ # total_impact: {
711
+ # numeric_operator: "EQUAL", # required, accepts EQUAL, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, BETWEEN
712
+ # start_value: 1.0, # required
713
+ # end_value: 1.0,
714
+ # },
715
+ # next_page_token: "NextPageToken",
716
+ # max_results: 1,
717
+ # })
718
+ #
719
+ # @example Response structure
720
+ #
721
+ # resp.anomalies #=> Array
722
+ # resp.anomalies[0].anomaly_id #=> String
723
+ # resp.anomalies[0].anomaly_start_date #=> String
724
+ # resp.anomalies[0].anomaly_end_date #=> String
725
+ # resp.anomalies[0].dimension_value #=> String
726
+ # resp.anomalies[0].root_causes #=> Array
727
+ # resp.anomalies[0].root_causes[0].service #=> String
728
+ # resp.anomalies[0].root_causes[0].region #=> String
729
+ # resp.anomalies[0].root_causes[0].linked_account #=> String
730
+ # resp.anomalies[0].root_causes[0].usage_type #=> String
731
+ # resp.anomalies[0].anomaly_score.max_score #=> Float
732
+ # resp.anomalies[0].anomaly_score.current_score #=> Float
733
+ # resp.anomalies[0].impact.max_impact #=> Float
734
+ # resp.anomalies[0].impact.total_impact #=> Float
735
+ # resp.anomalies[0].monitor_arn #=> String
736
+ # resp.anomalies[0].feedback #=> String, one of "YES", "NO", "PLANNED_ACTIVITY"
737
+ # resp.next_page_token #=> String
738
+ #
739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies AWS API Documentation
740
+ #
741
+ # @overload get_anomalies(params = {})
742
+ # @param [Hash] params ({})
743
+ def get_anomalies(params = {}, options = {})
744
+ req = build_request(:get_anomalies, params)
745
+ req.send_request(options)
746
+ end
747
+
748
+ # Retrieves the cost anomaly monitor definitions for your account. You
749
+ # can filter using a list of cost anomaly monitor Amazon Resource Names
750
+ # (ARNs).
751
+ #
752
+ # @option params [Array<String>] :monitor_arn_list
753
+ # A list of cost anomaly monitor ARNs.
754
+ #
755
+ # @option params [String] :next_page_token
756
+ # The token to retrieve the next set of results. AWS provides the token
757
+ # when the response from a previous call has more results than the
758
+ # maximum page size.
759
+ #
760
+ # @option params [Integer] :max_results
761
+ # The number of entries a paginated response contains.
762
+ #
763
+ # @return [Types::GetAnomalyMonitorsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
764
+ #
765
+ # * {Types::GetAnomalyMonitorsResponse#anomaly_monitors #anomaly_monitors} => Array&lt;Types::AnomalyMonitor&gt;
766
+ # * {Types::GetAnomalyMonitorsResponse#next_page_token #next_page_token} => String
767
+ #
768
+ # @example Request syntax with placeholder values
769
+ #
770
+ # resp = client.get_anomaly_monitors({
771
+ # monitor_arn_list: ["Value"],
772
+ # next_page_token: "NextPageToken",
773
+ # max_results: 1,
774
+ # })
775
+ #
776
+ # @example Response structure
777
+ #
778
+ # resp.anomaly_monitors #=> Array
779
+ # resp.anomaly_monitors[0].monitor_arn #=> String
780
+ # resp.anomaly_monitors[0].monitor_name #=> String
781
+ # resp.anomaly_monitors[0].creation_date #=> String
782
+ # resp.anomaly_monitors[0].last_updated_date #=> String
783
+ # resp.anomaly_monitors[0].last_evaluated_date #=> String
784
+ # resp.anomaly_monitors[0].monitor_type #=> String, one of "DIMENSIONAL", "CUSTOM"
785
+ # resp.anomaly_monitors[0].monitor_dimension #=> String, one of "SERVICE"
786
+ # resp.anomaly_monitors[0].monitor_specification.or #=> Array
787
+ # resp.anomaly_monitors[0].monitor_specification.or[0] #=> Types::Expression
788
+ # resp.anomaly_monitors[0].monitor_specification.and #=> Array
789
+ # resp.anomaly_monitors[0].monitor_specification.and[0] #=> Types::Expression
790
+ # resp.anomaly_monitors[0].monitor_specification.not #=> Types::Expression
791
+ # 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"
792
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.values #=> Array
793
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.values[0] #=> String
794
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.match_options #=> Array
795
+ # resp.anomaly_monitors[0].monitor_specification.dimensions.match_options[0] #=> String, one of "EQUALS", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
796
+ # resp.anomaly_monitors[0].monitor_specification.tags.key #=> String
797
+ # resp.anomaly_monitors[0].monitor_specification.tags.values #=> Array
798
+ # resp.anomaly_monitors[0].monitor_specification.tags.values[0] #=> String
799
+ # resp.anomaly_monitors[0].monitor_specification.tags.match_options #=> Array
800
+ # resp.anomaly_monitors[0].monitor_specification.tags.match_options[0] #=> String, one of "EQUALS", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CASE_SENSITIVE", "CASE_INSENSITIVE"
801
+ # resp.anomaly_monitors[0].monitor_specification.cost_categories.key #=> String
802
+ # resp.anomaly_monitors[0].monitor_specification.cost_categories.values #=> Array
803
+ # resp.anomaly_monitors[0].monitor_specification.cost_categories.values[0] #=> String
804
+ # resp.anomaly_monitors[0].dimensional_value_count #=> Integer
805
+ # resp.next_page_token #=> String
806
+ #
807
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors AWS API Documentation
808
+ #
809
+ # @overload get_anomaly_monitors(params = {})
810
+ # @param [Hash] params ({})
811
+ def get_anomaly_monitors(params = {}, options = {})
812
+ req = build_request(:get_anomaly_monitors, params)
813
+ req.send_request(options)
814
+ end
815
+
816
+ # Retrieves the cost anomaly subscription objects for your account. You
817
+ # can filter using a list of cost anomaly monitor Amazon Resource Names
818
+ # (ARNs).
819
+ #
820
+ # @option params [Array<String>] :subscription_arn_list
821
+ # A list of cost anomaly subscription ARNs.
822
+ #
823
+ # @option params [String] :monitor_arn
824
+ # Cost anomaly monitor ARNs.
825
+ #
826
+ # @option params [String] :next_page_token
827
+ # The token to retrieve the next set of results. AWS provides the token
828
+ # when the response from a previous call has more results than the
829
+ # maximum page size.
830
+ #
831
+ # @option params [Integer] :max_results
832
+ # The number of entries a paginated response contains.
833
+ #
834
+ # @return [Types::GetAnomalySubscriptionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
835
+ #
836
+ # * {Types::GetAnomalySubscriptionsResponse#anomaly_subscriptions #anomaly_subscriptions} => Array&lt;Types::AnomalySubscription&gt;
837
+ # * {Types::GetAnomalySubscriptionsResponse#next_page_token #next_page_token} => String
838
+ #
839
+ # @example Request syntax with placeholder values
840
+ #
841
+ # resp = client.get_anomaly_subscriptions({
842
+ # subscription_arn_list: ["Value"],
843
+ # monitor_arn: "GenericString",
844
+ # next_page_token: "NextPageToken",
845
+ # max_results: 1,
846
+ # })
847
+ #
848
+ # @example Response structure
849
+ #
850
+ # resp.anomaly_subscriptions #=> Array
851
+ # resp.anomaly_subscriptions[0].subscription_arn #=> String
852
+ # resp.anomaly_subscriptions[0].account_id #=> String
853
+ # resp.anomaly_subscriptions[0].monitor_arn_list #=> Array
854
+ # resp.anomaly_subscriptions[0].monitor_arn_list[0] #=> String
855
+ # resp.anomaly_subscriptions[0].subscribers #=> Array
856
+ # resp.anomaly_subscriptions[0].subscribers[0].address #=> String
857
+ # resp.anomaly_subscriptions[0].subscribers[0].type #=> String, one of "EMAIL", "SNS"
858
+ # resp.anomaly_subscriptions[0].subscribers[0].status #=> String, one of "CONFIRMED", "DECLINED"
859
+ # resp.anomaly_subscriptions[0].threshold #=> Float
860
+ # resp.anomaly_subscriptions[0].frequency #=> String, one of "DAILY", "IMMEDIATE", "WEEKLY"
861
+ # resp.anomaly_subscriptions[0].subscription_name #=> String
862
+ # resp.next_page_token #=> String
863
+ #
864
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions AWS API Documentation
865
+ #
866
+ # @overload get_anomaly_subscriptions(params = {})
867
+ # @param [Hash] params ({})
868
+ def get_anomaly_subscriptions(params = {}, options = {})
869
+ req = build_request(:get_anomaly_subscriptions, params)
870
+ req.send_request(options)
871
+ end
872
+
495
873
  # Retrieves cost and usage metrics for your account. You can specify
496
874
  # which cost and usage-related metric, such as `BlendedCosts` or
497
875
  # `UsageQuantity`, that you want the request to return. You can also
498
876
  # filter and group your data by various dimensions, such as `SERVICE` or
499
877
  # `AZ`, in a specific time range. For a complete list of valid
500
- # dimensions, see the [GetDimensionValues][1] operation. Master accounts
878
+ # dimensions, see the [GetDimensionValues][1] operation. Master account
501
879
  # in an organization in AWS Organizations have access to all member
502
880
  # accounts.
503
881
  #
@@ -528,7 +906,7 @@ module Aws::CostExplorer
528
906
  #
529
907
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
530
908
  #
531
- # @option params [Array<String>] :metrics
909
+ # @option params [required, Array<String>] :metrics
532
910
  # Which metrics are returned in the query. For more information about
533
911
  # blended and unblended rates, see [Why does the "blended" annotation
534
912
  # appear on some line items in my bill?][1].
@@ -555,7 +933,7 @@ module Aws::CostExplorer
555
933
  #
556
934
  # @option params [Array<Types::GroupDefinition>] :group_by
557
935
  # You can group AWS costs using up to two different groups, either
558
- # dimensions, tag keys, or both.
936
+ # dimensions, tag keys, cost categories, or any two group by types.
559
937
  #
560
938
  # When you group by tag key, you get all tag values, including empty
561
939
  # strings.
@@ -612,7 +990,7 @@ module Aws::CostExplorer
612
990
  # values: ["Value"],
613
991
  # },
614
992
  # },
615
- # metrics: ["MetricName"],
993
+ # metrics: ["MetricName"], # required
616
994
  # group_by: [
617
995
  # {
618
996
  # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
@@ -657,7 +1035,7 @@ module Aws::CostExplorer
657
1035
  # return. You can also filter and group your data by various dimensions,
658
1036
  # such as `SERVICE` or `AZ`, in a specific time range. For a complete
659
1037
  # list of valid dimensions, see the [GetDimensionValues][1] operation.
660
- # Master accounts in an organization in AWS Organizations have access to
1038
+ # Master account in an organization in AWS Organizations have access to
661
1039
  # all member accounts. This API is currently available for the Amazon
662
1040
  # Elastic Compute Cloud – Compute service only.
663
1041
  #
@@ -687,7 +1065,7 @@ module Aws::CostExplorer
687
1065
  # `Granularity` isn't set, the response object doesn't include the
688
1066
  # `Granularity`, `MONTHLY`, `DAILY`, or `HOURLY`.
689
1067
  #
690
- # @option params [Types::Expression] :filter
1068
+ # @option params [required, Types::Expression] :filter
691
1069
  # Filters Amazon Web Services costs by different dimensions. For
692
1070
  # example, you can specify `SERVICE` and `LINKED_ACCOUNT` and get the
693
1071
  # costs that are associated with that account's usage of that service.
@@ -695,7 +1073,8 @@ module Aws::CostExplorer
695
1073
  # dimension filters. For more information, see [Expression][1].
696
1074
  #
697
1075
  # The `GetCostAndUsageWithResources` operation requires that you either
698
- # group by or filter by a `ResourceId`.
1076
+ # group by or filter by a `ResourceId`. It requires the [Expression][1]
1077
+ # `"SERVICE = Amazon Elastic Compute Cloud - Compute"` in the filter.
699
1078
  #
700
1079
  #
701
1080
  #
@@ -749,7 +1128,7 @@ module Aws::CostExplorer
749
1128
  # end: "YearMonthDay", # required
750
1129
  # },
751
1130
  # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
752
- # filter: {
1131
+ # filter: { # required
753
1132
  # or: [
754
1133
  # {
755
1134
  # # recursive Expression
@@ -822,7 +1201,9 @@ module Aws::CostExplorer
822
1201
  # your past costs.
823
1202
  #
824
1203
  # @option params [required, Types::DateInterval] :time_period
825
- # The period of time that you want the forecast to cover.
1204
+ # The period of time that you want the forecast to cover. The start date
1205
+ # must be equal to or no later than the current date to avoid a
1206
+ # validation error.
826
1207
  #
827
1208
  # @option params [required, String] :metric
828
1209
  # Which metric Cost Explorer uses to create your forecast. For more
@@ -998,6 +1379,8 @@ module Aws::CostExplorer
998
1379
  # is Amazon EC2: CloudWatch – Alarms. The response for this operation
999
1380
  # includes a unit attribute.
1000
1381
  #
1382
+ # * REGION - The AWS Region.
1383
+ #
1001
1384
  # * RECORD\_TYPE - The different types of charges such as RI fees, usage
1002
1385
  # costs, tax refunds, and credits.
1003
1386
  #
@@ -1360,9 +1743,9 @@ module Aws::CostExplorer
1360
1743
  #
1361
1744
  # @option params [String] :account_scope
1362
1745
  # The account scope that you want your recommendations for. Amazon Web
1363
- # Services calculates recommendations including the payer account and
1364
- # linked accounts if the value is set to `PAYER`. If the value is
1365
- # `LINKED`, recommendations are calculated for individual linked
1746
+ # Services calculates recommendations including the master account and
1747
+ # member accounts if the value is set to `PAYER`. If the value is
1748
+ # `LINKED`, recommendations are calculated for individual member
1366
1749
  # accounts only.
1367
1750
  #
1368
1751
  # @option params [String] :lookback_period_in_days
@@ -1488,11 +1871,11 @@ module Aws::CostExplorer
1488
1871
  req.send_request(options)
1489
1872
  end
1490
1873
 
1491
- # Retrieves the reservation utilization for your account. Master
1492
- # accounts in an organization have access to member accounts. You can
1493
- # filter data by dimensions in a time period. You can use
1494
- # `GetDimensionValues` to determine the possible dimension values.
1495
- # Currently, you can group only by `SUBSCRIPTION_ID`.
1874
+ # Retrieves the reservation utilization for your account. Master account
1875
+ # in an organization have access to member accounts. You can filter data
1876
+ # by dimensions in a time period. You can use `GetDimensionValues` to
1877
+ # determine the possible dimension values. Currently, you can group only
1878
+ # by `SUBSCRIPTION_ID`.
1496
1879
  #
1497
1880
  # @option params [required, Types::DateInterval] :time_period
1498
1881
  # Sets the start and end dates for retrieving RI utilization. The start
@@ -1687,8 +2070,10 @@ module Aws::CostExplorer
1687
2070
  #
1688
2071
  # * Simple dimension values - You can set the dimension name and values
1689
2072
  # for the filters that you plan to use. For example, you can filter
1690
- # for `REGION==us-east-1 OR REGION==us-west-1`. The `Expression` for
1691
- # that looks like this:
2073
+ # for `REGION==us-east-1 OR REGION==us-west-1`. For
2074
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2075
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2076
+ # looks like:
1692
2077
  #
1693
2078
  # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1694
2079
  # “us-west-1” ] \} \}`
@@ -1827,6 +2212,10 @@ module Aws::CostExplorer
1827
2212
  # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_cpu_utilization_percentage #=> String
1828
2213
  # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_memory_utilization_percentage #=> String
1829
2214
  # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_storage_utilization_percentage #=> String
2215
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_read_ops_per_second #=> String
2216
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_write_ops_per_second #=> String
2217
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_read_bytes_per_second #=> String
2218
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_write_bytes_per_second #=> String
1830
2219
  # resp.rightsizing_recommendations[0].current_instance.reservation_covered_hours_in_lookback_period #=> String
1831
2220
  # resp.rightsizing_recommendations[0].current_instance.savings_plans_covered_hours_in_lookback_period #=> String
1832
2221
  # resp.rightsizing_recommendations[0].current_instance.on_demand_hours_in_lookback_period #=> String
@@ -1851,6 +2240,10 @@ module Aws::CostExplorer
1851
2240
  # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_cpu_utilization_percentage #=> String
1852
2241
  # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_memory_utilization_percentage #=> String
1853
2242
  # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_storage_utilization_percentage #=> String
2243
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_read_ops_per_second #=> String
2244
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_write_ops_per_second #=> String
2245
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_read_bytes_per_second #=> String
2246
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.ebs_resource_utilization.ebs_write_bytes_per_second #=> String
1854
2247
  # resp.rightsizing_recommendations[0].terminate_recommendation_detail.estimated_monthly_savings #=> String
1855
2248
  # resp.rightsizing_recommendations[0].terminate_recommendation_detail.currency_code #=> String
1856
2249
  # resp.next_page_token #=> String
@@ -2028,9 +2421,9 @@ module Aws::CostExplorer
2028
2421
  #
2029
2422
  # @option params [String] :account_scope
2030
2423
  # The account scope that you want your recommendations for. Amazon Web
2031
- # Services calculates recommendations including the payer account and
2032
- # linked accounts if the value is set to `PAYER`. If the value is
2033
- # `LINKED`, recommendations are calculated for individual linked
2424
+ # Services calculates recommendations including the master account and
2425
+ # member accounts if the value is set to `PAYER`. If the value is
2426
+ # `LINKED`, recommendations are calculated for individual member
2034
2427
  # accounts only.
2035
2428
  #
2036
2429
  # @option params [String] :next_page_token
@@ -2157,7 +2550,7 @@ module Aws::CostExplorer
2157
2550
  end
2158
2551
 
2159
2552
  # Retrieves the Savings Plans utilization for your account across date
2160
- # ranges with daily or monthly granularity. Master accounts in an
2553
+ # ranges with daily or monthly granularity. Master account in an
2161
2554
  # organization have access to member accounts. You can use
2162
2555
  # `GetDimensionValues` in `SAVINGS_PLANS` to determine the possible
2163
2556
  # dimension values.
@@ -2485,7 +2878,8 @@ module Aws::CostExplorer
2485
2878
  # exclusive. For example, if `start` is `2017-01-01` and `end` is
2486
2879
  # `2017-05-01`, then the cost and usage data is retrieved from
2487
2880
  # `2017-01-01` up to and including `2017-04-30` but not including
2488
- # `2017-05-01`.
2881
+ # `2017-05-01`. The start date must be equal to or later than the
2882
+ # current date to avoid a validation error.
2489
2883
  #
2490
2884
  # @option params [required, String] :metric
2491
2885
  # Which metric Cost Explorer uses to create your forecast.
@@ -2635,6 +3029,127 @@ module Aws::CostExplorer
2635
3029
  req.send_request(options)
2636
3030
  end
2637
3031
 
3032
+ # Modifies the feedback property of a given cost anomaly.
3033
+ #
3034
+ # @option params [required, String] :anomaly_id
3035
+ # A cost anomaly ID.
3036
+ #
3037
+ # @option params [required, String] :feedback
3038
+ # Describes whether the cost anomaly was a planned activity or you
3039
+ # considered it an anomaly.
3040
+ #
3041
+ # @return [Types::ProvideAnomalyFeedbackResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3042
+ #
3043
+ # * {Types::ProvideAnomalyFeedbackResponse#anomaly_id #anomaly_id} => String
3044
+ #
3045
+ # @example Request syntax with placeholder values
3046
+ #
3047
+ # resp = client.provide_anomaly_feedback({
3048
+ # anomaly_id: "GenericString", # required
3049
+ # feedback: "YES", # required, accepts YES, NO, PLANNED_ACTIVITY
3050
+ # })
3051
+ #
3052
+ # @example Response structure
3053
+ #
3054
+ # resp.anomaly_id #=> String
3055
+ #
3056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback AWS API Documentation
3057
+ #
3058
+ # @overload provide_anomaly_feedback(params = {})
3059
+ # @param [Hash] params ({})
3060
+ def provide_anomaly_feedback(params = {}, options = {})
3061
+ req = build_request(:provide_anomaly_feedback, params)
3062
+ req.send_request(options)
3063
+ end
3064
+
3065
+ # Updates an existing cost anomaly monitor. The changes made are applied
3066
+ # going forward, and does not change anomalies detected in the past.
3067
+ #
3068
+ # @option params [required, String] :monitor_arn
3069
+ # Cost anomaly monitor Amazon Resource Names (ARNs).
3070
+ #
3071
+ # @option params [String] :monitor_name
3072
+ # The new name for the cost anomaly monitor.
3073
+ #
3074
+ # @return [Types::UpdateAnomalyMonitorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3075
+ #
3076
+ # * {Types::UpdateAnomalyMonitorResponse#monitor_arn #monitor_arn} => String
3077
+ #
3078
+ # @example Request syntax with placeholder values
3079
+ #
3080
+ # resp = client.update_anomaly_monitor({
3081
+ # monitor_arn: "GenericString", # required
3082
+ # monitor_name: "GenericString",
3083
+ # })
3084
+ #
3085
+ # @example Response structure
3086
+ #
3087
+ # resp.monitor_arn #=> String
3088
+ #
3089
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor AWS API Documentation
3090
+ #
3091
+ # @overload update_anomaly_monitor(params = {})
3092
+ # @param [Hash] params ({})
3093
+ def update_anomaly_monitor(params = {}, options = {})
3094
+ req = build_request(:update_anomaly_monitor, params)
3095
+ req.send_request(options)
3096
+ end
3097
+
3098
+ # Updates an existing cost anomaly monitor subscription.
3099
+ #
3100
+ # @option params [required, String] :subscription_arn
3101
+ # A cost anomaly subscription Amazon Resource Name (ARN).
3102
+ #
3103
+ # @option params [Float] :threshold
3104
+ # The update to the threshold value for receiving notifications.
3105
+ #
3106
+ # @option params [String] :frequency
3107
+ # The update to the frequency value at which subscribers will receive
3108
+ # notifications.
3109
+ #
3110
+ # @option params [Array<String>] :monitor_arn_list
3111
+ # A list of cost anomaly subscription ARNs.
3112
+ #
3113
+ # @option params [Array<Types::Subscriber>] :subscribers
3114
+ # The update to the subscriber list.
3115
+ #
3116
+ # @option params [String] :subscription_name
3117
+ # The subscription's new name.
3118
+ #
3119
+ # @return [Types::UpdateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3120
+ #
3121
+ # * {Types::UpdateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
3122
+ #
3123
+ # @example Request syntax with placeholder values
3124
+ #
3125
+ # resp = client.update_anomaly_subscription({
3126
+ # subscription_arn: "GenericString", # required
3127
+ # threshold: 1.0,
3128
+ # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
3129
+ # monitor_arn_list: ["Value"],
3130
+ # subscribers: [
3131
+ # {
3132
+ # address: "SubscriberAddress",
3133
+ # type: "EMAIL", # accepts EMAIL, SNS
3134
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
3135
+ # },
3136
+ # ],
3137
+ # subscription_name: "GenericString",
3138
+ # })
3139
+ #
3140
+ # @example Response structure
3141
+ #
3142
+ # resp.subscription_arn #=> String
3143
+ #
3144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription AWS API Documentation
3145
+ #
3146
+ # @overload update_anomaly_subscription(params = {})
3147
+ # @param [Hash] params ({})
3148
+ def update_anomaly_subscription(params = {}, options = {})
3149
+ req = build_request(:update_anomaly_subscription, params)
3150
+ req.send_request(options)
3151
+ end
3152
+
2638
3153
  # Updates an existing Cost Category. Changes made to the Cost Category
2639
3154
  # rules will be used to categorize the current month’s expenses and
2640
3155
  # future expenses. This won’t change categorization for the previous
@@ -2727,7 +3242,7 @@ module Aws::CostExplorer
2727
3242
  params: params,
2728
3243
  config: config)
2729
3244
  context[:gem_name] = 'aws-sdk-costexplorer'
2730
- context[:gem_version] = '1.45.0'
3245
+ context[:gem_version] = '1.50.0'
2731
3246
  Seahorse::Client::Request.new(handlers, context)
2732
3247
  end
2733
3248