aws-sdk-costexplorer 1.47.0 → 1.48.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: a3d765e46655e71bb61a2626ac36bf7764ec141368cc5900ddc303c006a787c0
4
- data.tar.gz: 9189ea599344647f963a9e60d12870ea4580d7f73692cc993d39f7aa16c6affa
3
+ metadata.gz: b418ccae5272392dc0a024e3783222b31f95e346ded321803b27f5aaa66d75ff
4
+ data.tar.gz: bde87a46360c3833cc962700fb92fd60b5325ca4dc40450b36367acac3fba870
5
5
  SHA512:
6
- metadata.gz: cf99755242101b726e2ef78f04fd705e90ca1dfea857dfcf1cd48d9de36b28364860d0b7ff889ae8857409f02970f0d5f1bf0e7d82d3c3b04b653760fae52f5e
7
- data.tar.gz: 4ae6ff2989b4e0a28c1914f702a5eb303065eb265e70f6373809485f9a883e05f08fa6fdb691983820a02a08ef7b1254fd9fbd3bad88d598188e705ce8ce08da
6
+ metadata.gz: d8401c7dfc5b1b02e1f931c0f4843129fbbde6da5feb8dbeacb755b94138cf98a4b961be90bbd580a6e873a053d61c5b6d47a2edb6345b89149ed96187e7f9f8
7
+ data.tar.gz: 490c83170d9c2fca39dbb0986615b325252182e2a441f66b1172c9f690c324dbae932ca2e52afe28277ca1b3ca8a15b9ff43b9f53db18380fe859460ba53c504
@@ -28,7 +28,7 @@ require_relative 'aws-sdk-costexplorer/customizations'
28
28
  # structure.
29
29
  #
30
30
  # cost_explorer = Aws::CostExplorer::Client.new
31
- # resp = cost_explorer.create_cost_category_definition(params)
31
+ # resp = cost_explorer.create_anomaly_monitor(params)
32
32
  #
33
33
  # See {Client} for more information.
34
34
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-costexplorer/customizations'
48
48
  # @!group service
49
49
  module Aws::CostExplorer
50
50
 
51
- GEM_VERSION = '1.47.0'
51
+ GEM_VERSION = '1.48.0'
52
52
 
53
53
  end
@@ -337,6 +337,118 @@ module Aws::CostExplorer
337
337
 
338
338
  # @!group API Operations
339
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
+
340
452
  # Creates a new Cost Category with the requested name and rules.
341
453
  #
342
454
  # @option params [required, String] :name
@@ -413,6 +525,52 @@ module Aws::CostExplorer
413
525
  req.send_request(options)
414
526
  end
415
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
+
416
574
  # Deletes a Cost Category. Expenses from this month going forward will
417
575
  # no longer be categorized with this Cost Category.
418
576
  #
@@ -507,6 +665,211 @@ module Aws::CostExplorer
507
665
  req.send_request(options)
508
666
  end
509
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
+
510
873
  # Retrieves cost and usage metrics for your account. You can specify
511
874
  # which cost and usage-related metric, such as `BlendedCosts` or
512
875
  # `UsageQuantity`, that you want the request to return. You can also
@@ -543,7 +906,7 @@ module Aws::CostExplorer
543
906
  #
544
907
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
545
908
  #
546
- # @option params [Array<String>] :metrics
909
+ # @option params [required, Array<String>] :metrics
547
910
  # Which metrics are returned in the query. For more information about
548
911
  # blended and unblended rates, see [Why does the "blended" annotation
549
912
  # appear on some line items in my bill?][1].
@@ -570,7 +933,7 @@ module Aws::CostExplorer
570
933
  #
571
934
  # @option params [Array<Types::GroupDefinition>] :group_by
572
935
  # You can group AWS costs using up to two different groups, either
573
- # dimensions, tag keys, or both.
936
+ # dimensions, tag keys, cost categories, or any two group by types.
574
937
  #
575
938
  # When you group by tag key, you get all tag values, including empty
576
939
  # strings.
@@ -627,7 +990,7 @@ module Aws::CostExplorer
627
990
  # values: ["Value"],
628
991
  # },
629
992
  # },
630
- # metrics: ["MetricName"],
993
+ # metrics: ["MetricName"], # required
631
994
  # group_by: [
