aws-sdk-costexplorer 1.45.0 → 1.50.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,6 +34,8 @@ module Aws::CostExplorer
34
34
  # * {RequestChangedException}
35
35
  # * {ResourceNotFoundException}
36
36
  # * {ServiceQuotaExceededException}
37
+ # * {UnknownMonitorException}
38
+ # * {UnknownSubscriptionException}
37
39
  # * {UnresolvableUsageUnitException}
38
40
  #
39
41
  # Additionally, error classes are dynamically generated for service errors based on the error code
@@ -147,6 +149,36 @@ module Aws::CostExplorer
147
149
  end
148
150
  end
149
151
 
152
+ class UnknownMonitorException < ServiceError
153
+
154
+ # @param [Seahorse::Client::RequestContext] context
155
+ # @param [String] message
156
+ # @param [Aws::CostExplorer::Types::UnknownMonitorException] data
157
+ def initialize(context, message, data = Aws::EmptyStructure.new)
158
+ super(context, message, data)
159
+ end
160
+
161
+ # @return [String]
162
+ def message
163
+ @message || @data[:message]
164
+ end
165
+ end
166
+
167
+ class UnknownSubscriptionException < ServiceError
168
+
169
+ # @param [Seahorse::Client::RequestContext] context
170
+ # @param [String] message
171
+ # @param [Aws::CostExplorer::Types::UnknownSubscriptionException] data
172
+ def initialize(context, message, data = Aws::EmptyStructure.new)
173
+ super(context, message, data)
174
+ end
175
+
176
+ # @return [String]
177
+ def message
178
+ @message || @data[:message]
179
+ end
180
+ end
181
+
150
182
  class UnresolvableUsageUnitException < ServiceError
151
183
 
152
184
  # @param [Seahorse::Client::RequestContext] context
@@ -10,6 +10,324 @@
10
10
  module Aws::CostExplorer
11
11
  module Types
12
12
 
13
+ # An unusual cost pattern. This consists of the detailed metadata and
14
+ # the current status of the anomaly object.
15
+ #
16
+ # @!attribute [rw] anomaly_id
17
+ # The unique identifier for the anomaly.
18
+ # @return [String]
19
+ #
20
+ # @!attribute [rw] anomaly_start_date
21
+ # The first day the anomaly is detected.
22
+ # @return [String]
23
+ #
24
+ # @!attribute [rw] anomaly_end_date
25
+ # The last day the anomaly is detected.
26
+ # @return [String]
27
+ #
28
+ # @!attribute [rw] dimension_value
29
+ # The dimension for the anomaly. For example, an AWS service in a
30
+ # service monitor.
31
+ # @return [String]
32
+ #
33
+ # @!attribute [rw] root_causes
34
+ # The list of identified root causes for the anomaly.
35
+ # @return [Array<Types::RootCause>]
36
+ #
37
+ # @!attribute [rw] anomaly_score
38
+ # The latest and maximum score for the anomaly.
39
+ # @return [Types::AnomalyScore]
40
+ #
41
+ # @!attribute [rw] impact
42
+ # The dollar impact for the anomaly.
43
+ # @return [Types::Impact]
44
+ #
45
+ # @!attribute [rw] monitor_arn
46
+ # The Amazon Resource Name (ARN) for the cost monitor that generated
47
+ # this anomaly.
48
+ # @return [String]
49
+ #
50
+ # @!attribute [rw] feedback
51
+ # The feedback value.
52
+ # @return [String]
53
+ #
54
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Anomaly AWS API Documentation
55
+ #
56
+ class Anomaly < Struct.new(
57
+ :anomaly_id,
58
+ :anomaly_start_date,
59
+ :anomaly_end_date,
60
+ :dimension_value,
61
+ :root_causes,
62
+ :anomaly_score,
63
+ :impact,
64
+ :monitor_arn,
65
+ :feedback)
66
+ SENSITIVE = []
67
+ include Aws::Structure
68
+ end
69
+
70
+ # The time period for an anomaly.
71
+ #
72
+ # @note When making an API call, you may pass AnomalyDateInterval
73
+ # data as a hash:
74
+ #
75
+ # {
76
+ # start_date: "YearMonthDay", # required
77
+ # end_date: "YearMonthDay",
78
+ # }
79
+ #
80
+ # @!attribute [rw] start_date
81
+ # The first date an anomaly was observed.
82
+ # @return [String]
83
+ #
84
+ # @!attribute [rw] end_date
85
+ # The last date an anomaly was observed.
86
+ # @return [String]
87
+ #
88
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/AnomalyDateInterval AWS API Documentation
89
+ #
90
+ class AnomalyDateInterval < Struct.new(
91
+ :start_date,
92
+ :end_date)
93
+ SENSITIVE = []
94
+ include Aws::Structure
95
+ end
96
+
97
+ # This object continuously inspects your account's cost data for
98
+ # anomalies, based on `MonitorType` and `MonitorSpecification`. The
99
+ # content consists of detailed metadata and the current status of the
100
+ # monitor object.
101
+ #
102
+ # @note When making an API call, you may pass AnomalyMonitor
103
+ # data as a hash:
104
+ #
105
+ # {
106
+ # monitor_arn: "GenericString",
107
+ # monitor_name: "GenericString", # required
108
+ # creation_date: "YearMonthDay",
109
+ # last_updated_date: "YearMonthDay",
110
+ # last_evaluated_date: "YearMonthDay",
111
+ # monitor_type: "DIMENSIONAL", # required, accepts DIMENSIONAL, CUSTOM
112
+ # monitor_dimension: "SERVICE", # accepts SERVICE
113
+ # monitor_specification: {
114
+ # or: [
115
+ # {
116
+ # # recursive Expression
117
+ # },
118
+ # ],
119
+ # and: [
120
+ # {
121
+ # # recursive Expression
122
+ # },
123
+ # ],
124
+ # not: {
125
+ # # recursive Expression
126
+ # },
127
+ # dimensions: {
128
+ # 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
129
+ # values: ["Value"],
130
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
131
+ # },
132
+ # tags: {
133
+ # key: "TagKey",
134
+ # values: ["Value"],
135
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
136
+ # },
137
+ # cost_categories: {
138
+ # key: "CostCategoryName",
139
+ # values: ["Value"],
140
+ # },
141
+ # },
142
+ # dimensional_value_count: 1,
143
+ # }
144
+ #
145
+ # @!attribute [rw] monitor_arn
146
+ # The Amazon Resource Name (ARN) value.
147
+ # @return [String]
148
+ #
149
+ # @!attribute [rw] monitor_name
150
+ # The name of the monitor.
151
+ # @return [String]
152
+ #
153
+ # @!attribute [rw] creation_date
154
+ # The date when the monitor was created.
155
+ # @return [String]
156
+ #
157
+ # @!attribute [rw] last_updated_date
158
+ # The date when the monitor was last updated.
159
+ # @return [String]
160
+ #
161
+ # @!attribute [rw] last_evaluated_date
162
+ # The date when the monitor last evaluated for anomalies.
163
+ # @return [String]
164
+ #
165
+ # @!attribute [rw] monitor_type
166
+ # The possible type values.
167
+ # @return [String]
168
+ #
169
+ # @!attribute [rw] monitor_dimension
170
+ # The dimensions to evaluate.
171
+ # @return [String]
172
+ #
173
+ # @!attribute [rw] monitor_specification
174
+ # Use `Expression` to filter by cost or by usage. There are two
175
+ # patterns:
176
+ #
177
+ # * Simple dimension values - You can set the dimension name and
178
+ # values for the filters that you plan to use. For example, you can
179
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
180
+ # `GetRightsizingRecommendation`, the Region is a full name (for
181
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
182
+ # looks like:
183
+ #
184
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
185
+ # “us-west-1” ] \} \}`
186
+ #
187
+ # The list of dimension values are OR'd together to retrieve cost
188
+ # or usage data. You can create `Expression` and `DimensionValues`
189
+ # objects using either `with*` methods or `set*` methods in multiple
190
+ # lines.
191
+ #
192
+ # * Compound dimension values with logical operations - You can use
193
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
194
+ # to create a list of one or more `Expression` objects. This allows
195
+ # you to filter on more advanced options. For example, you can
196
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
197
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
198
+ # `Expression` for that looks like this:
199
+ #
200
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
201
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
202
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
203
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
204
+ # \}\}\} ] \} `
205
+ #
206
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
207
+ # returns an error if more than one is specified. The following
208
+ # example shows an `Expression` object that creates an error.
209
+ #
210
+ # </note>
211
+ #
212
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
213
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
214
+ #
215
+ # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
216
+ # NOT is not supported. OR is not supported between different
217
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
218
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
219
+ # `RIGHTSIZING_TYPE`.
220
+ #
221
+ # </note>
222
+ # @return [Types::Expression]
223
+ #
224
+ # @!attribute [rw] dimensional_value_count
225
+ # The value for evaluated dimensions.
226
+ # @return [Integer]
227
+ #
228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/AnomalyMonitor AWS API Documentation
229
+ #
230
+ class AnomalyMonitor < Struct.new(
231
+ :monitor_arn,
232
+ :monitor_name,
233
+ :creation_date,
234
+ :last_updated_date,
235
+ :last_evaluated_date,
236
+ :monitor_type,
237
+ :monitor_dimension,
238
+ :monitor_specification,
239
+ :dimensional_value_count)
240
+ SENSITIVE = []
241
+ include Aws::Structure
242
+ end
243
+
244
+ # Quantifies the anomaly. The higher score means that it is more
245
+ # anomalous.
246
+ #
247
+ # @!attribute [rw] max_score
248
+ # The maximum score observed during the `AnomalyDateInterval`.
249
+ # @return [Float]
250
+ #
251
+ # @!attribute [rw] current_score
252
+ # The last observed score.
253
+ # @return [Float]
254
+ #
255
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/AnomalyScore AWS API Documentation
256
+ #
257
+ class AnomalyScore < Struct.new(
258
+ :max_score,
259
+ :current_score)
260
+ SENSITIVE = []
261
+ include Aws::Structure
262
+ end
263
+
264
+ # The association between a monitor, threshold, and list of subscribers
265
+ # used to deliver notifications about anomalies detected by a monitor
266
+ # that exceeds a threshold. The content consists of the detailed
267
+ # metadata and the current status of the `AnomalySubscription` object.
268
+ #
269
+ # @note When making an API call, you may pass AnomalySubscription
270
+ # data as a hash:
271
+ #
272
+ # {
273
+ # subscription_arn: "GenericString",
274
+ # account_id: "GenericString",
275
+ # monitor_arn_list: ["Value"], # required
276
+ # subscribers: [ # required
277
+ # {
278
+ # address: "SubscriberAddress",
279
+ # type: "EMAIL", # accepts EMAIL, SNS
280
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
281
+ # },
282
+ # ],
283
+ # threshold: 1.0, # required
284
+ # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
285
+ # subscription_name: "GenericString", # required
286
+ # }
287
+ #
288
+ # @!attribute [rw] subscription_arn
289
+ # The `AnomalySubscription` Amazon Resource Name (ARN).
290
+ # @return [String]
291
+ #
292
+ # @!attribute [rw] account_id
293
+ # Your unique account identifier.
294
+ # @return [String]
295
+ #
296
+ # @!attribute [rw] monitor_arn_list
297
+ # A list of cost anomaly monitors.
298
+ # @return [Array<String>]
299
+ #
300
+ # @!attribute [rw] subscribers
301
+ # A list of subscribers to notify.
302
+ # @return [Array<Types::Subscriber>]
303
+ #
304
+ # @!attribute [rw] threshold
305
+ # The dollar value that triggers a notification if the threshold is
306
+ # exceeded.
307
+ # @return [Float]
308
+ #
309
+ # @!attribute [rw] frequency
310
+ # The frequency at which anomaly reports are sent over email.
311
+ # @return [String]
312
+ #
313
+ # @!attribute [rw] subscription_name
314
+ # The name for the subscription.
315
+ # @return [String]
316
+ #
317
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/AnomalySubscription AWS API Documentation
318
+ #
319
+ class AnomalySubscription < Struct.new(
320
+ :subscription_arn,
321
+ :account_id,
322
+ :monitor_arn_list,
323
+ :subscribers,
324
+ :threshold,
325
+ :frequency,
326
+ :subscription_name)
327
+ SENSITIVE = []
328
+ include Aws::Structure
329
+ end
330
+
13
331
  # The requested report expired. Update the date interval and try again.
