aws-sdk-costexplorer 1.125.0 → 1.126.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.
@@ -496,6 +496,39 @@ module Aws::CostExplorer
496
496
  include Aws::Structure
497
497
  end
498
498
 
499
+ # Contains cost or usage metric values for comparing two time periods.
500
+ # Each value includes amounts for the baseline and comparison time
501
+ # periods, their difference, and the unit of measurement.
502
+ #
503
+ # @!attribute [rw] baseline_time_period_amount
504
+ # The numeric value for the baseline time period measurement.
505
+ # @return [String]
506
+ #
507
+ # @!attribute [rw] comparison_time_period_amount
508
+ # The numeric value for the comparison time period measurement.
509
+ # @return [String]
510
+ #
511
+ # @!attribute [rw] difference
512
+ # The calculated difference between `ComparisonTimePeriodAmount` and
513
+ # `BaselineTimePeriodAmount`.
514
+ # @return [String]
515
+ #
516
+ # @!attribute [rw] unit
517
+ # The unit of measurement applicable to all numeric values in this
518
+ # comparison.
519
+ # @return [String]
520
+ #
521
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ComparisonMetricValue AWS API Documentation
522
+ #
523
+ class ComparisonMetricValue < Struct.new(
524
+ :baseline_time_period_amount,
525
+ :comparison_time_period_amount,
526
+ :difference,
527
+ :unit)
528
+ SENSITIVE = []
529
+ include Aws::Structure
530
+ end
531
+
499
532
  # The cost allocation tag structure. This includes detailed metadata for
500
533
  # the `CostAllocationTag` object.
501
534
  #
@@ -591,6 +624,114 @@ module Aws::CostExplorer
591
624
  include Aws::Structure
592
625
  end
593
626
 
627
+ # Represents a comparison of cost and usage metrics between two time
628
+ # periods.
629
+ #
630
+ # @!attribute [rw] cost_and_usage_selector
631
+ # Use `Expression` to filter in various Cost Explorer APIs.
632
+ #
633
+ # Not all `Expression` types are supported in each API. Refer to the
634
+ # documentation for each specific API to see what is supported.
635
+ #
636
+ # There are two patterns:
637
+ #
638
+ # * Simple dimension values.
639
+ #
640
+ # * There are three types of simple dimension values:
641
+ # `CostCategories`, `Tags`, and `Dimensions`.
642
+ #
643
+ # * Specify the `CostCategories` field to define a filter that
644
+ # acts on Cost Categories.
645
+ #
646
+ # * Specify the `Tags` field to define a filter that acts on Cost
647
+ # Allocation Tags.
648
+ #
649
+ # * Specify the `Dimensions` field to define a filter that acts on
650
+ # the [ `DimensionValues` ][1].
651
+ # * For each filter type, you can set the dimension name and values
652
+ # for the filters that you plan to use.
653
+ #
654
+ # * For example, you can filter for `REGION==us-east-1 OR
655
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
656
+ # Region is a full name (for example, `REGION==US East (N.
657
+ # Virginia)`.
658
+ #
659
+ # * The corresponding `Expression` for this example is as follows:
660
+ # `{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1",
661
+ # "us-west-1" ] } }`
662
+ #
663
+ # * As shown in the previous example, lists of dimension values
664
+ # are combined with `OR` when applying the filter.
665
+ # * You can also set different match options to further control how
666
+ # the filter behaves. Not all APIs support match options. Refer to
667
+ # the documentation for each specific API to see what is
668
+ # supported.
669
+ #
670
+ # * For example, you can filter for linked account names that
671
+ # start with "a".
672
+ #
673
+ # * The corresponding `Expression` for this example is as follows:
674
+ # `{ "Dimensions": { "Key": "LINKED_ACCOUNT_NAME",
675
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] } }`
676
+ # * Compound `Expression` types with logical operations.
677
+ #
678
+ # * You can use multiple `Expression` types and the logical
679
+ # operators `AND/OR/NOT` to create a list of one or more
680
+ # `Expression` objects. By doing this, you can filter by more
681
+ # advanced options.
682
+ #
683
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
684
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
685
+ # DataTransfer)`.
686
+ #
687
+ # * The corresponding `Expression` for this example is as follows:
688
+ # `{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values":
689
+ # [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName",
690
+ # "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key":
691
+ # "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } `
692
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
693
+ # returns an error if more than one is specified. The following
694
+ # example shows an `Expression` object that creates an error: ` {
695
+ # "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values": [
696
+ # "DataTransfer" ] } } `
697
+ #
698
+ # The following is an example of the corresponding error message:
699
+ # `"Expression has more than one roots. Only one root operator is
700
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
701
+ # CostCategories"`
702
+ #
703
+ # </note>
704
+ #
705
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
706
+ # and NOT isn't supported. OR isn't supported between different
707
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
708
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
709
+ # `RIGHTSIZING_TYPE`.
710
+ #
711
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
712
+ # supported. AND and OR aren't supported. Dimensions are limited to
713
+ # `LINKED_ACCOUNT`.
714
+ #
715
+ # </note>
716
+ #
717
+ #
718
+ #
719
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
720
+ # @return [Types::Expression]
721
+ #
722
+ # @!attribute [rw] metrics
723
+ # A mapping of metric names to their comparison values.
724
+ # @return [Hash<String,Types::ComparisonMetricValue>]
725
+ #
726
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostAndUsageComparison AWS API Documentation
727
+ #
728
+ class CostAndUsageComparison < Struct.new(
729
+ :cost_and_usage_selector,
730
+ :metrics)
731
+ SENSITIVE = []
732
+ include Aws::Structure
733
+ end
734
+
594
735
  # The structure of Cost Categories. This includes detailed metadata and