632
995
  # {
633
996
  # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
@@ -702,7 +1065,7 @@ module Aws::CostExplorer
702
1065
  # `Granularity` isn't set, the response object doesn't include the
703
1066
  # `Granularity`, `MONTHLY`, `DAILY`, or `HOURLY`.
704
1067
  #
705
- # @option params [Types::Expression] :filter
1068
+ # @option params [required, Types::Expression] :filter
706
1069
  # Filters Amazon Web Services costs by different dimensions. For
707
1070
  # example, you can specify `SERVICE` and `LINKED_ACCOUNT` and get the
708
1071
  # costs that are associated with that account's usage of that service.
@@ -710,7 +1073,8 @@ module Aws::CostExplorer
710
1073
  # dimension filters. For more information, see [Expression][1].
711
1074
  #
712
1075
  # The `GetCostAndUsageWithResources` operation requires that you either
713
- # 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.
714
1078
  #
715
1079
  #
716
1080
  #
@@ -764,7 +1128,7 @@ module Aws::CostExplorer
764
1128
  # end: "YearMonthDay", # required
765
1129
  # },
766
1130
  # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
767
- # filter: {
1131
+ # filter: { # required
768
1132
  # or: [
769
1133
  # {
770
1134
  # # recursive Expression
@@ -837,7 +1201,9 @@ module Aws::CostExplorer
837
1201
  # your past costs.
838
1202
  #
839
1203
  # @option params [required, Types::DateInterval] :time_period
840
- # 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.
841
1207
  #
842
1208
  # @option params [required, String] :metric
843
1209
  # Which metric Cost Explorer uses to create your forecast. For more
@@ -1013,6 +1379,8 @@ module Aws::CostExplorer
1013
1379
  # is Amazon EC2: CloudWatch – Alarms. The response for this operation
1014
1380
  # includes a unit attribute.
1015
1381
  #
1382
+ # * REGION - The AWS Region.
1383
+ #
1016
1384
  # * RECORD\_TYPE - The different types of charges such as RI fees, usage
1017
1385
  # costs, tax refunds, and credits.
1018
1386
  #
@@ -2500,7 +2868,8 @@ module Aws::CostExplorer
2500
2868
  # exclusive. For example, if `start` is `2017-01-01` and `end` is
2501
2869
  # `2017-05-01`, then the cost and usage data is retrieved from
2502
2870
  # `2017-01-01` up to and including `2017-04-30` but not including
2503
- # `2017-05-01`.
2871
+ # `2017-05-01`. The start date must be equal to or later than the
2872
+ # current date to avoid a validation error.
2504
2873
  #
2505
2874
  # @option params [required, String] :metric
2506
2875
  # Which metric Cost Explorer uses to create your forecast.
@@ -2650,6 +3019,127 @@ module Aws::CostExplorer
2650
3019
  req.send_request(options)
2651
3020
  end
2652
3021
 