14
332
  #
15
333
  # @!attribute [rw] message
@@ -150,7 +468,7 @@ module Aws::CostExplorer
150
468
  #
151
469
  # @!attribute [rw] rule
152
470
  # An [Expression][1] object used to categorize costs. This supports
153
- # dimensions, Tags, and nested expressions. Currently the only
471
+ # dimensions, tags, and nested expressions. Currently the only
154
472
  # dimensions supported are `LINKED_ACCOUNT`, `SERVICE_CODE`,
155
473
  # `RECORD_TYPE`, and `LINKED_ACCOUNT_NAME`.
156
474
  #
@@ -345,6 +663,122 @@ module Aws::CostExplorer
345
663
  include Aws::Structure
346
664
  end
347
665
 
666
+ # @note When making an API call, you may pass CreateAnomalyMonitorRequest
667
+ # data as a hash:
668
+ #
669
+ # {
670
+ # anomaly_monitor: { # required
671
+ # monitor_arn: "GenericString",
672
+ # monitor_name: "GenericString", # required
673
+ # creation_date: "YearMonthDay",
674
+ # last_updated_date: "YearMonthDay",
675
+ # last_evaluated_date: "YearMonthDay",
676
+ # monitor_type: "DIMENSIONAL", # required, accepts DIMENSIONAL, CUSTOM
677
+ # monitor_dimension: "SERVICE", # accepts SERVICE
678
+ # monitor_specification: {
679
+ # or: [
680
+ # {
681
+ # # recursive Expression
682
+ # },
683
+ # ],
684
+ # and: [
685
+ # {
686
+ # # recursive Expression
687
+ # },
688
+ # ],
689
+ # not: {
690
+ # # recursive Expression
691
+ # },
692
+ # dimensions: {
693
+ # 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
694
+ # values: ["Value"],
695
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
696
+ # },
697
+ # tags: {
698
+ # key: "TagKey",
699
+ # values: ["Value"],
700
+ # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
701
+ # },
702
+ # cost_categories: {
703
+ # key: "CostCategoryName",
704
+ # values: ["Value"],
705
+ # },
706
+ # },
707
+ # dimensional_value_count: 1,
708
+ # },
709
+ # }
710
+ #
711
+ # @!attribute [rw] anomaly_monitor
712
+ # The cost anomaly detection monitor object that you want to create.
713
+ # @return [Types::AnomalyMonitor]
714
+ #
715
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitorRequest AWS API Documentation
716
+ #
717
+ class CreateAnomalyMonitorRequest < Struct.new(
718
+ :anomaly_monitor)
719
+ SENSITIVE = []
720
+ include Aws::Structure
721
+ end
722
+
723
+ # @!attribute [rw] monitor_arn
724
+ # The unique identifier of your newly created cost anomaly detection
725
+ # monitor.
726
+ # @return [String]
727
+ #
728
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitorResponse AWS API Documentation
729
+ #
730
+ class CreateAnomalyMonitorResponse < Struct.new(
731
+ :monitor_arn)
732
+ SENSITIVE = []
733
+ include Aws::Structure
734
+ end
735
+
736
+ # @note When making an API call, you may pass CreateAnomalySubscriptionRequest
737
+ # data as a hash:
738
+ #
739
+ # {
740
+ # anomaly_subscription: { # required
741
+ # subscription_arn: "GenericString",
742
+ # account_id: "GenericString",
743
+ # monitor_arn_list: ["Value"], # required
744
+ # subscribers: [ # required
745
+ # {
746
+ # address: "SubscriberAddress",
747
+ # type: "EMAIL", # accepts EMAIL, SNS
748
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
749
+ # },
750
+ # ],
751
+ # threshold: 1.0, # required
752
+ # frequency: "DAILY", # required, accepts DAILY, IMMEDIATE, WEEKLY
753
+ # subscription_name: "GenericString", # required
754
+ # },
755
+ # }
756
+ #
757
+ # @!attribute [rw] anomaly_subscription
758
+ # The cost anomaly subscription object that you want to create.
759
+ # @return [Types::AnomalySubscription]
760
+ #
761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscriptionRequest AWS API Documentation
762
+ #
763
+ class CreateAnomalySubscriptionRequest < Struct.new(
764
+ :anomaly_subscription)
765
+ SENSITIVE = []
766
+ include Aws::Structure
767
+ end
768
+
769
+ # @!attribute [rw] subscription_arn
770
+ # The unique identifier of your newly created cost anomaly
771
+ # subscription.
772
+ # @return [String]
773
+ #
774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscriptionResponse AWS API Documentation
775
+ #
776
+ class CreateAnomalySubscriptionResponse < Struct.new(
777
+ :subscription_arn)
778
+ SENSITIVE = []
779
+ include Aws::Structure
780
+ end
781
+
348
782
  # @note When making an API call, you may pass CreateCostCategoryDefinitionRequest