595
736
  # the set of rules for the `CostCategory` object.
596
737
  #
@@ -907,6 +1048,155 @@ module Aws::CostExplorer
907
1048
  include Aws::Structure
908
1049
  end
909
1050
 
1051
+ # Represents a collection of cost drivers and their associated metrics
1052
+ # for cost comparison analysis.
1053
+ #
1054
+ # @!attribute [rw] cost_selector
1055
+ # Use `Expression` to filter in various Cost Explorer APIs.
1056
+ #
1057
+ # Not all `Expression` types are supported in each API. Refer to the
1058
+ # documentation for each specific API to see what is supported.
1059
+ #
1060
+ # There are two patterns:
1061
+ #
1062
+ # * Simple dimension values.
1063
+ #
1064
+ # * There are three types of simple dimension values:
1065
+ # `CostCategories`, `Tags`, and `Dimensions`.
1066
+ #
1067
+ # * Specify the `CostCategories` field to define a filter that
1068
+ # acts on Cost Categories.
1069
+ #
1070
+ # * Specify the `Tags` field to define a filter that acts on Cost
1071
+ # Allocation Tags.
1072
+ #
1073
+ # * Specify the `Dimensions` field to define a filter that acts on
1074
+ # the [ `DimensionValues` ][1].
1075
+ # * For each filter type, you can set the dimension name and values
1076
+ # for the filters that you plan to use.
1077
+ #
1078
+ # * For example, you can filter for `REGION==us-east-1 OR
1079
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
1080
+ # Region is a full name (for example, `REGION==US East (N.
1081
+ # Virginia)`.
1082
+ #
1083
+ # * The corresponding `Expression` for this example is as follows:
1084
+ # `{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1",
1085
+ # "us-west-1" ] } }`
1086
+ #
1087
+ # * As shown in the previous example, lists of dimension values
1088
+ # are combined with `OR` when applying the filter.
1089
+ # * You can also set different match options to further control how
1090
+ # the filter behaves. Not all APIs support match options. Refer to
1091
+ # the documentation for each specific API to see what is
1092
+ # supported.
1093
+ #
1094
+ # * For example, you can filter for linked account names that
1095
+ # start with "a".
1096
+ #
1097
+ # * The corresponding `Expression` for this example is as follows:
1098
+ # `{ "Dimensions": { "Key": "LINKED_ACCOUNT_NAME",
1099
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] } }`
1100
+ # * Compound `Expression` types with logical operations.
1101
+ #
1102
+ # * You can use multiple `Expression` types and the logical
1103
+ # operators `AND/OR/NOT` to create a list of one or more
1104
+ # `Expression` objects. By doing this, you can filter by more
1105
+ # advanced options.
1106
+ #
1107
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
1108
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
1109
+ # DataTransfer)`.
1110
+ #
1111
+ # * The corresponding `Expression` for this example is as follows:
1112
+ # `{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values":
1113
+ # [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName",
1114
+ # "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key":
1115
+ # "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } `
1116
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
1117
+ # returns an error if more than one is specified. The following
1118
+ # example shows an `Expression` object that creates an error: ` {
1119
+ # "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values": [
1120
+ # "DataTransfer" ] } } `
1121
+ #
1122
+ # The following is an example of the corresponding error message:
1123
+ # `"Expression has more than one roots. Only one root operator is
1124
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
1125
+ # CostCategories"`
1126
+ #
1127
+ # </note>
1128
+ #
1129
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
1130
+ # and NOT isn't supported. OR isn't supported between different
1131
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1132
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1133
+ # `RIGHTSIZING_TYPE`.
1134
+ #
1135
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
1136
+ # supported. AND and OR aren't supported. Dimensions are limited to
1137
+ # `LINKED_ACCOUNT`.
1138
+ #
1139
+ # </note>
1140
+ #
1141
+ #
1142
+ #
1143
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
1144
+ # @return [Types::Expression]
1145
+ #
1146
+ # @!attribute [rw] metrics
1147
+ # A mapping of metric names to their comparison values.
1148
+ # @return [Hash<String,Types::ComparisonMetricValue>]
1149
+ #
1150
+ # @!attribute [rw] cost_drivers
1151
+ # An array of cost drivers, each representing a cost difference
1152
+ # between the baseline and comparison time periods. Each entry also
1153
+ # includes a metric delta (for example, usage change) that contributed
1154
+ # to the cost variance, along with the identifier and type of change.
1155
+ # @return [Array<Types::CostDriver>]
1156
+ #
1157
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostComparisonDriver AWS API Documentation
1158
+ #
1159
+ class CostComparisonDriver < Struct.new(
1160
+ :cost_selector,
1161
+ :metrics,
1162
+ :cost_drivers)
1163
+ SENSITIVE = []
1164
+ include Aws::Structure
1165
+ end
1166
+
1167
+ # Represents factors that contribute to cost variations between the
1168
+ # baseline and comparison time periods, including the type of driver, an
1169
+ # identifier of the driver, and associated metrics.
1170
+ #
1171
+ # @!attribute [rw] type
1172
+ # The category or classification of the cost driver.
1173
+ #
1174
+ # Values include: BUNDLED\_DISCOUNT, CREDIT, OUT\_OF\_CYCLE\_CHARGE,
1175
+ # REFUND, RECURRING\_RESERVATION\_FEE, RESERVATION\_USAGE,
1176
+ # RI\_VOLUME\_DISCOUNT, SAVINGS\_PLAN\_USAGE, SAVINGS\_PLAN\_NEGATION,
1177
+ # SAVINGS\_PLAN\_RECURRING\_FEE, SUPPORT\_FEE, TAX,
1178
+ # UPFRONT\_RESERVATION\_FEE, USAGE\_CHANGE, COMMITMENT
1179
+ # @return [String]
1180
+ #
1181
+ # @!attribute [rw] name
1182
+ # The specific identifier of the cost driver.
1183
+ # @return [String]
1184
+ #
1185
+ # @!attribute [rw] metrics
1186
+ # A mapping of metric names to their comparison values, measuring the
1187
+ # impact of this cost driver.
1188
+ # @return [Hash<String,Types::ComparisonMetricValue>]
1189
+ #
1190
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostDriver AWS API Documentation
1191
+ #
1192
+ class CostDriver < Struct.new(
1193
+ :type,
1194
+ :name,
1195
+ :metrics)
1196
+ SENSITIVE = []
1197
+ include Aws::Structure
1198
+ end
1199
+
910
1200
  # The amount of instance usage that a reservation covered.