3022
+ # Modifies the feedback property of a given cost anomaly.
3023
+ #
3024
+ # @option params [required, String] :anomaly_id
3025
+ # A cost anomaly ID.
3026
+ #
3027
+ # @option params [required, String] :feedback
3028
+ # Describes whether the cost anomaly was a planned activity or you
3029
+ # considered it an anomaly.
3030
+ #
3031
+ # @return [Types::ProvideAnomalyFeedbackResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3032
+ #
3033
+ # * {Types::ProvideAnomalyFeedbackResponse#anomaly_id #anomaly_id} => String
3034
+ #
3035
+ # @example Request syntax with placeholder values
3036
+ #
3037
+ # resp = client.provide_anomaly_feedback({
3038
+ # anomaly_id: "GenericString", # required
3039
+ # feedback: "YES", # required, accepts YES, NO, PLANNED_ACTIVITY
3040
+ # })
3041
+ #
3042
+ # @example Response structure
3043
+ #
3044
+ # resp.anomaly_id #=> String
3045
+ #
3046
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback AWS API Documentation
3047
+ #
3048
+ # @overload provide_anomaly_feedback(params = {})
3049
+ # @param [Hash] params ({})
3050
+ def provide_anomaly_feedback(params = {}, options = {})
3051
+ req = build_request(:provide_anomaly_feedback, params)
3052
+ req.send_request(options)
3053
+ end
3054
+
3055
+ # Updates an existing cost anomaly monitor. The changes made are applied
3056
+ # going forward, and does not change anomalies detected in the past.
3057
+ #
3058
+ # @option params [required, String] :monitor_arn
3059
+ # Cost anomaly monitor Amazon Resource Names (ARNs).
3060
+ #
3061
+ # @option params [String] :monitor_name
3062
+ # The new name for the cost anomaly monitor.
3063
+ #
3064
+ # @return [Types::UpdateAnomalyMonitorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3065
+ #
3066
+ # * {Types::UpdateAnomalyMonitorResponse#monitor_arn #monitor_arn} => String
3067
+ #
3068
+ # @example Request syntax with placeholder values
3069
+ #
3070
+ # resp = client.update_anomaly_monitor({
3071
+ # monitor_arn: "GenericString", # required
3072
+ # monitor_name: "GenericString",
3073
+ # })
3074
+ #
3075
+ # @example Response structure
3076
+ #
3077
+ # resp.monitor_arn #=> String
3078
+ #
3079
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor AWS API Documentation
3080
+ #
3081
+ # @overload update_anomaly_monitor(params = {})
3082
+ # @param [Hash] params ({})
3083
+ def update_anomaly_monitor(params = {}, options = {})
3084
+ req = build_request(:update_anomaly_monitor, params)
3085
+ req.send_request(options)
3086
+ end
3087
+
3088
+ # Updates an existing cost anomaly monitor subscription.
3089
+ #
3090
+ # @option params [required, String] :subscription_arn
3091
+ # A cost anomaly subscription Amazon Resource Name (ARN).
3092
+ #
3093
+ # @option params [Float] :threshold
3094
+ # The update to the threshold value for receiving notifications.
3095
+ #
3096
+ # @option params [String] :frequency
3097
+ # The update to the frequency value at which subscribers will receive
3098
+ # notifications.
3099
+ #
3100
+ # @option params [Array<String>] :monitor_arn_list
3101
+ # A list of cost anomaly subscription ARNs.
3102
+ #
3103
+ # @option params [Array<Types::Subscriber>] :subscribers
3104
+ # The update to the subscriber list.
3105
+ #
3106
+ # @option params [String] :subscription_name
3107
+ # The subscription's new name.
3108
+ #
3109
+ # @return [Types::UpdateAnomalySubscriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3110
+ #
3111
+ # * {Types::UpdateAnomalySubscriptionResponse#subscription_arn #subscription_arn} => String
3112
+ #
3113
+ # @example Request syntax with placeholder values
3114
+ #
3115
+ # resp = client.update_anomaly_subscription({
3116
+ # subscription_arn: "GenericString", # required
3117
+ # threshold: 1.0,
3118
+ # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
3119
+ # monitor_arn_list: ["Value"],
3120
+ # subscribers: [
3121
+ # {
3122
+ # address: "SubscriberAddress",
3123
+ # type: "EMAIL", # accepts EMAIL, SNS
3124
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
3125
+ # },
3126
+ # ],
3127
+ # subscription_name: "GenericString",
3128
+ # })
3129
+ #
3130
+ # @example Response structure
3131
+ #
3132
+ # resp.subscription_arn #=> String
3133
+ #
3134
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription AWS API Documentation
3135
+ #
3136
+ # @overload update_anomaly_subscription(params = {})
3137
+ # @param [Hash] params ({})
3138
+ def update_anomaly_subscription(params = {}, options = {})
3139
+ req = build_request(:update_anomaly_subscription, params)
3140
+ req.send_request(options)
3141
+ end
3142
+
2653
3143
  # Updates an existing Cost Category. Changes made to the Cost Category
2654
3144
  # rules will be used to categorize the current month’s expenses and
2655
3145
  # future expenses. This won’t change categorization for the previous
@@ -2742,7 +3232,7 @@ module Aws::CostExplorer
2742
3232
  params: params,
2743
3233
  config: config)
2744
3234
  context[:gem_name] = 'aws-sdk-costexplorer'
2745
- context[:gem_version] = '1.47.0'
3235
+ context[:gem_version] = '1.48.0'
2746
3236
  Seahorse::Client::Request.new(handlers, context)
2747
3237
  end
2748
3238