349
783
  # data as a hash:
350
784
  #
@@ -464,7 +898,7 @@ module Aws::CostExplorer
464
898
  # @return [String]
465
899
  #
466
900
  # @!attribute [rw] on_demand_hours_in_lookback_period
467
- # Number of hours during the lookback period billed at On Demand
901
+ # Number of hours during the lookback period billed at On-Demand
468
902
  # rates.
469
903
  # @return [String]
470
904
  #
@@ -474,13 +908,13 @@ module Aws::CostExplorer
474
908
  # @return [String]
475
909
  #
476
910
  # @!attribute [rw] monthly_cost
477
- # Current On Demand cost of operating this instance on a monthly
911
+ # Current On-Demand cost of operating this instance on a monthly
478
912
  # basis.
479
913
  # @return [String]
480
914
  #
481
915
  # @!attribute [rw] currency_code
482
- # The currency code that Amazon Web Services used to calculate the
483
- # costs for this instance.
916
+ # The currency code that AWS used to calculate the costs for this
917
+ # instance.
484
918
  # @return [String]
485
919
  #
486
920
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CurrentInstance AWS API Documentation
@@ -547,6 +981,54 @@ module Aws::CostExplorer
547
981
  include Aws::Structure
548
982
  end
549
983
 
984
+ # @note When making an API call, you may pass DeleteAnomalyMonitorRequest
985
+ # data as a hash:
986
+ #
987
+ # {
988
+ # monitor_arn: "GenericString", # required
989
+ # }
990
+ #
991
+ # @!attribute [rw] monitor_arn
992
+ # The unique identifier of the cost anomaly monitor that you want to
993
+ # delete.
994
+ # @return [String]
995
+ #
996
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitorRequest AWS API Documentation
997
+ #
998
+ class DeleteAnomalyMonitorRequest < Struct.new(
999
+ :monitor_arn)
1000
+ SENSITIVE = []
1001
+ include Aws::Structure
1002
+ end
1003
+
1004
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitorResponse AWS API Documentation
1005
+ #
1006
+ class DeleteAnomalyMonitorResponse < Aws::EmptyStructure; end
1007
+
1008
+ # @note When making an API call, you may pass DeleteAnomalySubscriptionRequest
1009
+ # data as a hash:
1010
+ #
1011
+ # {
1012
+ # subscription_arn: "GenericString", # required
1013
+ # }
1014
+ #
1015
+ # @!attribute [rw] subscription_arn
1016
+ # The unique identifier of the cost anomaly subscription that you want
1017
+ # to delete.
1018
+ # @return [String]
1019
+ #
1020
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscriptionRequest AWS API Documentation
1021
+ #
1022
+ class DeleteAnomalySubscriptionRequest < Struct.new(
1023
+ :subscription_arn)
1024
+ SENSITIVE = []
1025
+ include Aws::Structure
1026
+ end
1027
+
1028
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscriptionResponse AWS API Documentation
1029
+ #
1030
+ class DeleteAnomalySubscriptionResponse < Aws::EmptyStructure; end
1031
+
550
1032
  # @note When making an API call, you may pass DeleteCostCategoryDefinitionRequest
551
1033
  # data as a hash:
552
1034
  #
@@ -649,7 +1131,7 @@ module Aws::CostExplorer
649
1131
  # @!attribute [rw] match_options
650
1132
  # The match options that you can use to filter your results.
651
1133
  # `MatchOptions` is only applicable for actions related to Cost
652
- # Category. The default values for `MatchOptions` is `EQUALS` and
1134
+ # Category. The default values for `MatchOptions` are `EQUALS` and
653
1135
  # `CASE_SENSITIVE`.
654
1136
  # @return [Array<String>]
655
1137
  #
@@ -684,6 +1166,36 @@ module Aws::CostExplorer
684
1166
  include Aws::Structure
685
1167
  end
686
1168
 
1169
+ # The EBS field that contains a list of EBS metrics associated with the
1170
+ # current instance.
1171
+ #
1172
+ # @!attribute [rw] ebs_read_ops_per_second
1173
+ # The maximum number of read operations per second.
1174
+ # @return [String]
1175
+ #
1176
+ # @!attribute [rw] ebs_write_ops_per_second
1177
+ # The maximum number of write operations per second.
1178
+ # @return [String]
1179
+ #
1180
+ # @!attribute [rw] ebs_read_bytes_per_second
1181
+ # The maximum size of read operations per second
1182
+ # @return [String]
1183
+ #
1184
+ # @!attribute [rw] ebs_write_bytes_per_second
1185
+ # The maximum size of write operations per second.
1186
+ # @return [String]
1187
+ #
1188
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EBSResourceUtilization AWS API Documentation
1189
+ #
1190
+ class EBSResourceUtilization < Struct.new(
1191
+ :ebs_read_ops_per_second,
1192
+ :ebs_write_ops_per_second,
1193
+ :ebs_read_bytes_per_second,
1194
+ :ebs_write_bytes_per_second)
1195
+ SENSITIVE = []
1196
+ include Aws::Structure
1197
+ end
1198
+
687
1199
  # Details about the Amazon EC2 instances that AWS recommends that you
688
1200
  # purchase.
689
1201
  #
@@ -739,21 +1251,21 @@ module Aws::CostExplorer
739
1251
  # Details on the Amazon EC2 Resource.
740
1252
  #
741
1253
  # @!attribute [rw] hourly_on_demand_rate
742
- # Hourly public On Demand rate for the instance type.
1254
+ # Hourly public On-Demand rate for the instance type.
743
1255
  # @return [String]
744
1256
  #
745
1257
  # @!attribute [rw] instance_type
746
- # The type of Amazon Web Services instance.
1258
+ # The type of AWS instance.
747
1259
  # @return [String]
748
1260
  #
749
1261
  # @!attribute [rw] platform
750
- # The platform of the Amazon Web Services instance. The platform is
751
- # the specific combination of operating system, license model, and
752
- # software on an instance.
1262
+ # The platform of the AWS instance. The platform is the specific
1263
+ # combination of operating system, license model, and software on an
1264
+ # instance.
753
1265
  # @return [String]
754
1266
  #
755
1267
  # @!attribute [rw] region
756
- # The Amazon Web Services Region of the instance.
1268
+ # The AWS Region of the instance.
757
1269
  # @return [String]
758
1270
  #
759
1271
  # @!attribute [rw] sku
@@ -761,20 +1273,19 @@ module Aws::CostExplorer
761
1273
  # @return [String]
762
1274
  #