911
1201
  #
912
1202
  # @!attribute [rw] coverage_hours
@@ -2336,6 +2626,182 @@ module Aws::CostExplorer
2336
2626
  include Aws::Structure
2337
2627
  end
2338
2628
 
2629
+ # @!attribute [rw] billing_view_arn
2630
+ # The Amazon Resource Name (ARN) that uniquely identifies a specific
2631
+ # billing view. The ARN is used to specify which particular billing
2632
+ # view you want to interact with or retrieve information from when
2633
+ # making API calls related to Amazon Web Services Billing and Cost
2634
+ # Management features. The BillingViewArn can be retrieved by calling
2635
+ # the ListBillingViews API.
2636
+ # @return [String]
2637
+ #
2638
+ # @!attribute [rw] baseline_time_period
2639
+ # The reference time period for comparison. This time period serves as
2640
+ # the baseline against which other cost and usage data will be
2641
+ # compared. The interval must start and end on the first day of a
2642
+ # month, with a duration of exactly one month.
2643
+ # @return [Types::DateInterval]
2644
+ #
2645
+ # @!attribute [rw] comparison_time_period
2646
+ # The comparison time period for analysis. This time period's cost
2647
+ # and usage data will be compared against the baseline time period.
2648
+ # The interval must start and end on the first day of a month, with a
2649
+ # duration of exactly one month.
2650
+ # @return [Types::DateInterval]
2651
+ #
2652
+ # @!attribute [rw] metric_for_comparison
2653
+ # The cost and usage metric to compare. Valid values are
2654
+ # `AmortizedCost`, `BlendedCost`, `NetAmortizedCost`,
2655
+ # `NetUnblendedCost`, `NormalizedUsageAmount`, `UnblendedCost`, and
2656
+ # `UsageQuantity`.
2657
+ # @return [String]
2658
+ #
2659
+ # @!attribute [rw] filter
2660
+ # Use `Expression` to filter in various Cost Explorer APIs.
2661
+ #
2662
+ # Not all `Expression` types are supported in each API. Refer to the
2663
+ # documentation for each specific API to see what is supported.
2664
+ #
2665
+ # There are two patterns:
2666
+ #
2667
+ # * Simple dimension values.
2668
+ #
2669
+ # * There are three types of simple dimension values:
2670
+ # `CostCategories`, `Tags`, and `Dimensions`.
2671
+ #
2672
+ # * Specify the `CostCategories` field to define a filter that
2673
+ # acts on Cost Categories.
2674
+ #
2675
+ # * Specify the `Tags` field to define a filter that acts on Cost
2676
+ # Allocation Tags.
2677
+ #
2678
+ # * Specify the `Dimensions` field to define a filter that acts on
2679
+ # the [ `DimensionValues` ][1].
2680
+ # * For each filter type, you can set the dimension name and values
2681
+ # for the filters that you plan to use.
2682
+ #
2683
+ # * For example, you can filter for `REGION==us-east-1 OR
2684
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
2685
+ # Region is a full name (for example, `REGION==US East (N.
2686
+ # Virginia)`.
2687
+ #
2688
+ # * The corresponding `Expression` for this example is as follows:
2689
+ # `{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1",
2690
+ # "us-west-1" ] } }`
2691
+ #
2692
+ # * As shown in the previous example, lists of dimension values
2693
+ # are combined with `OR` when applying the filter.
2694
+ # * You can also set different match options to further control how
2695
+ # the filter behaves. Not all APIs support match options. Refer to
2696
+ # the documentation for each specific API to see what is
2697
+ # supported.
2698
+ #
2699
+ # * For example, you can filter for linked account names that
2700
+ # start with "a".
2701
+ #
2702
+ # * The corresponding `Expression` for this example is as follows:
2703
+ # `{ "Dimensions": { "Key": "LINKED_ACCOUNT_NAME",
2704
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] } }`
2705
+ # * Compound `Expression` types with logical operations.
2706
+ #
2707
+ # * You can use multiple `Expression` types and the logical
2708
+ # operators `AND/OR/NOT` to create a list of one or more
2709
+ # `Expression` objects. By doing this, you can filter by more
2710
+ # advanced options.
2711
+ #
2712
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
2713
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
2714
+ # DataTransfer)`.
2715
+ #
2716
+ # * The corresponding `Expression` for this example is as follows:
2717
+ # `{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values":
2718
+ # [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName",
2719
+ # "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key":
2720
+ # "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } `
2721
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2722
+ # returns an error if more than one is specified. The following
2723
+ # example shows an `Expression` object that creates an error: ` {
2724
+ # "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values": [
2725
+ # "DataTransfer" ] } } `
2726
+ #
2727
+ # The following is an example of the corresponding error message:
2728
+ # `"Expression has more than one roots. Only one root operator is
2729
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
2730
+ # CostCategories"`
2731
+ #
2732
+ # </note>
2733
+ #
2734
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2735
+ # and NOT isn't supported. OR isn't supported between different
2736
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2737
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2738
+ # `RIGHTSIZING_TYPE`.
2739
+ #
2740
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2741
+ # supported. AND and OR aren't supported. Dimensions are limited to
2742
+ # `LINKED_ACCOUNT`.
2743
+ #
2744
+ # </note>
2745
+ #
2746
+ #
2747
+ #
2748
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
2749
+ # @return [Types::Expression]
2750
+ #
2751
+ # @!attribute [rw] group_by
2752
+ # You can group results using the attributes `DIMENSION`, `TAG`, and
2753
+ # `COST_CATEGORY`.
2754
+ # @return [Array<Types::GroupDefinition>]
2755
+ #
2756
+ # @!attribute [rw] max_results
2757
+ # The maximum number of results that are returned for the request.
2758
+ # @return [Integer]
2759
+ #
2760
+ # @!attribute [rw] next_page_token
2761
+ # The token to retrieve the next set of paginated results.
2762
+ # @return [String]
2763
+ #
2764
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageComparisonsRequest AWS API Documentation
2765
+ #
2766
+ class GetCostAndUsageComparisonsRequest < Struct.new(
2767
+ :billing_view_arn,
2768
+ :baseline_time_period,
2769
+ :comparison_time_period,
2770
+ :metric_for_comparison,
2771
+ :filter,
2772
+ :group_by,
2773
+ :max_results,
2774
+ :next_page_token)
2775
+ SENSITIVE = []
2776
+ include Aws::Structure
2777
+ end
2778
+
2779
+ # @!attribute [rw] cost_and_usage_comparisons
2780
+ # An array of comparison results showing cost and usage metrics
2781
+ # between `BaselineTimePeriod` and `ComparisonTimePeriod`.
2782
+ # @return [Array<Types::CostAndUsageComparison>]
2783
+ #
2784
+ # @!attribute [rw] total_cost_and_usage
2785
+ # A summary of the total cost and usage, comparing amounts between
2786
+ # `BaselineTimePeriod` and `ComparisonTimePeriod` and their
2787
+ # differences. This total represents the aggregate total across all
2788
+ # paginated results, if the response spans multiple pages.
2789
+ # @return [Hash<String,Types::ComparisonMetricValue>]
2790
+ #
2791
+ # @!attribute [rw] next_page_token
2792
+ # The token to retrieve the next set of paginated results.
2793
+ # @return [String]
2794
+ #
2795
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageComparisonsResponse AWS API Documentation
2796
+ #
2797
+ class GetCostAndUsageComparisonsResponse < Struct.new(
2798
+ :cost_and_usage_comparisons,
2799
+ :total_cost_and_usage,
2800
+ :next_page_token)
2801
+ SENSITIVE = []
2802
+ include Aws::Structure
2803
+ end
2804
+
2339
2805
  # @!attribute [rw] time_period