763
1275
  # @!attribute [rw] memory
764
- # Memory capacity of Amazon Web Services instance.
1276
+ # Memory capacity of the AWS instance.
765
1277
  # @return [String]
766
1278
  #
767
1279
  # @!attribute [rw] network_performance
768
- # Network performance capacity of the Amazon Web Services instance.
1280
+ # Network performance capacity of the AWS instance.
769
1281
  # @return [String]
770
1282
  #
771
1283
  # @!attribute [rw] storage
772
- # The disk storage of the Amazon Web Services instance (Not EBS
773
- # storage).
1284
+ # The disk storage of the AWS instance (not EBS storage).
774
1285
  # @return [String]
775
1286
  #
776
1287
  # @!attribute [rw] vcpu
777
- # Number of VCPU cores in the Amazon Web Services instance type.
1288
+ # Number of VCPU cores in the AWS instance type.
778
1289
  # @return [String]
779
1290
  #
780
1291
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2ResourceDetails AWS API Documentation
@@ -808,12 +1319,18 @@ module Aws::CostExplorer
808
1319
  # (does not measure EBS storage).
809
1320
  # @return [String]
810
1321
  #
1322
+ # @!attribute [rw] ebs_resource_utilization
1323
+ # The EBS field that contains a list of EBS metrics associated with
1324
+ # the current instance.
1325
+ # @return [Types::EBSResourceUtilization]
1326
+ #
811
1327
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2ResourceUtilization AWS API Documentation
812
1328
  #
813
1329
  class EC2ResourceUtilization < Struct.new(
814
1330
  :max_cpu_utilization_percentage,
815
1331
  :max_memory_utilization_percentage,
816
- :max_storage_utilization_percentage)
1332
+ :max_storage_utilization_percentage,
1333
+ :ebs_resource_utilization)
817
1334
  SENSITIVE = []
818
1335
  include Aws::Structure
819
1336
  end
@@ -921,8 +1438,10 @@ module Aws::CostExplorer
921
1438
  #
922
1439
  # * Simple dimension values - You can set the dimension name and values
923
1440
  # for the filters that you plan to use. For example, you can filter
924
- # for `REGION==us-east-1 OR REGION==us-west-1`. The `Expression` for
925
- # that looks like this:
1441
+ # for `REGION==us-east-1 OR REGION==us-west-1`. For
1442
+ # `GetRightsizingRecommendation`, the Region is a full name (for
1443
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
1444
+ # looks like:
926
1445
  #
927
1446
  # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
928
1447
  # “us-west-1” ] \} \}`
@@ -1068,64 +1587,259 @@ module Aws::CostExplorer
1068
1587
  # Return results that match either `Dimension` object.
1069
1588
  # @return [Array<Types::Expression>]
1070
1589
  #
1071
- # @!attribute [rw] and
1072
- # Return results that match both `Dimension` objects.
1073
- # @return [Array<Types::Expression>]
1590
+ # @!attribute [rw] and
1591
+ # Return results that match both `Dimension` objects.
1592
+ # @return [Array<Types::Expression>]
1593
+ #
1594
+ # @!attribute [rw] not
1595
+ # Return results that don't match a `Dimension` object.
1596
+ # @return [Types::Expression]
1597
+ #
1598
+ # @!attribute [rw] dimensions
1599
+ # The specific `Dimension` to use for `Expression`.
1600
+ # @return [Types::DimensionValues]
1601
+ #
1602
+ # @!attribute [rw] tags
1603
+ # The specific `Tag` to use for `Expression`.
1604
+ # @return [Types::TagValues]
1605
+ #
1606
+ # @!attribute [rw] cost_categories
1607
+ # The filter based on `CostCategory` values.
1608
+ # @return [Types::CostCategoryValues]
1609
+ #
1610
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Expression AWS API Documentation
1611
+ #
1612
+ class Expression < Struct.new(
1613
+ :or,
1614
+ :and,
1615
+ :not,
1616
+ :dimensions,
1617
+ :tags,
1618
+ :cost_categories)
1619
+ SENSITIVE = []
1620
+ include Aws::Structure
1621
+ end
1622
+
1623
+ # The forecast created for your query.
1624
+ #
1625
+ # @!attribute [rw] time_period
1626
+ # The period of time that the forecast covers.
1627
+ # @return [Types::DateInterval]
1628
+ #
1629
+ # @!attribute [rw] mean_value
1630
+ # The mean value of the forecast.
1631
+ # @return [String]
1632
+ #
1633
+ # @!attribute [rw] prediction_interval_lower_bound
1634
+ # The lower limit for the prediction interval.
1635
+ # @return [String]
1636
+ #
1637
+ # @!attribute [rw] prediction_interval_upper_bound
1638
+ # The upper limit for the prediction interval.
1639
+ # @return [String]
1640
+ #
1641
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ForecastResult AWS API Documentation
1642
+ #
1643
+ class ForecastResult < Struct.new(
1644
+ :time_period,
1645
+ :mean_value,
1646
+ :prediction_interval_lower_bound,
1647
+ :prediction_interval_upper_bound)
1648
+ SENSITIVE = []
1649
+ include Aws::Structure
1650
+ end
1651
+
1652
+ # @note When making an API call, you may pass GetAnomaliesRequest
1653
+ # data as a hash:
1654
+ #
1655
+ # {
1656
+ # monitor_arn: "GenericString",
1657
+ # date_interval: { # required
1658
+ # start_date: "YearMonthDay", # required
1659
+ # end_date: "YearMonthDay",
1660
+ # },
1661
+ # feedback: "YES", # accepts YES, NO, PLANNED_ACTIVITY
1662
+ # total_impact: {
1663
+ # numeric_operator: "EQUAL", # required, accepts EQUAL, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, BETWEEN
1664
+ # start_value: 1.0, # required
1665
+ # end_value: 1.0,
1666
+ # },
1667
+ # next_page_token: "NextPageToken",
1668
+ # max_results: 1,
1669
+ # }
1670
+ #
1671
+ # @!attribute [rw] monitor_arn
1672
+ # Retrieves all of the cost anomalies detected for a specific cost
1673
+ # anomaly monitor Amazon Resource Name (ARN).
1674
+ # @return [String]
1675
+ #
1676
+ # @!attribute [rw] date_interval
1677
+ # Assigns the start and end dates for retrieving cost anomalies. The
1678
+ # returned anomaly object will have an `AnomalyEndDate` in the
1679
+ # specified time range.
1680
+ # @return [Types::AnomalyDateInterval]
1681
+ #
1682
+ # @!attribute [rw] feedback
1683
+ # Filters anomaly results by the feedback field on the anomaly object.
1684
+ # @return [String]
1685
+ #
1686
+ # @!attribute [rw] total_impact
1687
+ # Filters anomaly results by the total impact field on the anomaly
1688
+ # object. For example, you can filter anomalies `GREATER_THAN 200.00`
1689
+ # to retrieve anomalies, with an estimated dollar impact greater than
1690
+ # 200.
1691
+ # @return [Types::TotalImpactFilter]
1692
+ #
1693
+ # @!attribute [rw] next_page_token
1694
+ # The token to retrieve the next set of results. AWS provides the
1695
+ # token when the response from a previous call has more results than
1696
+ # the maximum page size.
1697
+ # @return [String]
1698
+ #
1699
+ # @!attribute [rw] max_results
1700
+ # The number of entries a paginated response contains.
1701
+ # @return [Integer]
1702
+ #
1703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomaliesRequest AWS API Documentation
1704
+ #
1705
+ class GetAnomaliesRequest < Struct.new(
1706
+ :monitor_arn,
1707
+ :date_interval,
1708
+ :feedback,
1709
+ :total_impact,
1710
+ :next_page_token,
1711
+ :max_results)
1712
+ SENSITIVE = []
1713
+ include Aws::Structure
1714
+ end
1715
+
1716
+ # @!attribute [rw] anomalies
1717
+ # A list of cost anomalies.
1718
+ # @return [Array<Types::Anomaly>]
1719
+ #
1720
+ # @!attribute [rw] next_page_token
1721
+ # The token to retrieve the next set of results. AWS provides the
1722
+ # token when the response from a previous call has more results than
1723
+ # the maximum page size.
1724
+ # @return [String]
1725
+ #
1726
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomaliesResponse AWS API Documentation
1727
+ #
1728
+ class GetAnomaliesResponse < Struct.new(
1729
+ :anomalies,
1730
+ :next_page_token)
1731
+ SENSITIVE = []
1732
+ include Aws::Structure
1733
+ end
1734
+
1735
+ # @note When making an API call, you may pass GetAnomalyMonitorsRequest
1736
+ # data as a hash:
1737
+ #
1738
+ # {
1739
+ # monitor_arn_list: ["Value"],
1740
+ # next_page_token: "NextPageToken",
1741
+ # max_results: 1,
1742
+ # }
1743
+ #
1744
+ # @!attribute [rw] monitor_arn_list
1745
+ # A list of cost anomaly monitor ARNs.
1746
+ # @return [Array<String>]
1747
+ #
1748
+ # @!attribute [rw] next_page_token
1749
+ # The token to retrieve the next set of results. AWS provides the
1750
+ # token when the response from a previous call has more results than
1751
+ # the maximum page size.
1752
+ # @return [String]
1074
1753
  #
1075
- # @!attribute [rw] not
1076
- # Return results that don't match a `Dimension` object.
1077
- # @return [Types::Expression]
1754
+ # @!attribute [rw] max_results
1755
+ # The number of entries a paginated response contains.
1756
+ # @return [Integer]
1078
1757
  #
1079
- # @!attribute [rw] dimensions
1080
- # The specific `Dimension` to use for `Expression`.
1081
- # @return [Types::DimensionValues]
1758
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitorsRequest AWS API Documentation
1082
1759
  #
1083
- # @!attribute [rw] tags
1084
- # The specific `Tag` to use for `Expression`.
1085
- # @return [Types::TagValues]
1760
+ class GetAnomalyMonitorsRequest < Struct.new(
1761
+ :monitor_arn_list,
1762
+ :next_page_token,
1763
+ :max_results)
1764
+ SENSITIVE = []
1765
+ include Aws::Structure
1766
+ end
1767
+
1768
+ # @!attribute [rw] anomaly_monitors
1769
+ # A list of cost anomaly monitors that includes the detailed metadata
1770
+ # for each monitor.
1771
+ # @return [Array<Types::AnomalyMonitor>]
1086
1772
  #
1087
- # @!attribute [rw] cost_categories
1088
- # The filter based on `CostCategory` values.
1089
- # @return [Types::CostCategoryValues]
1773
+ # @!attribute [rw] next_page_token
1774
+ # The token to retrieve the next set of results. AWS provides the
1775
+ # token when the response from a previous call has more results than
1776
+ # the maximum page size.
1777
+ # @return [String]
1090
1778
  #
1091
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Expression AWS API Documentation
1779
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitorsResponse AWS API Documentation
1092
1780
  #
1093
- class Expression < Struct.new(
1094
- :or,
1095
- :and,
1096
- :not,
1097
- :dimensions,
1098
- :tags,
1099
- :cost_categories)
1781
+ class GetAnomalyMonitorsResponse < Struct.new(
1782
+ :anomaly_monitors,
1783
+ :next_page_token)
1100
1784
  SENSITIVE = []
1101
1785
  include Aws::Structure
1102
1786
  end
1103
1787
 
1104
- # The forecast created for your query.
1788
+ # @note When making an API call, you may pass GetAnomalySubscriptionsRequest
1789
+ # data as a hash:
1105
1790
  #
1106
- # @!attribute [rw] time_period
1107
- # The period of time that the forecast covers.
1108
- # @return [Types::DateInterval]
1791
+ # {
1792
+ # subscription_arn_list: ["Value"],
1793
+ # monitor_arn: "GenericString",
1794
+ # next_page_token: "NextPageToken",
1795
+ # max_results: 1,
1796
+ # }
1109
1797
  #
1110
- # @!attribute [rw] mean_value
1111
- # The mean value of the forecast.
1798
+ # @!attribute [rw] subscription_arn_list
1799
+ # A list of cost anomaly subscription ARNs.
1800
+ # @return [Array<String>]
1801
+ #
1802
+ # @!attribute [rw] monitor_arn
1803
+ # Cost anomaly monitor ARNs.
1112
1804
  # @return [String]
1113
1805
  #
1114
- # @!attribute [rw] prediction_interval_lower_bound
1115
- # The lower limit for the prediction interval.
1806
+ # @!attribute [rw] next_page_token
1807
+ # The token to retrieve the next set of results. AWS provides the
1808
+ # token when the response from a previous call has more results than
1809
+ # the maximum page size.
1116
1810
  # @return [String]
1117
1811
  #
1118
- # @!attribute [rw] prediction_interval_upper_bound
1119
- # The upper limit for the prediction interval.
1812
+ # @!attribute [rw] max_results
1813
+ # The number of entries a paginated response contains.
1814
+ # @return [Integer]
1815
+ #
1816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptionsRequest AWS API Documentation
1817
+ #
1818
+ class GetAnomalySubscriptionsRequest < Struct.new(
1819
+ :subscription_arn_list,
1820
+ :monitor_arn,
1821
+ :next_page_token,
1822
+ :max_results)
1823
+ SENSITIVE = []
1824
+ include Aws::Structure
1825
+ end
1826
+
1827
+ # @!attribute [rw] anomaly_subscriptions
1828
+ # A list of cost anomaly subscriptions that includes the detailed
1829
+ # metadata for each one.
1830
+ # @return [Array<Types::AnomalySubscription>]
1831
+ #
1832
+ # @!attribute [rw] next_page_token
1833
+ # The token to retrieve the next set of results. AWS provides the
1834
+ # token when the response from a previous call has more results than
1835
+ # the maximum page size.
1120
1836
  # @return [String]
1121
1837
  #
1122
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ForecastResult AWS API Documentation
1838
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptionsResponse AWS API Documentation
1123
1839
  #
1124
- class ForecastResult < Struct.new(
1125
- :time_period,
1126
- :mean_value,
1127
- :prediction_interval_lower_bound,
1128
- :prediction_interval_upper_bound)
1840
+ class GetAnomalySubscriptionsResponse < Struct.new(
1841
+ :anomaly_subscriptions,
1842
+ :next_page_token)
1129
1843
  SENSITIVE = []
1130
1844
  include Aws::Structure
1131
1845
  end
@@ -1168,7 +1882,7 @@ module Aws::CostExplorer
1168
1882
  # values: ["Value"],
1169
1883
  # },
1170
1884
  # },
1171
- # metrics: ["MetricName"],
1885
+ # metrics: ["MetricName"], # required
1172
1886
  # group_by: [
1173
1887
  # {
1174
1888
  # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
@@ -1232,7 +1946,7 @@ module Aws::CostExplorer
1232
1946
  #
1233
1947
  # @!attribute [rw] group_by
1234
1948
  # You can group AWS costs using up to two different groups, either
1235
- # dimensions, tag keys, or both.
1949
+ # dimensions, tag keys, cost categories, or any two group by types.
1236
1950
  #
1237
1951
  # When you group by tag key, you get all tag values, including empty
1238
1952
  # strings.
@@ -1295,7 +2009,7 @@ module Aws::CostExplorer
1295
2009
  # end: "YearMonthDay", # required
1296
2010
  # },
1297
2011
  # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
1298
- # filter: {
2012
+ # filter: { # required
1299
2013
  # or: [
1300
2014
  # {
1301
2015
  # # recursive Expression
@@ -1358,7 +2072,9 @@ module Aws::CostExplorer
1358
2072
  # of dimension filters. For more information, see [Expression][1].
1359
2073
  #
1360
2074
  # The `GetCostAndUsageWithResources` operation requires that you