2340
2806
  # Sets the start date and end date for retrieving Amazon Web Services
2341
2807
  # costs. The start date is inclusive, but the end date is exclusive.
@@ -2814,6 +3280,176 @@ module Aws::CostExplorer
2814
3280
  include Aws::Structure
2815
3281
  end
2816
3282
 
3283
+ # @!attribute [rw] billing_view_arn
3284
+ # The Amazon Resource Name (ARN) that uniquely identifies a specific
3285
+ # billing view. The ARN is used to specify which particular billing
3286
+ # view you want to interact with or retrieve information from when
3287
+ # making API calls related to Amazon Web Services Billing and Cost
3288
+ # Management features. The BillingViewArn can be retrieved by calling
3289
+ # the ListBillingViews API.
3290
+ # @return [String]
3291
+ #
3292
+ # @!attribute [rw] baseline_time_period
3293
+ # The reference time period for comparison. This time period serves as
3294
+ # the baseline against which other cost and usage data will be
3295
+ # compared. The interval must start and end on the first day of a
3296
+ # month, with a duration of exactly one month.
3297
+ # @return [Types::DateInterval]
3298
+ #
3299
+ # @!attribute [rw] comparison_time_period
3300
+ # The comparison time period for analysis. This time period's cost
3301
+ # and usage data will be compared against the baseline time period.
3302
+ # The interval must start and end on the first day of a month, with a
3303
+ # duration of exactly one month.
3304
+ # @return [Types::DateInterval]
3305
+ #
3306
+ # @!attribute [rw] metric_for_comparison
3307
+ # The cost and usage metric to compare. Valid values are
3308
+ # `AmortizedCost`, `BlendedCost`, `NetAmortizedCost`,
3309
+ # `NetUnblendedCost`, `NormalizedUsageAmount`, `UnblendedCost`, and
3310
+ # `UsageQuantity`.
3311
+ # @return [String]
3312
+ #
3313
+ # @!attribute [rw] filter
3314
+ # Use `Expression` to filter in various Cost Explorer APIs.
3315
+ #
3316
+ # Not all `Expression` types are supported in each API. Refer to the
3317
+ # documentation for each specific API to see what is supported.
3318
+ #
3319
+ # There are two patterns:
3320
+ #
3321
+ # * Simple dimension values.
3322
+ #
3323
+ # * There are three types of simple dimension values:
3324
+ # `CostCategories`, `Tags`, and `Dimensions`.
3325
+ #
3326
+ # * Specify the `CostCategories` field to define a filter that
3327
+ # acts on Cost Categories.
3328
+ #
3329
+ # * Specify the `Tags` field to define a filter that acts on Cost
3330
+ # Allocation Tags.
3331
+ #
3332
+ # * Specify the `Dimensions` field to define a filter that acts on
3333
+ # the [ `DimensionValues` ][1].
3334
+ # * For each filter type, you can set the dimension name and values
3335
+ # for the filters that you plan to use.
3336
+ #
3337
+ # * For example, you can filter for `REGION==us-east-1 OR
3338
+ # REGION==us-west-1`. For `GetRightsizingRecommendation`, the
3339
+ # Region is a full name (for example, `REGION==US East (N.
3340
+ # Virginia)`.
3341
+ #
3342
+ # * The corresponding `Expression` for this example is as follows:
3343
+ # `{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1",
3344
+ # "us-west-1" ] } }`
3345
+ #
3346
+ # * As shown in the previous example, lists of dimension values
3347
+ # are combined with `OR` when applying the filter.
3348
+ # * You can also set different match options to further control how
3349
+ # the filter behaves. Not all APIs support match options. Refer to
3350
+ # the documentation for each specific API to see what is
3351
+ # supported.
3352
+ #
3353
+ # * For example, you can filter for linked account names that
3354
+ # start with "a".
3355
+ #
3356
+ # * The corresponding `Expression` for this example is as follows:
3357
+ # `{ "Dimensions": { "Key": "LINKED_ACCOUNT_NAME",
3358
+ # "MatchOptions": [ "STARTS_WITH" ], "Values": [ "a" ] } }`
3359
+ # * Compound `Expression` types with logical operations.
3360
+ #
3361
+ # * You can use multiple `Expression` types and the logical
3362
+ # operators `AND/OR/NOT` to create a list of one or more
3363
+ # `Expression` objects. By doing this, you can filter by more
3364
+ # advanced options.
3365
+ #
3366
+ # * For example, you can filter by `((REGION == us-east-1 OR REGION
3367
+ # == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3368
+ # DataTransfer)`.
3369
+ #
3370
+ # * The corresponding `Expression` for this example is as follows:
3371
+ # `{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values":
3372
+ # [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName",
3373
+ # "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key":
3374
+ # "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } `
3375
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
3376
+ # returns an error if more than one is specified. The following
3377
+ # example shows an `Expression` object that creates an error: ` {
3378
+ # "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values": [
3379
+ # "DataTransfer" ] } } `
3380
+ #
3381
+ # The following is an example of the corresponding error message:
3382
+ # `"Expression has more than one roots. Only one root operator is
3383
+ # allowed for each expression: And, Or, Not, Dimensions, Tags,
3384
+ # CostCategories"`
3385
+ #
3386
+ # </note>
3387
+ #
3388
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3389
+ # and NOT isn't supported. OR isn't supported between different
3390
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
3391
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3392
+ # `RIGHTSIZING_TYPE`.
3393
+ #
3394
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3395
+ # supported. AND and OR aren't supported. Dimensions are limited to
3396
+ # `LINKED_ACCOUNT`.
3397
+ #
3398
+ # </note>
3399
+ #
3400
+ #
3401
+ #
3402
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html
3403
+ # @return [Types::Expression]
3404
+ #
3405
+ # @!attribute [rw] group_by
3406
+ # You can group results using the attributes `DIMENSION`, `TAG`, and
3407
+ # `COST_CATEGORY`. Note that `SERVICE` and `USAGE_TYPE` dimensions are
3408
+ # automatically included in the cost comparison drivers analysis.
3409
+ # @return [Array<Types::GroupDefinition>]
3410
+ #
3411
+ # @!attribute [rw] max_results
3412
+ # The maximum number of results that are returned for the request.
3413
+ # @return [Integer]
3414
+ #
3415
+ # @!attribute [rw] next_page_token
3416
+ # The token to retrieve the next set of paginated results.
3417
+ # @return [String]
3418
+ #
3419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostComparisonDriversRequest AWS API Documentation
3420
+ #
3421
+ class GetCostComparisonDriversRequest < Struct.new(
3422
+ :billing_view_arn,
3423
+ :baseline_time_period,
3424
+ :comparison_time_period,
3425
+ :metric_for_comparison,
3426
+ :filter,
3427
+ :group_by,
3428
+ :max_results,
3429
+ :next_page_token)
3430
+ SENSITIVE = []
3431
+ include Aws::Structure
3432
+ end
3433
+
3434
+ # @!attribute [rw] cost_comparison_drivers
3435
+ # An array of comparison results showing factors that drive
3436
+ # significant cost differences between `BaselineTimePeriod` and
3437
+ # `ComparisonTimePeriod`.
3438
+ # @return [Array<Types::CostComparisonDriver>]
3439
+ #
3440
+ # @!attribute [rw] next_page_token
3441
+ # The token to retrieve the next set of paginated results.
3442
+ # @return [String]
3443
+ #
3444
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostComparisonDriversResponse AWS API Documentation
3445
+ #
3446
+ class GetCostComparisonDriversResponse < Struct.new(
3447
+ :cost_comparison_drivers,
3448
+ :next_page_token)
3449
+ SENSITIVE = []
3450
+ include Aws::Structure
3451
+ end
3452
+
2817
3453
  # @!attribute [rw] time_period
2818
3454
  # The period of time that you want the forecast to cover. The start
2819
3455
  # date must be equal to or no later than the current date to avoid a
@@ -54,7 +54,7 @@ module Aws::CostExplorer
54
54
  autoload :EndpointProvider, 'aws-sdk-costexplorer/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-costexplorer/endpoints'
56
56
 
57
- GEM_VERSION = '1.125.0'
57
+ GEM_VERSION = '1.126.0'
58
58
 
59
59
  end
60
60