1361
- # either group by or filter by a `ResourceId`.
2075
+ # either group by or filter by a `ResourceId`. It requires the
2076
+ # [Expression][1] `"SERVICE = Amazon Elastic Compute Cloud - Compute"`
2077
+ # in the filter.
1362
2078
  #
1363
2079
  #
1364
2080
  #
@@ -1483,7 +2199,9 @@ module Aws::CostExplorer
1483
2199
  # }
1484
2200
  #
1485
2201
  # @!attribute [rw] time_period
1486
- # The period of time that you want the forecast to cover.
2202
+ # The period of time that you want the forecast to cover. The start
2203
+ # date must be equal to or no later than the current date to avoid a
2204
+ # validation error.
1487
2205
  # @return [Types::DateInterval]
1488
2206
  #
1489
2207
  # @!attribute [rw] metric
@@ -1643,6 +2361,8 @@ module Aws::CostExplorer
1643
2361
  # example is Amazon EC2: CloudWatch – Alarms. The response for this
1644
2362
  # operation includes a unit attribute.
1645
2363
  #
2364
+ # * REGION - The AWS Region.
2365
+ #
1646
2366
  # * RECORD\_TYPE - The different types of charges such as RI fees,
1647
2367
  # usage costs, tax refunds, and credits.
1648
2368
  #
@@ -2070,9 +2790,9 @@ module Aws::CostExplorer
2070
2790
  #
2071
2791
  # @!attribute [rw] account_scope
2072
2792
  # The account scope that you want your recommendations for. Amazon Web
2073
- # Services calculates recommendations including the payer account and
2074
- # linked accounts if the value is set to `PAYER`. If the value is
2075
- # `LINKED`, recommendations are calculated for individual linked
2793
+ # Services calculates recommendations including the master account and
2794
+ # member accounts if the value is set to `PAYER`. If the value is
2795
+ # `LINKED`, recommendations are calculated for individual member
2076
2796
  # accounts only.
2077
2797
  # @return [String]
2078
2798
  #
@@ -2339,8 +3059,10 @@ module Aws::CostExplorer
2339
3059
  #
2340
3060
  # * Simple dimension values - You can set the dimension name and
2341
3061
  # values for the filters that you plan to use. For example, you can
2342
- # filter for `REGION==us-east-1 OR REGION==us-west-1`. The
2343
- # `Expression` for that looks like this:
3062
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3063
+ # `GetRightsizingRecommendation`, the Region is a full name (for
3064
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
3065
+ # looks like:
2344
3066
  #
2345
3067
  # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2346
3068
  # “us-west-1” ] \} \}`
@@ -2654,9 +3376,9 @@ module Aws::CostExplorer
2654
3376
  #
2655
3377
  # @!attribute [rw] account_scope
2656
3378
  # The account scope that you want your recommendations for. Amazon Web
2657
- # Services calculates recommendations including the payer account and
2658
- # linked accounts if the value is set to `PAYER`. If the value is
2659
- # `LINKED`, recommendations are calculated for individual linked
3379
+ # Services calculates recommendations including the master account and
3380
+ # member accounts if the value is set to `PAYER`. If the value is
3381
+ # `LINKED`, recommendations are calculated for individual member
2660
3382
  # accounts only.
2661
3383
  # @return [String]
2662
3384
  #
@@ -3085,7 +3807,8 @@ module Aws::CostExplorer
3085
3807
  # exclusive. For example, if `start` is `2017-01-01` and `end` is
3086
3808
  # `2017-05-01`, then the cost and usage data is retrieved from
3087
3809
  # `2017-01-01` up to and including `2017-04-30` but not including
3088
- # `2017-05-01`.
3810
+ # `2017-05-01`. The start date must be equal to or later than the
3811
+ # current date to avoid a validation error.
3089
3812
  # @return [Types::DateInterval]
3090
3813
  #
3091
3814
  # @!attribute [rw] metric
@@ -3198,6 +3921,25 @@ module Aws::CostExplorer
3198
3921
  include Aws::Structure
3199
3922
  end
3200
3923
 
3924
+ # The anomaly's dollar value.
3925
+ #
3926
+ # @!attribute [rw] max_impact
3927
+ # The maximum dollar value observed for an anomaly.
3928
+ # @return [Float]
3929
+ #
3930
+ # @!attribute [rw] total_impact
3931
+ # The cumulative dollar value observed for an anomaly.
3932
+ # @return [Float]
3933
+ #
3934
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Impact AWS API Documentation
3935
+ #
3936
+ class Impact < Struct.new(
3937
+ :max_impact,
3938
+ :total_impact)
3939
+ SENSITIVE = []
3940
+ include Aws::Structure
3941
+ end
3942
+
3201
3943
  # Details about the instances that AWS recommends that you purchase.
3202
3944
  #
3203
3945
  # @!attribute [rw] ec2_instance_details
@@ -3333,8 +4075,8 @@ module Aws::CostExplorer
3333
4075
  # Details on the modification recommendation.
3334
4076
  #
3335
4077
  # @!attribute [rw] target_instances
3336
- # Identifies whether this instance type is the Amazon Web Services
3337
- # default recommendation.
4078
+ # Identifies whether this instance type is the AWS default
4079
+ # recommendation.
3338
4080
  # @return [Array<Types::TargetInstance>]
3339
4081
  #
3340
4082
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ModifyRecommendationDetail AWS API Documentation
@@ -3345,6 +4087,44 @@ module Aws::CostExplorer
3345
4087
  include Aws::Structure
3346
4088
  end
3347
4089
 
4090
+ # @note When making an API call, you may pass ProvideAnomalyFeedbackRequest
4091
+ # data as a hash:
4092
+ #
4093
+ # {
4094
+ # anomaly_id: "GenericString", # required
4095
+ # feedback: "YES", # required, accepts YES, NO, PLANNED_ACTIVITY
4096
+ # }
4097
+ #
4098
+ # @!attribute [rw] anomaly_id
4099
+ # A cost anomaly ID.
4100
+ # @return [String]
4101
+ #
4102
+ # @!attribute [rw] feedback
4103
+ # Describes whether the cost anomaly was a planned activity or you
4104
+ # considered it an anomaly.
4105
+ # @return [String]
4106
+ #
4107
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedbackRequest AWS API Documentation
4108
+ #
4109
+ class ProvideAnomalyFeedbackRequest < Struct.new(
4110
+ :anomaly_id,
4111
+ :feedback)
4112
+ SENSITIVE = []
4113
+ include Aws::Structure
4114
+ end
4115
+
4116
+ # @!attribute [rw] anomaly_id
4117
+ # The ID of the modified cost anomaly.
4118
+ # @return [String]
4119
+ #
4120
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedbackResponse AWS API Documentation
4121
+ #
4122
+ class ProvideAnomalyFeedbackResponse < Struct.new(
4123
+ :anomaly_id)
4124
+ SENSITIVE = []
4125
+ include Aws::Structure
4126
+ end
4127
+
3348
4128
  # Details about the Amazon RDS instances that AWS recommends that you
3349
4129
  # purchase.
3350
4130
  #
@@ -3843,7 +4623,7 @@ module Aws::CostExplorer
3843
4623
  # Resource utilization of current resource.
3844
4624
  #
3845
4625
  # @!attribute [rw] ec2_resource_utilization
3846
- # Utilization of current Amazon EC2 Instance
4626
+ # Utilization of current Amazon EC2 instance.
3847
4627
  # @return [Types::EC2ResourceUtilization]
3848
4628
  #
3849
4629
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceUtilization AWS API Documentation
@@ -3959,12 +4739,12 @@ module Aws::CostExplorer
3959
4739
  # @return [String]
3960
4740
  #
3961
4741
  # @!attribute [rw] generation_timestamp
3962
- # The timestamp for when Amazon Web Services made this recommendation.
4742
+ # The timestamp for when AWS made this recommendation.
3963
4743
  # @return [String]
3964
4744
  #
3965
4745
  # @!attribute [rw] lookback_period_in_days
3966
- # How many days of previous usage that Amazon Web Services considers
3967
- # when making this recommendation.
4746
+ # How many days of previous usage that AWS considers when making this
4747
+ # recommendation.
3968
4748
  # @return [String]
3969
4749
  #
3970
4750
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendationMetadata AWS API Documentation
@@ -3989,8 +4769,7 @@ module Aws::CostExplorer
3989
4769
  # @return [String]
3990
4770
  #
3991
4771
  # @!attribute [rw] savings_currency_code
3992
- # The currency code that Amazon Web Services used to calculate the
3993
- # savings.
4772
+ # The currency code that AWS used to calculate the savings.
3994
4773
  # @return [String]
3995
4774
  #
3996
4775
  # @!attribute [rw] savings_percentage
@@ -4009,6 +4788,36 @@ module Aws::CostExplorer
4009
4788
  include Aws::Structure
4010
4789
  end
4011
4790
 
4791
+ # The combination of AWS service, linked account, Region, and usage type
4792
+ # where a cost anomaly is observed.
4793
+ #
4794
+ # @!attribute [rw] service
4795
+ # The AWS service name associated with the cost anomaly.
4796
+ # @return [String]
4797
+ #
4798
+ # @!attribute [rw] region
4799
+ # The AWS Region associated with the cost anomaly.
4800
+ # @return [String]
4801
+ #
4802
+ # @!attribute [rw] linked_account
4803
+ # The linked account value associated with the cost anomaly.
4804
+ # @return [String]
4805
+ #
4806
+ # @!attribute [rw] usage_type
4807
+ # The `UsageType` value associated with the cost anomaly.
4808
+ # @return [String]
4809
+ #
4810
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RootCause AWS API Documentation
4811
+ #
4812
+ class RootCause < Struct.new(
4813
+ :service,
4814
+ :region,
4815
+ :linked_account,
4816
+ :usage_type)
4817
+ SENSITIVE = []
4818
+ include Aws::Structure
4819
+ end
4820
+
4012
4821
  # The amortized amount of Savings Plans purchased in a specific account
4013
4822
  # during a specific time interval.
4014
4823
  #
@@ -4068,18 +4877,16 @@ module Aws::CostExplorer
4068
4877
  # Savings Plans, and total Savings Plans costs for an account.
4069
4878
  #
4070
4879
  # @!attribute [rw] spend_covered_by_savings_plans
4071
- # The amount of your Amazon Web Services usage that is covered by a
4072
- # Savings Plans.
4880
+ # The amount of your AWS usage that is covered by a Savings Plans.
4073
4881
  # @return [String]
4074
4882
  #
4075
4883
  # @!attribute [rw] on_demand_cost
4076
- # The cost of your Amazon Web Services usage at the public On-Demand
4077
- # rate.
4884
+ # The cost of your AWS usage at the public On-Demand rate.
4078
4885
  # @return [String]
4079
4886
  #
4080
4887
  # @!attribute [rw] total_cost
4081
- # The total cost of your Amazon Web Services usage, regardless of your
4082
- # purchase option.
4888
+ # The total cost of your AWS usage, regardless of your purchase
4889
+ # option.
4083
4890
  # @return [String]
4084
4891
  #
4085
4892
  # @!attribute [rw] coverage_percentage
@@ -4129,9 +4936,9 @@ module Aws::CostExplorer
4129
4936
  #
4130
4937
  # @!attribute [rw] account_scope
4131
4938
  # The account scope that you want your recommendations for. Amazon Web
4132
- # Services calculates recommendations including the payer account and
4133
- # linked accounts if the value is set to `PAYER`. If the value is
4134
- # `LINKED`, recommendations are calculated for individual linked
4939
+ # Services calculates recommendations including the master account and
4940
+ # member accounts if the value is set to `PAYER`. If the value is
4941
+ # `LINKED`, recommendations are calculated for individual member
4135
4942
  # accounts only.
4136
4943
  # @return [String]
4137
4944
  #
@@ -4197,8 +5004,8 @@ module Aws::CostExplorer
4197
5004
  # @return [String]
4198
5005
  #
4199
5006
  # @!attribute [rw] currency_code
4200
- # The currency code Amazon Web Services used to generate the
4201
- # recommendations and present potential savings.
5007
+ # The currency code AWS used to generate the recommendations and
5008
+ # present potential savings.
4202
5009
  # @return [String]
4203
5010
  #
4204
5011
  # @!attribute [rw] estimated_sp_cost
@@ -4306,8 +5113,8 @@ module Aws::CostExplorer
4306
5113
  # @return [String]
4307
5114
  #
4308
5115
  # @!attribute [rw] currency_code
4309
- # The currency code Amazon Web Services used to generate the
4310
- # recommendations and present potential savings.
5116
+ # The currency code AWS used to generate the recommendations and
5117
+ # present potential savings.
4311
5118
  # @return [String]
4312
5119
  #
4313
5120
  # @!attribute [rw] estimated_total_cost
@@ -4495,7 +5302,7 @@ module Aws::CostExplorer
4495
5302
  end
4496
5303
 
4497
5304
  # A single daily or monthly Savings Plans utilization rate, and details
4498
- # for your account. Master accounts in an organization have access to
5305
+ # for your account. A master account in an organization have access to
4499
5306
  # member accounts. You can use `GetDimensionValues` to determine the
4500
5307
  # possible dimension values.
4501
5308
  #
@@ -4537,7 +5344,7 @@ module Aws::CostExplorer
4537
5344
  end
4538
5345
 
4539
5346
  # You've reached the limit on the number of resources you can create,
4540
- # or exceeded the size of an individual resources.
5347
+ # or exceeded the size of an individual resource.
4541
5348
  #
4542
5349
  # @!attribute [rw] message
4543
5350
  # @return [String]
@@ -4575,6 +5382,40 @@ module Aws::CostExplorer
4575
5382
  include Aws::Structure
4576
5383
  end
4577
5384
 
5385
+ # The recipient of `AnomalySubscription` notifications.
5386
+ #
5387
+ # @note When making an API call, you may pass Subscriber
5388
+ # data as a hash:
5389
+ #
5390
+ # {
5391
+ # address: "SubscriberAddress",
5392
+ # type: "EMAIL", # accepts EMAIL, SNS
5393
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
5394
+ # }
5395
+ #
5396
+ # @!attribute [rw] address
5397
+ # The email address or SNS Amazon Resource Name (ARN), depending on
5398
+ # the `Type`.
5399
+ # @return [String]
5400
+ #
5401
+ # @!attribute [rw] type
5402
+ # The notification delivery channel.
5403
+ # @return [String]
5404
+ #
5405
+ # @!attribute [rw] status
5406
+ # Indicates if the subscriber accepts the notifications.
5407
+ # @return [String]
5408
+ #
5409
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Subscriber AWS API Documentation
5410
+ #
5411
+ class Subscriber < Struct.new(
5412
+ :address,
5413
+ :type,
5414
+ :status)
5415
+ SENSITIVE = []
5416
+ include Aws::Structure
5417
+ end
5418
+
4578
5419
  # The values that are available for a tag.
4579
5420
  #
4580
5421
  # @note When making an API call, you may pass TagValues
@@ -4596,9 +5437,9 @@ module Aws::CostExplorer
4596
5437
  #
4597
5438
  # @!attribute [rw] match_options
4598
5439
  # The match options that you can use to filter your results.
4599
- # `MatchOptions` is only applicable for only applicable for actions
4600
- # related to Cost Category. The default values for `MatchOptions` is
4601
- # `EQUALS` and `CASE_SENSITIVE`.
5440
+ # `MatchOptions` is only applicable for actions related to Cost
5441
+ # Category. The default values for `MatchOptions` are `EQUALS` and
5442
+ # `CASE_SENSITIVE`.
4602
5443
  # @return [Array<String>]
4603
5444
  #
4604
5445
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TagValues AWS API Documentation
@@ -4622,13 +5463,13 @@ module Aws::CostExplorer
4622
5463
  # @return [String]
4623
5464
  #
4624
5465
  # @!attribute [rw] currency_code
4625
- # The currency code that Amazon Web Services used to calculate the
4626
- # costs for this instance.
5466
+ # The currency code that AWS used to calculate the costs for this
5467
+ # instance.
4627
5468
  # @return [String]
4628
5469
  #
4629
5470
  # @!attribute [rw] default_target_instance
4630
- # Indicates whether or not this recommendation is the defaulted Amazon
4631
- # Web Services recommendation.
5471
+ # Indicates whether this recommendation is the defaulted AWS
5472
+ # recommendation.
4632
5473
  # @return [Boolean]
4633
5474
  #
4634
5475
  # @!attribute [rw] resource_details
@@ -4659,8 +5500,8 @@ module Aws::CostExplorer
4659
5500
  # @return [String]
4660
5501
  #
4661
5502
  # @!attribute [rw] currency_code
4662
- # The currency code that Amazon Web Services used to calculate the
4663
- # costs for this instance.
5503
+ # The currency code that AWS used to calculate the costs for this
5504
+ # instance.
4664
5505
  # @return [String]
4665
5506
  #
4666
5507
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TerminateRecommendationDetail AWS API Documentation
@@ -4672,6 +5513,65 @@ module Aws::CostExplorer
4672
5513
  include Aws::Structure
4673
5514
  end
4674
5515
 
5516
+ # Filters cost anomalies based on the total impact.
5517
+ #
5518
+ # @note When making an API call, you may pass TotalImpactFilter
5519
+ # data as a hash:
5520
+ #
5521
+ # {
5522
+ # numeric_operator: "EQUAL", # required, accepts EQUAL, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, BETWEEN
5523
+ # start_value: 1.0, # required
5524
+ # end_value: 1.0,
5525
+ # }
5526
+ #
5527
+ # @!attribute [rw] numeric_operator
5528
+ # The comparing value used in the filter.
5529
+ # @return [String]
5530
+ #
5531
+ # @!attribute [rw] start_value
5532
+ # The lower bound dollar value used in the filter.
5533
+ # @return [Float]
5534
+ #
5535
+ # @!attribute [rw] end_value
5536
+ # The upper bound dollar value used in the filter.
5537
+ # @return [Float]
5538
+ #
5539
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TotalImpactFilter AWS API Documentation
5540
+ #
5541
+ class TotalImpactFilter < Struct.new(
5542
+ :numeric_operator,
5543
+ :start_value,
5544
+ :end_value)
5545
+ SENSITIVE = []
5546
+ include Aws::Structure
5547
+ end
5548
+
5549
+ # The cost anomaly monitor does not exist for the account.
5550
+ #
5551
+ # @!attribute [rw] message
5552
+ # @return [String]
5553
+ #
5554
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UnknownMonitorException AWS API Documentation
5555
+ #
5556
+ class UnknownMonitorException < Struct.new(
5557
+ :message)
5558
+ SENSITIVE = []
5559
+ include Aws::Structure
5560
+ end
5561
+
5562
+ # The cost anomaly subscription does not exist for the account.
5563
+ #
5564
+ # @!attribute [rw] message
5565
+ # @return [String]
5566
+ #
5567
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UnknownSubscriptionException AWS API Documentation
5568
+ #
5569
+ class UnknownSubscriptionException < Struct.new(
5570
+ :message)
5571
+ SENSITIVE = []
5572
+ include Aws::Structure
5573
+ end
5574
+
4675
5575
  # Cost Explorer was unable to identify the usage unit. Provide
4676
5576
  # `UsageType/UsageTypeGroup` filter selections that contain matching
4677
5577
  # units, for example: `hours`.
@@ -4687,6 +5587,111 @@ module Aws::CostExplorer
4687
5587
  include Aws::Structure
4688
5588
  end
4689
5589
 
5590
+ # @note When making an API call, you may pass UpdateAnomalyMonitorRequest
5591
+ # data as a hash:
5592
+ #
5593
+ # {
5594
+ # monitor_arn: "GenericString", # required
5595
+ # monitor_name: "GenericString",
5596
+ # }
5597
+ #
5598
+ # @!attribute [rw] monitor_arn
5599
+ # Cost anomaly monitor Amazon Resource Names (ARNs).
5600
+ # @return [String]
5601
+ #
5602
+ # @!attribute [rw] monitor_name
5603
+ # The new name for the cost anomaly monitor.
5604
+ # @return [String]
5605
+ #
5606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitorRequest AWS API Documentation
5607
+ #
5608
+ class UpdateAnomalyMonitorRequest < Struct.new(
5609
+ :monitor_arn,
5610
+ :monitor_name)
5611
+ SENSITIVE = []
5612
+ include Aws::Structure
5613
+ end
5614
+
5615
+ # @!attribute [rw] monitor_arn
5616
+ # A cost anomaly monitor ARN.
5617
+ # @return [String]
5618
+ #
5619
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitorResponse AWS API Documentation
5620
+ #
5621
+ class UpdateAnomalyMonitorResponse < Struct.new(
5622
+ :monitor_arn)
5623
+ SENSITIVE = []
5624
+ include Aws::Structure
5625
+ end
5626
+
5627
+ # @note When making an API call, you may pass UpdateAnomalySubscriptionRequest
5628
+ # data as a hash:
5629
+ #
5630
+ # {
5631
+ # subscription_arn: "GenericString", # required
5632
+ # threshold: 1.0,
5633
+ # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
5634
+ # monitor_arn_list: ["Value"],
5635
+ # subscribers: [
5636
+ # {
5637
+ # address: "SubscriberAddress",
5638
+ # type: "EMAIL", # accepts EMAIL, SNS
5639
+ # status: "CONFIRMED", # accepts CONFIRMED, DECLINED
5640
+ # },
5641
+ # ],
5642
+ # subscription_name: "GenericString",
5643
+ # }
5644
+ #
5645
+ # @!attribute [rw] subscription_arn
5646
+ # A cost anomaly subscription Amazon Resource Name (ARN).
5647
+ # @return [String]
5648
+ #
5649
+ # @!attribute [rw] threshold
5650
+ # The update to the threshold value for receiving notifications.
5651
+ # @return [Float]
5652
+ #
5653
+ # @!attribute [rw] frequency
5654
+ # The update to the frequency value at which subscribers will receive
5655
+ # notifications.
5656
+ # @return [String]
5657
+ #
5658
+ # @!attribute [rw] monitor_arn_list
5659
+ # A list of cost anomaly subscription ARNs.
5660
+ # @return [Array<String>]
5661
+ #
5662
+ # @!attribute [rw] subscribers
5663
+ # The update to the subscriber list.
5664
+ # @return [Array<Types::Subscriber>]
5665
+ #
5666
+ # @!attribute [rw] subscription_name
5667
+ # The subscription's new name.
5668
+ # @return [String]
5669
+ #
5670
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscriptionRequest AWS API Documentation
5671
+ #
5672
+ class UpdateAnomalySubscriptionRequest < Struct.new(
5673
+ :subscription_arn,
5674
+ :threshold,
5675
+ :frequency,
5676
+ :monitor_arn_list,
5677
+ :subscribers,
5678
+ :subscription_name)
5679
+ SENSITIVE = []
5680
+ include Aws::Structure
5681
+ end
5682
+
5683
+ # @!attribute [rw] subscription_arn
5684
+ # A cost anomaly subscription ARN.
5685
+ # @return [String]
5686
+ #
5687
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscriptionResponse AWS API Documentation
5688
+ #
5689
+ class UpdateAnomalySubscriptionResponse < Struct.new(
5690
+ :subscription_arn)
5691
+ SENSITIVE = []
5692
+ include Aws::Structure
5693
+ end
5694
+
4690
5695
  # @note When making an API call, you may pass UpdateCostCategoryDefinitionRequest
4691
5696
  # data as a hash:
4692
5697
  #