@aws-sdk/client-cost-explorer 3.229.0 → 3.231.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,13 +27,31 @@ export declare enum AnomalyFeedbackType {
27
27
  */
28
28
  export interface Impact {
29
29
  /**
30
- * <p>The maximum dollar value that's observed for an anomaly. </p>
30
+ * <p>The maximum dollar value that's observed for an anomaly.</p>
31
31
  */
32
32
  MaxImpact: number | undefined;
33
33
  /**
34
- * <p>The cumulative dollar value that's observed for an anomaly. </p>
34
+ * <p>The cumulative dollar difference between the total actual spend and total expected
35
+ * spend. It is calculated as <code>TotalActualSpend - TotalExpectedSpend</code>.</p>
35
36
  */
36
37
  TotalImpact?: number;
38
+ /**
39
+ * <p>The cumulative dollar amount that was actually spent during the anomaly.</p>
40
+ */
41
+ TotalActualSpend?: number;
42
+ /**
43
+ * <p>The cumulative dollar amount that was expected to be spent during the anomaly. It is
44
+ * calculated using advanced machine learning models to determine the typical spending
45
+ * pattern based on historical data for a customer.</p>
46
+ */
47
+ TotalExpectedSpend?: number;
48
+ /**
49
+ * <p>The cumulative percentage difference between the total actual spend and total expected
50
+ * spend. It is calculated as <code>(TotalImpact / TotalExpectedSpend) * 100</code>. When
51
+ * <code>TotalExpectedSpend</code> is zero, this field is omitted. Expected spend can
52
+ * be zero in situations such as when you start to use a service for the first time.</p>
53
+ */
54
+ TotalImpactPercentage?: number;
37
55
  }
38
56
  /**
39
57
  * <p>The combination of Amazon Web Service, linked account, linked account name,
@@ -129,6 +147,7 @@ export declare enum MatchOption {
129
147
  CONTAINS = "CONTAINS",
130
148
  ENDS_WITH = "ENDS_WITH",
131
149
  EQUALS = "EQUALS",
150
+ GREATER_THAN_OR_EQUAL = "GREATER_THAN_OR_EQUAL",
132
151
  STARTS_WITH = "STARTS_WITH"
133
152
  }
134
153
  /**
@@ -161,6 +180,8 @@ export interface CostCategoryValues {
161
180
  export declare enum Dimension {
162
181
  AGREEMENT_END_DATE_TIME_AFTER = "AGREEMENT_END_DATE_TIME_AFTER",
163
182
  AGREEMENT_END_DATE_TIME_BEFORE = "AGREEMENT_END_DATE_TIME_BEFORE",
183
+ ANOMALY_TOTAL_IMPACT_ABSOLUTE = "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
184
+ ANOMALY_TOTAL_IMPACT_PERCENTAGE = "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
164
185
  AZ = "AZ",
165
186
  BILLING_ENTITY = "BILLING_ENTITY",
166
187
  CACHE_ENGINE = "CACHE_ENGINE",
@@ -199,9 +220,15 @@ export declare enum Dimension {
199
220
  export interface DimensionValues {
200
221
  /**
201
222
  * <p>The names of the metadata types that you can use to filter and group your results. For
202
- * example, <code>AZ</code> returns a list of Availability Zones.
203
- * <code>LINK_ACCOUNT_NAME</code> and <code>SERVICE_CODE</code> can only be used in
204
- * <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html">CostCategoryRule</a>.</p>
223
+ * example, <code>AZ</code> returns a list of Availability Zones.</p>
224
+ * <p>Not all dimensions are supported in each API. Refer to the documentation for each
225
+ * specific API to see what is supported.</p>
226
+ * <p>
227
+ * <code>LINK_ACCOUNT_NAME</code> and <code>SERVICE_CODE</code> can only be used in
228
+ * <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html">CostCategoryRule</a>.</p>
229
+ * <p>
230
+ * <code>ANOMALY_TOTAL_IMPACT_ABSOLUTE</code> and
231
+ * <code>ANOMALY_TOTAL_IMPACT_PERCENTAGE</code> can only be used in <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html">AnomalySubscriptions</a>.</p>
205
232
  */
206
233
  Key?: Dimension | string;
207
234
  /**
@@ -210,10 +237,13 @@ export interface DimensionValues {
210
237
  */
211
238
  Values?: string[];
212
239
  /**
213
- * <p>The match options that you can use to filter your results. <code>MatchOptions</code>
214
- * is only applicable for actions related to Cost Category. The default values for
215
- * <code>MatchOptions</code> are <code>EQUALS</code> and
216
- * <code>CASE_SENSITIVE</code>.</p>
240
+ * <p>The match options that you can use to filter your results.</p>
241
+ * <p>
242
+ * <code>MatchOptions</code> is only applicable for actions related to Cost Category and
243
+ * Anomaly Subscriptions. Refer to the documentation for each specific API to see what is
244
+ * supported.</p>
245
+ * <p>The default values for <code>MatchOptions</code> are <code>EQUALS</code> and
246
+ * <code>CASE_SENSITIVE</code>.</p>
217
247
  */
218
248
  MatchOptions?: (MatchOption | string)[];
219
249
  }
@@ -279,42 +309,6 @@ export interface Subscriber {
279
309
  */
280
310
  Status?: SubscriberStatus | string;
281
311
  }
282
- /**
283
- * <p>The association between a monitor, threshold, and list of subscribers used to deliver
284
- * notifications about anomalies detected by a monitor that exceeds a threshold. The
285
- * content consists of the detailed metadata and the current status of the
286
- * <code>AnomalySubscription</code> object. </p>
287
- */
288
- export interface AnomalySubscription {
289
- /**
290
- * <p>The <code>AnomalySubscription</code> Amazon Resource Name (ARN). </p>
291
- */
292
- SubscriptionArn?: string;
293
- /**
294
- * <p>Your unique account identifier. </p>
295
- */
296
- AccountId?: string;
297
- /**
298
- * <p>A list of cost anomaly monitors. </p>
299
- */
300
- MonitorArnList: string[] | undefined;
301
- /**
302
- * <p>A list of subscribers to notify. </p>
303
- */
304
- Subscribers: Subscriber[] | undefined;
305
- /**
306
- * <p>The dollar value that triggers a notification if the threshold is exceeded. </p>
307
- */
308
- Threshold: number | undefined;
309
- /**
310
- * <p>The frequency that anomaly reports are sent over email. </p>
311
- */
312
- Frequency: AnomalySubscriptionFrequency | string | undefined;
313
- /**
314
- * <p>The name for the subscription. </p>
315
- */
316
- SubscriptionName: string | undefined;
317
- }
318
312
  /**
319
313
  * <p>The tag structure that contains a tag key and value. </p>
320
314
  * <note>
@@ -356,48 +350,6 @@ export declare class LimitExceededException extends __BaseException {
356
350
  */
357
351
  constructor(opts: __ExceptionOptionType<LimitExceededException, __BaseException>);
358
352
  }
359
- export interface CreateAnomalySubscriptionRequest {
360
- /**
361
- * <p>The cost anomaly subscription object that you want to create. </p>
362
- */
363
- AnomalySubscription: AnomalySubscription | undefined;
364
- /**
365
- * <p>An optional list of tags to associate with the specified <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html">
366
- * <code>AnomalySubscription</code>
367
- * </a>. You can use resource tags to control access to
368
- * your <code>subscription</code> using IAM policies.</p>
369
- * <p>Each tag consists of a key and a value, and each key must be unique for the resource. The
370
- * following restrictions apply to resource tags:</p>
371
- * <ul>
372
- * <li>
373
- * <p>Although the maximum number of array members is 200, you can assign a maximum of 50
374
- * user-tags to one resource. The remaining are reserved for Amazon Web Services use</p>
375
- * </li>
376
- * <li>
377
- * <p>The maximum length of a key is 128 characters</p>
378
- * </li>
379
- * <li>
380
- * <p>The maximum length of a value is 256 characters</p>
381
- * </li>
382
- * <li>
383
- * <p>Keys and values can only contain alphanumeric characters, spaces, and any of the
384
- * following: <code>_.:/=+@-</code>
385
- * </p>
386
- * </li>
387
- * <li>
388
- * <p>Keys and values are case sensitive</p>
389
- * </li>
390
- * <li>
391
- * <p>Keys and values are trimmed for any leading or trailing whitespaces</p>
392
- * </li>
393
- * <li>
394
- * <p>Don’t use <code>aws:</code> as a prefix for your keys. This prefix is reserved for
395
- * Amazon Web Services use</p>
396
- * </li>
397
- * </ul>
398
- */
399
- ResourceTags?: ResourceTag[];
400
- }
401
353
  export interface CreateAnomalySubscriptionResponse {
402
354
  /**
403
355
  * <p>The unique identifier of your newly created cost anomaly subscription. </p>
@@ -729,18 +681,6 @@ export interface GetAnomalySubscriptionsRequest {
729
681
  */
730
682
  MaxResults?: number;
731
683
  }
732
- export interface GetAnomalySubscriptionsResponse {
733
- /**
734
- * <p>A list of cost anomaly subscriptions that includes the detailed metadata for each one.
735
- * </p>
736
- */
737
- AnomalySubscriptions: AnomalySubscription[] | undefined;
738
- /**
739
- * <p>The token to retrieve the next set of results. Amazon Web Services provides the token when
740
- * the response from a previous call has more results than the maximum page size. </p>
741
- */
742
- NextPageToken?: string;
743
- }
744
684
  /**
745
685
  * <p>The requested report expired. Update the date interval and try again.</p>
746
686
  */
@@ -3128,32 +3068,6 @@ export interface UpdateAnomalyMonitorResponse {
3128
3068
  */
3129
3069
  MonitorArn: string | undefined;
3130
3070
  }
3131
- export interface UpdateAnomalySubscriptionRequest {
3132
- /**
3133
- * <p>A cost anomaly subscription Amazon Resource Name (ARN). </p>
3134
- */
3135
- SubscriptionArn: string | undefined;
3136
- /**
3137
- * <p>The update to the threshold value for receiving notifications. </p>
3138
- */
3139
- Threshold?: number;
3140
- /**
3141
- * <p>The update to the frequency value that subscribers receive notifications. </p>
3142
- */
3143
- Frequency?: AnomalySubscriptionFrequency | string;
3144
- /**
3145
- * <p>A list of cost anomaly monitor ARNs. </p>
3146
- */
3147
- MonitorArnList?: string[];
3148
- /**
3149
- * <p>The update to the subscriber list. </p>
3150
- */
3151
- Subscribers?: Subscriber[];
3152
- /**
3153
- * <p>The new name of the subscription. </p>
3154
- */
3155
- SubscriptionName?: string;
3156
- }
3157
3071
  export interface UpdateAnomalySubscriptionResponse {
3158
3072
  /**
3159
3073
  * <p>A cost anomaly subscription ARN. </p>
@@ -3218,49 +3132,116 @@ export interface UpdateCostCategoryDefinitionResponse {
3218
3132
  EffectiveStart?: string;
3219
3133
  }
3220
3134
  /**
3221
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
3135
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
3136
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
3137
+ * documentation for each specific API to see what is supported.</p>
3138
+ * <p>There are two patterns:</p>
3222
3139
  * <ul>
3223
3140
  * <li>
3224
- * <p>Simple dimension values - You can set the dimension name and values for the
3225
- * filters that you plan to use. For example, you can filter for
3226
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
3227
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
3228
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
3229
- * example is as follows:</p>
3230
- * <p>
3231
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
3232
- * } }</code>
3233
- * </p>
3234
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
3235
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
3236
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
3237
- * lines. </p>
3141
+ * <p>Simple dimension values.</p>
3142
+ * <ul>
3143
+ * <li>
3144
+ * <p>There are three types of simple dimension values:
3145
+ * <code>CostCategories</code>, <code>Tags</code>, and
3146
+ * <code>Dimensions</code>.</p>
3147
+ * <ul>
3148
+ * <li>
3149
+ * <p>Specify the <code>CostCategories</code> field to define a
3150
+ * filter that acts on Cost Categories.</p>
3151
+ * </li>
3152
+ * <li>
3153
+ * <p>Specify the <code>Tags</code> field to define a filter that
3154
+ * acts on Cost Allocation Tags.</p>
3155
+ * </li>
3156
+ * <li>
3157
+ * <p>Specify the <code>Dimensions</code> field to define a filter
3158
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
3159
+ * <code>DimensionValues</code>
3160
+ * </a>.</p>
3161
+ * </li>
3162
+ * </ul>
3163
+ * </li>
3164
+ * <li>
3165
+ * <p>For each filter type, you can set the dimension name and values for
3166
+ * the filters that you plan to use.</p>
3167
+ * <ul>
3168
+ * <li>
3169
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
3170
+ * REGION==us-west-1</code>. For
3171
+ * <code>GetRightsizingRecommendation</code>, the Region is a
3172
+ * full name (for example, <code>REGION==US East (N.
3173
+ * Virginia)</code>.</p>
3174
+ * </li>
3175
+ * <li>
3176
+ * <p>The corresponding <code>Expression</code> for this example is
3177
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
3178
+ * "us-east-1", “us-west-1” ] } }</code>
3179
+ * </p>
3180
+ * </li>
3181
+ * <li>
3182
+ * <p>As shown in the previous example, lists of dimension values
3183
+ * are combined with <code>OR</code> when applying the
3184
+ * filter.</p>
3185
+ * </li>
3186
+ * </ul>
3187
+ * </li>
3188
+ * <li>
3189
+ * <p>You can also set different match options to further control how the
3190
+ * filter behaves. Not all APIs support match options. Refer to the
3191
+ * documentation for each specific API to see what is supported.</p>
3192
+ * <ul>
3193
+ * <li>
3194
+ * <p>For example, you can filter for linked account names that
3195
+ * start with “a”.</p>
3196
+ * </li>
3197
+ * <li>
3198
+ * <p>The corresponding <code>Expression</code> for this example is
3199
+ * as follows: <code>{ "Dimensions": { "Key":
3200
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
3201
+ * "Values": [ "a" ] } }</code>
3202
+ * </p>
3203
+ * </li>
3204
+ * </ul>
3205
+ * </li>
3206
+ * </ul>
3238
3207
  * </li>
3239
3208
  * <li>
3240
- * <p>Compound dimension values with logical operations - You can use multiple
3241
- * <code>Expression</code> types and the logical operators
3242
- * <code>AND/OR/NOT</code> to create a list of one or more
3243
- * <code>Expression</code> objects. By doing this, you can filter on more
3244
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
3245
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3246
- * DataTransfer)</code>. The <code>Expression</code> for that is as
3247
- * follows:</p>
3248
- * <p>
3249
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
3250
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
3251
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
3252
- * ["DataTransfer"] }}} ] } </code>
3253
- * </p>
3209
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
3210
+ * <ul>
3211
+ * <li>
3212
+ * <p>You can use multiple <code>Expression</code> types and the logical
3213
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
3214
+ * <code>Expression</code> objects. By doing this, you can filter by
3215
+ * more advanced options.</p>
3216
+ * </li>
3217
+ * <li>
3218
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
3219
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3220
+ * DataTransfer)</code>.</p>
3221
+ * </li>
3222
+ * <li>
3223
+ * <p>The corresponding <code>Expression</code> for this example is as
3224
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
3225
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
3226
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
3227
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
3228
+ * </code>
3229
+ * </p>
3230
+ * </li>
3231
+ * </ul>
3254
3232
  * <note>
3255
3233
  * <p>Because each <code>Expression</code> can have only one operator, the
3256
3234
  * service returns an error if more than one is specified. The following
3257
- * example shows an <code>Expression</code> object that creates an
3258
- * error.</p>
3235
+ * example shows an <code>Expression</code> object that creates an error:
3236
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
3237
+ * [ "DataTransfer" ] } } </code>
3238
+ * </p>
3239
+ * <p>The following is an example of the corresponding error message:
3240
+ * <code>"Expression has more than one roots. Only one root operator is
3241
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
3242
+ * CostCategories"</code>
3243
+ * </p>
3259
3244
  * </note>
3260
- * <p>
3261
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
3262
- * "Values": [ "DataTransfer" ] } } </code>
3263
- * </p>
3264
3245
  * </li>
3265
3246
  * </ul>
3266
3247
  * <note>
@@ -3335,49 +3316,116 @@ export interface AnomalyMonitor {
3335
3316
  */
3336
3317
  MonitorDimension?: MonitorDimension | string;
3337
3318
  /**
3338
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
3319
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
3320
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
3321
+ * documentation for each specific API to see what is supported.</p>
3322
+ * <p>There are two patterns:</p>
3339
3323
  * <ul>
3340
3324
  * <li>
3341
- * <p>Simple dimension values - You can set the dimension name and values for the
3342
- * filters that you plan to use. For example, you can filter for
3343
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
3344
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
3345
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
3346
- * example is as follows:</p>
3347
- * <p>
3348
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
3349
- * } }</code>
3350
- * </p>
3351
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
3352
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
3353
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
3354
- * lines. </p>
3355
- * </li>
3356
- * <li>
3357
- * <p>Compound dimension values with logical operations - You can use multiple
3358
- * <code>Expression</code> types and the logical operators
3359
- * <code>AND/OR/NOT</code> to create a list of one or more
3360
- * <code>Expression</code> objects. By doing this, you can filter on more
3361
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
3362
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3363
- * DataTransfer)</code>. The <code>Expression</code> for that is as
3364
- * follows:</p>
3365
- * <p>
3366
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
3367
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
3368
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
3369
- * ["DataTransfer"] }}} ] } </code>
3370
- * </p>
3325
+ * <p>Simple dimension values.</p>
3326
+ * <ul>
3327
+ * <li>
3328
+ * <p>There are three types of simple dimension values:
3329
+ * <code>CostCategories</code>, <code>Tags</code>, and
3330
+ * <code>Dimensions</code>.</p>
3331
+ * <ul>
3332
+ * <li>
3333
+ * <p>Specify the <code>CostCategories</code> field to define a
3334
+ * filter that acts on Cost Categories.</p>
3335
+ * </li>
3336
+ * <li>
3337
+ * <p>Specify the <code>Tags</code> field to define a filter that
3338
+ * acts on Cost Allocation Tags.</p>
3339
+ * </li>
3340
+ * <li>
3341
+ * <p>Specify the <code>Dimensions</code> field to define a filter
3342
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
3343
+ * <code>DimensionValues</code>
3344
+ * </a>.</p>
3345
+ * </li>
3346
+ * </ul>
3347
+ * </li>
3348
+ * <li>
3349
+ * <p>For each filter type, you can set the dimension name and values for
3350
+ * the filters that you plan to use.</p>
3351
+ * <ul>
3352
+ * <li>
3353
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
3354
+ * REGION==us-west-1</code>. For
3355
+ * <code>GetRightsizingRecommendation</code>, the Region is a
3356
+ * full name (for example, <code>REGION==US East (N.
3357
+ * Virginia)</code>.</p>
3358
+ * </li>
3359
+ * <li>
3360
+ * <p>The corresponding <code>Expression</code> for this example is
3361
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
3362
+ * "us-east-1", “us-west-1” ] } }</code>
3363
+ * </p>
3364
+ * </li>
3365
+ * <li>
3366
+ * <p>As shown in the previous example, lists of dimension values
3367
+ * are combined with <code>OR</code> when applying the
3368
+ * filter.</p>
3369
+ * </li>
3370
+ * </ul>
3371
+ * </li>
3372
+ * <li>
3373
+ * <p>You can also set different match options to further control how the
3374
+ * filter behaves. Not all APIs support match options. Refer to the
3375
+ * documentation for each specific API to see what is supported.</p>
3376
+ * <ul>
3377
+ * <li>
3378
+ * <p>For example, you can filter for linked account names that
3379
+ * start with “a”.</p>
3380
+ * </li>
3381
+ * <li>
3382
+ * <p>The corresponding <code>Expression</code> for this example is
3383
+ * as follows: <code>{ "Dimensions": { "Key":
3384
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
3385
+ * "Values": [ "a" ] } }</code>
3386
+ * </p>
3387
+ * </li>
3388
+ * </ul>
3389
+ * </li>
3390
+ * </ul>
3391
+ * </li>
3392
+ * <li>
3393
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
3394
+ * <ul>
3395
+ * <li>
3396
+ * <p>You can use multiple <code>Expression</code> types and the logical
3397
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
3398
+ * <code>Expression</code> objects. By doing this, you can filter by
3399
+ * more advanced options.</p>
3400
+ * </li>
3401
+ * <li>
3402
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
3403
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3404
+ * DataTransfer)</code>.</p>
3405
+ * </li>
3406
+ * <li>
3407
+ * <p>The corresponding <code>Expression</code> for this example is as
3408
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
3409
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
3410
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
3411
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
3412
+ * </code>
3413
+ * </p>
3414
+ * </li>
3415
+ * </ul>
3371
3416
  * <note>
3372
3417
  * <p>Because each <code>Expression</code> can have only one operator, the
3373
3418
  * service returns an error if more than one is specified. The following
3374
- * example shows an <code>Expression</code> object that creates an
3375
- * error.</p>
3419
+ * example shows an <code>Expression</code> object that creates an error:
3420
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
3421
+ * [ "DataTransfer" ] } } </code>
3422
+ * </p>
3423
+ * <p>The following is an example of the corresponding error message:
3424
+ * <code>"Expression has more than one roots. Only one root operator is
3425
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
3426
+ * CostCategories"</code>
3427
+ * </p>
3376
3428
  * </note>
3377
- * <p>
3378
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
3379
- * "Values": [ "DataTransfer" ] } } </code>
3380
- * </p>
3381
3429
  * </li>
3382
3430
  * </ul>
3383
3431
  * <note>
@@ -3397,6 +3445,94 @@ export interface AnomalyMonitor {
3397
3445
  */
3398
3446
  DimensionalValueCount?: number;
3399
3447
  }
3448
+ /**
3449
+ * <p>The association between a monitor, threshold, and list of subscribers used to deliver
3450
+ * notifications about anomalies detected by a monitor that exceeds a threshold. The
3451
+ * content consists of the detailed metadata and the current status of the
3452
+ * <code>AnomalySubscription</code> object. </p>
3453
+ */
3454
+ export interface AnomalySubscription {
3455
+ /**
3456
+ * <p>The <code>AnomalySubscription</code> Amazon Resource Name (ARN). </p>
3457
+ */
3458
+ SubscriptionArn?: string;
3459
+ /**
3460
+ * <p>Your unique account identifier. </p>
3461
+ */
3462
+ AccountId?: string;
3463
+ /**
3464
+ * <p>A list of cost anomaly monitors. </p>
3465
+ */
3466
+ MonitorArnList: string[] | undefined;
3467
+ /**
3468
+ * <p>A list of subscribers to notify. </p>
3469
+ */
3470
+ Subscribers: Subscriber[] | undefined;
3471
+ /**
3472
+ * @deprecated
3473
+ *
3474
+ * <p>(deprecated)</p>
3475
+ * <p>The dollar value that triggers a notification if the threshold is exceeded. </p>
3476
+ * <p>This field has been deprecated. To specify a threshold, use ThresholdExpression.
3477
+ * Continued use of Threshold will be treated as shorthand syntax for a
3478
+ * ThresholdExpression.</p>
3479
+ * <p>One of Threshold or ThresholdExpression is required for this resource.</p>
3480
+ */
3481
+ Threshold?: number;
3482
+ /**
3483
+ * <p>The frequency that anomaly reports are sent over email. </p>
3484
+ */
3485
+ Frequency: AnomalySubscriptionFrequency | string | undefined;
3486
+ /**
3487
+ * <p>The name for the subscription. </p>
3488
+ */
3489
+ SubscriptionName: string | undefined;
3490
+ /**
3491
+ * <p>An <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a>
3492
+ * object used to specify the anomalies that you want to generate alerts for. This supports
3493
+ * dimensions and nested expressions. The supported dimensions are
3494
+ * <code>ANOMALY_TOTAL_IMPACT_ABSOLUTE</code> and
3495
+ * <code>ANOMALY_TOTAL_IMPACT_PERCENTAGE</code>. The supported nested expression types
3496
+ * are <code>AND</code> and <code>OR</code>. The match option
3497
+ * <code>GREATER_THAN_OR_EQUAL</code> is required. Values must be numbers between 0 and
3498
+ * 10,000,000,000.</p>
3499
+ * <p>One of Threshold or ThresholdExpression is required for this resource.</p>
3500
+ * <p>The following are examples of valid ThresholdExpressions:</p>
3501
+ * <ul>
3502
+ * <li>
3503
+ * <p>Absolute threshold: <code>{ "Dimensions": { "Key":
3504
+ * "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL"
3505
+ * ], "Values": [ "100" ] } }</code>
3506
+ * </p>
3507
+ * </li>
3508
+ * <li>
3509
+ * <p>Percentage threshold: <code>{ "Dimensions": { "Key":
3510
+ * "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL"
3511
+ * ], "Values": [ "100" ] } }</code>
3512
+ * </p>
3513
+ * </li>
3514
+ * <li>
3515
+ * <p>
3516
+ * <code>AND</code> two thresholds together: <code>{ "And": [ { "Dimensions": {
3517
+ * "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
3518
+ * "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] } }, { "Dimensions": { "Key":
3519
+ * "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL"
3520
+ * ], "Values": [ "100" ] } } ] }</code>
3521
+ * </p>
3522
+ * </li>
3523
+ * <li>
3524
+ * <p>
3525
+ * <code>OR</code> two thresholds together: <code>{ "Or": [ { "Dimensions": {
3526
+ * "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [
3527
+ * "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] } }, { "Dimensions": { "Key":
3528
+ * "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL"
3529
+ * ], "Values": [ "100" ] } } ] }</code>
3530
+ * </p>
3531
+ * </li>
3532
+ * </ul>
3533
+ */
3534
+ ThresholdExpression?: Expression;
3535
+ }
3400
3536
  /**
3401
3537
  * <p>Rules are processed in order. If there are multiple rules that match the line item,
3402
3538
  * then the first rule to match is used to determine that Cost Category value.</p>
@@ -3590,49 +3726,116 @@ export interface GetCostCategoriesRequest {
3590
3726
  */
3591
3727
  CostCategoryName?: string;
3592
3728
  /**
3593
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
3729
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
3730
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
3731
+ * documentation for each specific API to see what is supported.</p>
3732
+ * <p>There are two patterns:</p>
3594
3733
  * <ul>
3595
3734
  * <li>
3596
- * <p>Simple dimension values - You can set the dimension name and values for the
3597
- * filters that you plan to use. For example, you can filter for
3598
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
3599
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
3600
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
3601
- * example is as follows:</p>
3602
- * <p>
3603
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
3604
- * } }</code>
3605
- * </p>
3606
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
3607
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
3608
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
3609
- * lines. </p>
3610
- * </li>
3611
- * <li>
3612
- * <p>Compound dimension values with logical operations - You can use multiple
3613
- * <code>Expression</code> types and the logical operators
3614
- * <code>AND/OR/NOT</code> to create a list of one or more
3615
- * <code>Expression</code> objects. By doing this, you can filter on more
3616
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
3617
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3618
- * DataTransfer)</code>. The <code>Expression</code> for that is as
3619
- * follows:</p>
3620
- * <p>
3621
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
3622
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
3623
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
3624
- * ["DataTransfer"] }}} ] } </code>
3625
- * </p>
3735
+ * <p>Simple dimension values.</p>
3736
+ * <ul>
3737
+ * <li>
3738
+ * <p>There are three types of simple dimension values:
3739
+ * <code>CostCategories</code>, <code>Tags</code>, and
3740
+ * <code>Dimensions</code>.</p>
3741
+ * <ul>
3742
+ * <li>
3743
+ * <p>Specify the <code>CostCategories</code> field to define a
3744
+ * filter that acts on Cost Categories.</p>
3745
+ * </li>
3746
+ * <li>
3747
+ * <p>Specify the <code>Tags</code> field to define a filter that
3748
+ * acts on Cost Allocation Tags.</p>
3749
+ * </li>
3750
+ * <li>
3751
+ * <p>Specify the <code>Dimensions</code> field to define a filter
3752
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
3753
+ * <code>DimensionValues</code>
3754
+ * </a>.</p>
3755
+ * </li>
3756
+ * </ul>
3757
+ * </li>
3758
+ * <li>
3759
+ * <p>For each filter type, you can set the dimension name and values for
3760
+ * the filters that you plan to use.</p>
3761
+ * <ul>
3762
+ * <li>
3763
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
3764
+ * REGION==us-west-1</code>. For
3765
+ * <code>GetRightsizingRecommendation</code>, the Region is a
3766
+ * full name (for example, <code>REGION==US East (N.
3767
+ * Virginia)</code>.</p>
3768
+ * </li>
3769
+ * <li>
3770
+ * <p>The corresponding <code>Expression</code> for this example is
3771
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
3772
+ * "us-east-1", “us-west-1” ] } }</code>
3773
+ * </p>
3774
+ * </li>
3775
+ * <li>
3776
+ * <p>As shown in the previous example, lists of dimension values
3777
+ * are combined with <code>OR</code> when applying the
3778
+ * filter.</p>
3779
+ * </li>
3780
+ * </ul>
3781
+ * </li>
3782
+ * <li>
3783
+ * <p>You can also set different match options to further control how the
3784
+ * filter behaves. Not all APIs support match options. Refer to the
3785
+ * documentation for each specific API to see what is supported.</p>
3786
+ * <ul>
3787
+ * <li>
3788
+ * <p>For example, you can filter for linked account names that
3789
+ * start with “a”.</p>
3790
+ * </li>
3791
+ * <li>
3792
+ * <p>The corresponding <code>Expression</code> for this example is
3793
+ * as follows: <code>{ "Dimensions": { "Key":
3794
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
3795
+ * "Values": [ "a" ] } }</code>
3796
+ * </p>
3797
+ * </li>
3798
+ * </ul>
3799
+ * </li>
3800
+ * </ul>
3801
+ * </li>
3802
+ * <li>
3803
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
3804
+ * <ul>
3805
+ * <li>
3806
+ * <p>You can use multiple <code>Expression</code> types and the logical
3807
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
3808
+ * <code>Expression</code> objects. By doing this, you can filter by
3809
+ * more advanced options.</p>
3810
+ * </li>
3811
+ * <li>
3812
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
3813
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
3814
+ * DataTransfer)</code>.</p>
3815
+ * </li>
3816
+ * <li>
3817
+ * <p>The corresponding <code>Expression</code> for this example is as
3818
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
3819
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
3820
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
3821
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
3822
+ * </code>
3823
+ * </p>
3824
+ * </li>
3825
+ * </ul>
3626
3826
  * <note>
3627
3827
  * <p>Because each <code>Expression</code> can have only one operator, the
3628
3828
  * service returns an error if more than one is specified. The following
3629
- * example shows an <code>Expression</code> object that creates an
3630
- * error.</p>
3829
+ * example shows an <code>Expression</code> object that creates an error:
3830
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
3831
+ * [ "DataTransfer" ] } } </code>
3832
+ * </p>
3833
+ * <p>The following is an example of the corresponding error message:
3834
+ * <code>"Expression has more than one roots. Only one root operator is
3835
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
3836
+ * CostCategories"</code>
3837
+ * </p>
3631
3838
  * </note>
3632
- * <p>
3633
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
3634
- * "Values": [ "DataTransfer" ] } } </code>
3635
- * </p>
3636
3839
  * </li>
3637
3840
  * </ul>
3638
3841
  * <note>
@@ -4075,49 +4278,116 @@ export interface GetDimensionValuesRequest {
4075
4278
  */
4076
4279
  Context?: Context | string;
4077
4280
  /**
4078
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
4281
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
4282
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
4283
+ * documentation for each specific API to see what is supported.</p>
4284
+ * <p>There are two patterns:</p>
4079
4285
  * <ul>
4080
4286
  * <li>
4081
- * <p>Simple dimension values - You can set the dimension name and values for the
4082
- * filters that you plan to use. For example, you can filter for
4083
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
4084
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
4085
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
4086
- * example is as follows:</p>
4087
- * <p>
4088
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
4089
- * } }</code>
4090
- * </p>
4091
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
4092
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
4093
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
4094
- * lines. </p>
4095
- * </li>
4096
- * <li>
4097
- * <p>Compound dimension values with logical operations - You can use multiple
4098
- * <code>Expression</code> types and the logical operators
4099
- * <code>AND/OR/NOT</code> to create a list of one or more
4100
- * <code>Expression</code> objects. By doing this, you can filter on more
4101
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
4102
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4103
- * DataTransfer)</code>. The <code>Expression</code> for that is as
4104
- * follows:</p>
4105
- * <p>
4106
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
4107
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
4108
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
4109
- * ["DataTransfer"] }}} ] } </code>
4110
- * </p>
4287
+ * <p>Simple dimension values.</p>
4288
+ * <ul>
4289
+ * <li>
4290
+ * <p>There are three types of simple dimension values:
4291
+ * <code>CostCategories</code>, <code>Tags</code>, and
4292
+ * <code>Dimensions</code>.</p>
4293
+ * <ul>
4294
+ * <li>
4295
+ * <p>Specify the <code>CostCategories</code> field to define a
4296
+ * filter that acts on Cost Categories.</p>
4297
+ * </li>
4298
+ * <li>
4299
+ * <p>Specify the <code>Tags</code> field to define a filter that
4300
+ * acts on Cost Allocation Tags.</p>
4301
+ * </li>
4302
+ * <li>
4303
+ * <p>Specify the <code>Dimensions</code> field to define a filter
4304
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
4305
+ * <code>DimensionValues</code>
4306
+ * </a>.</p>
4307
+ * </li>
4308
+ * </ul>
4309
+ * </li>
4310
+ * <li>
4311
+ * <p>For each filter type, you can set the dimension name and values for
4312
+ * the filters that you plan to use.</p>
4313
+ * <ul>
4314
+ * <li>
4315
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
4316
+ * REGION==us-west-1</code>. For
4317
+ * <code>GetRightsizingRecommendation</code>, the Region is a
4318
+ * full name (for example, <code>REGION==US East (N.
4319
+ * Virginia)</code>.</p>
4320
+ * </li>
4321
+ * <li>
4322
+ * <p>The corresponding <code>Expression</code> for this example is
4323
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
4324
+ * "us-east-1", “us-west-1” ] } }</code>
4325
+ * </p>
4326
+ * </li>
4327
+ * <li>
4328
+ * <p>As shown in the previous example, lists of dimension values
4329
+ * are combined with <code>OR</code> when applying the
4330
+ * filter.</p>
4331
+ * </li>
4332
+ * </ul>
4333
+ * </li>
4334
+ * <li>
4335
+ * <p>You can also set different match options to further control how the
4336
+ * filter behaves. Not all APIs support match options. Refer to the
4337
+ * documentation for each specific API to see what is supported.</p>
4338
+ * <ul>
4339
+ * <li>
4340
+ * <p>For example, you can filter for linked account names that
4341
+ * start with “a”.</p>
4342
+ * </li>
4343
+ * <li>
4344
+ * <p>The corresponding <code>Expression</code> for this example is
4345
+ * as follows: <code>{ "Dimensions": { "Key":
4346
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
4347
+ * "Values": [ "a" ] } }</code>
4348
+ * </p>
4349
+ * </li>
4350
+ * </ul>
4351
+ * </li>
4352
+ * </ul>
4353
+ * </li>
4354
+ * <li>
4355
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
4356
+ * <ul>
4357
+ * <li>
4358
+ * <p>You can use multiple <code>Expression</code> types and the logical
4359
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
4360
+ * <code>Expression</code> objects. By doing this, you can filter by
4361
+ * more advanced options.</p>
4362
+ * </li>
4363
+ * <li>
4364
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
4365
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4366
+ * DataTransfer)</code>.</p>
4367
+ * </li>
4368
+ * <li>
4369
+ * <p>The corresponding <code>Expression</code> for this example is as
4370
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
4371
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
4372
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
4373
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
4374
+ * </code>
4375
+ * </p>
4376
+ * </li>
4377
+ * </ul>
4111
4378
  * <note>
4112
4379
  * <p>Because each <code>Expression</code> can have only one operator, the
4113
4380
  * service returns an error if more than one is specified. The following
4114
- * example shows an <code>Expression</code> object that creates an
4115
- * error.</p>
4381
+ * example shows an <code>Expression</code> object that creates an error:
4382
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
4383
+ * [ "DataTransfer" ] } } </code>
4384
+ * </p>
4385
+ * <p>The following is an example of the corresponding error message:
4386
+ * <code>"Expression has more than one roots. Only one root operator is
4387
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
4388
+ * CostCategories"</code>
4389
+ * </p>
4116
4390
  * </note>
4117
- * <p>
4118
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
4119
- * "Values": [ "DataTransfer" ] } } </code>
4120
- * </p>
4121
4391
  * </li>
4122
4392
  * </ul>
4123
4393
  * <note>
@@ -4394,49 +4664,116 @@ export interface GetReservationPurchaseRecommendationRequest {
4394
4664
  */
4395
4665
  Service: string | undefined;
4396
4666
  /**
4397
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
4667
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
4668
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
4669
+ * documentation for each specific API to see what is supported.</p>
4670
+ * <p>There are two patterns:</p>
4398
4671
  * <ul>
4399
4672
  * <li>
4400
- * <p>Simple dimension values - You can set the dimension name and values for the
4401
- * filters that you plan to use. For example, you can filter for
4402
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
4403
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
4404
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
4405
- * example is as follows:</p>
4406
- * <p>
4407
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
4408
- * } }</code>
4409
- * </p>
4410
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
4411
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
4412
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
4413
- * lines. </p>
4414
- * </li>
4415
- * <li>
4416
- * <p>Compound dimension values with logical operations - You can use multiple
4417
- * <code>Expression</code> types and the logical operators
4418
- * <code>AND/OR/NOT</code> to create a list of one or more
4419
- * <code>Expression</code> objects. By doing this, you can filter on more
4420
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
4421
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4422
- * DataTransfer)</code>. The <code>Expression</code> for that is as
4423
- * follows:</p>
4424
- * <p>
4425
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
4426
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
4427
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
4428
- * ["DataTransfer"] }}} ] } </code>
4429
- * </p>
4673
+ * <p>Simple dimension values.</p>
4674
+ * <ul>
4675
+ * <li>
4676
+ * <p>There are three types of simple dimension values:
4677
+ * <code>CostCategories</code>, <code>Tags</code>, and
4678
+ * <code>Dimensions</code>.</p>
4679
+ * <ul>
4680
+ * <li>
4681
+ * <p>Specify the <code>CostCategories</code> field to define a
4682
+ * filter that acts on Cost Categories.</p>
4683
+ * </li>
4684
+ * <li>
4685
+ * <p>Specify the <code>Tags</code> field to define a filter that
4686
+ * acts on Cost Allocation Tags.</p>
4687
+ * </li>
4688
+ * <li>
4689
+ * <p>Specify the <code>Dimensions</code> field to define a filter
4690
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
4691
+ * <code>DimensionValues</code>
4692
+ * </a>.</p>
4693
+ * </li>
4694
+ * </ul>
4695
+ * </li>
4696
+ * <li>
4697
+ * <p>For each filter type, you can set the dimension name and values for
4698
+ * the filters that you plan to use.</p>
4699
+ * <ul>
4700
+ * <li>
4701
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
4702
+ * REGION==us-west-1</code>. For
4703
+ * <code>GetRightsizingRecommendation</code>, the Region is a
4704
+ * full name (for example, <code>REGION==US East (N.
4705
+ * Virginia)</code>.</p>
4706
+ * </li>
4707
+ * <li>
4708
+ * <p>The corresponding <code>Expression</code> for this example is
4709
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
4710
+ * "us-east-1", “us-west-1” ] } }</code>
4711
+ * </p>
4712
+ * </li>
4713
+ * <li>
4714
+ * <p>As shown in the previous example, lists of dimension values
4715
+ * are combined with <code>OR</code> when applying the
4716
+ * filter.</p>
4717
+ * </li>
4718
+ * </ul>
4719
+ * </li>
4720
+ * <li>
4721
+ * <p>You can also set different match options to further control how the
4722
+ * filter behaves. Not all APIs support match options. Refer to the
4723
+ * documentation for each specific API to see what is supported.</p>
4724
+ * <ul>
4725
+ * <li>
4726
+ * <p>For example, you can filter for linked account names that
4727
+ * start with “a”.</p>
4728
+ * </li>
4729
+ * <li>
4730
+ * <p>The corresponding <code>Expression</code> for this example is
4731
+ * as follows: <code>{ "Dimensions": { "Key":
4732
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
4733
+ * "Values": [ "a" ] } }</code>
4734
+ * </p>
4735
+ * </li>
4736
+ * </ul>
4737
+ * </li>
4738
+ * </ul>
4739
+ * </li>
4740
+ * <li>
4741
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
4742
+ * <ul>
4743
+ * <li>
4744
+ * <p>You can use multiple <code>Expression</code> types and the logical
4745
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
4746
+ * <code>Expression</code> objects. By doing this, you can filter by
4747
+ * more advanced options.</p>
4748
+ * </li>
4749
+ * <li>
4750
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
4751
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4752
+ * DataTransfer)</code>.</p>
4753
+ * </li>
4754
+ * <li>
4755
+ * <p>The corresponding <code>Expression</code> for this example is as
4756
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
4757
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
4758
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
4759
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
4760
+ * </code>
4761
+ * </p>
4762
+ * </li>
4763
+ * </ul>
4430
4764
  * <note>
4431
4765
  * <p>Because each <code>Expression</code> can have only one operator, the
4432
4766
  * service returns an error if more than one is specified. The following
4433
- * example shows an <code>Expression</code> object that creates an
4434
- * error.</p>
4767
+ * example shows an <code>Expression</code> object that creates an error:
4768
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
4769
+ * [ "DataTransfer" ] } } </code>
4770
+ * </p>
4771
+ * <p>The following is an example of the corresponding error message:
4772
+ * <code>"Expression has more than one roots. Only one root operator is
4773
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
4774
+ * CostCategories"</code>
4775
+ * </p>
4435
4776
  * </note>
4436
- * <p>
4437
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
4438
- * "Values": [ "DataTransfer" ] } } </code>
4439
- * </p>
4440
4777
  * </li>
4441
4778
  * </ul>
4442
4779
  * <note>
@@ -4663,49 +5000,116 @@ export interface GetReservationUtilizationRequest {
4663
5000
  }
4664
5001
  export interface GetRightsizingRecommendationRequest {
4665
5002
  /**
4666
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
5003
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
5004
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
5005
+ * documentation for each specific API to see what is supported.</p>
5006
+ * <p>There are two patterns:</p>
4667
5007
  * <ul>
4668
5008
  * <li>
4669
- * <p>Simple dimension values - You can set the dimension name and values for the
4670
- * filters that you plan to use. For example, you can filter for
4671
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
4672
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
4673
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
4674
- * example is as follows:</p>
4675
- * <p>
4676
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
4677
- * } }</code>
4678
- * </p>
4679
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
4680
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
4681
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
4682
- * lines. </p>
4683
- * </li>
4684
- * <li>
4685
- * <p>Compound dimension values with logical operations - You can use multiple
4686
- * <code>Expression</code> types and the logical operators
4687
- * <code>AND/OR/NOT</code> to create a list of one or more
4688
- * <code>Expression</code> objects. By doing this, you can filter on more
4689
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
4690
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
4691
- * DataTransfer)</code>. The <code>Expression</code> for that is as
4692
- * follows:</p>
4693
- * <p>
4694
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
4695
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
4696
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
4697
- * ["DataTransfer"] }}} ] } </code>
4698
- * </p>
5009
+ * <p>Simple dimension values.</p>
5010
+ * <ul>
5011
+ * <li>
5012
+ * <p>There are three types of simple dimension values:
5013
+ * <code>CostCategories</code>, <code>Tags</code>, and
5014
+ * <code>Dimensions</code>.</p>
5015
+ * <ul>
5016
+ * <li>
5017
+ * <p>Specify the <code>CostCategories</code> field to define a
5018
+ * filter that acts on Cost Categories.</p>
5019
+ * </li>
5020
+ * <li>
5021
+ * <p>Specify the <code>Tags</code> field to define a filter that
5022
+ * acts on Cost Allocation Tags.</p>
5023
+ * </li>
5024
+ * <li>
5025
+ * <p>Specify the <code>Dimensions</code> field to define a filter
5026
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
5027
+ * <code>DimensionValues</code>
5028
+ * </a>.</p>
5029
+ * </li>
5030
+ * </ul>
5031
+ * </li>
5032
+ * <li>
5033
+ * <p>For each filter type, you can set the dimension name and values for
5034
+ * the filters that you plan to use.</p>
5035
+ * <ul>
5036
+ * <li>
5037
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
5038
+ * REGION==us-west-1</code>. For
5039
+ * <code>GetRightsizingRecommendation</code>, the Region is a
5040
+ * full name (for example, <code>REGION==US East (N.
5041
+ * Virginia)</code>.</p>
5042
+ * </li>
5043
+ * <li>
5044
+ * <p>The corresponding <code>Expression</code> for this example is
5045
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
5046
+ * "us-east-1", “us-west-1” ] } }</code>
5047
+ * </p>
5048
+ * </li>
5049
+ * <li>
5050
+ * <p>As shown in the previous example, lists of dimension values
5051
+ * are combined with <code>OR</code> when applying the
5052
+ * filter.</p>
5053
+ * </li>
5054
+ * </ul>
5055
+ * </li>
5056
+ * <li>
5057
+ * <p>You can also set different match options to further control how the
5058
+ * filter behaves. Not all APIs support match options. Refer to the
5059
+ * documentation for each specific API to see what is supported.</p>
5060
+ * <ul>
5061
+ * <li>
5062
+ * <p>For example, you can filter for linked account names that
5063
+ * start with “a”.</p>
5064
+ * </li>
5065
+ * <li>
5066
+ * <p>The corresponding <code>Expression</code> for this example is
5067
+ * as follows: <code>{ "Dimensions": { "Key":
5068
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
5069
+ * "Values": [ "a" ] } }</code>
5070
+ * </p>
5071
+ * </li>
5072
+ * </ul>
5073
+ * </li>
5074
+ * </ul>
5075
+ * </li>
5076
+ * <li>
5077
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
5078
+ * <ul>
5079
+ * <li>
5080
+ * <p>You can use multiple <code>Expression</code> types and the logical
5081
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
5082
+ * <code>Expression</code> objects. By doing this, you can filter by
5083
+ * more advanced options.</p>
5084
+ * </li>
5085
+ * <li>
5086
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
5087
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
5088
+ * DataTransfer)</code>.</p>
5089
+ * </li>
5090
+ * <li>
5091
+ * <p>The corresponding <code>Expression</code> for this example is as
5092
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
5093
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
5094
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
5095
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
5096
+ * </code>
5097
+ * </p>
5098
+ * </li>
5099
+ * </ul>
4699
5100
  * <note>
4700
5101
  * <p>Because each <code>Expression</code> can have only one operator, the
4701
5102
  * service returns an error if more than one is specified. The following
4702
- * example shows an <code>Expression</code> object that creates an
4703
- * error.</p>
5103
+ * example shows an <code>Expression</code> object that creates an error:
5104
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
5105
+ * [ "DataTransfer" ] } } </code>
5106
+ * </p>
5107
+ * <p>The following is an example of the corresponding error message:
5108
+ * <code>"Expression has more than one roots. Only one root operator is
5109
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
5110
+ * CostCategories"</code>
5111
+ * </p>
4704
5112
  * </note>
4705
- * <p>
4706
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
4707
- * "Values": [ "DataTransfer" ] } } </code>
4708
- * </p>
4709
5113
  * </li>
4710
5114
  * </ul>
4711
5115
  * <note>
@@ -5109,49 +5513,116 @@ export interface GetTagsRequest {
5109
5513
  */
5110
5514
  TagKey?: string;
5111
5515
  /**
5112
- * <p>Use <code>Expression</code> to filter by cost or by usage. There are two patterns: </p>
5516
+ * <p>Use <code>Expression</code> to filter in various Cost Explorer APIs.</p>
5517
+ * <p>Not all <code>Expression</code> types are supported in each API. Refer to the
5518
+ * documentation for each specific API to see what is supported.</p>
5519
+ * <p>There are two patterns:</p>
5113
5520
  * <ul>
5114
5521
  * <li>
5115
- * <p>Simple dimension values - You can set the dimension name and values for the
5116
- * filters that you plan to use. For example, you can filter for
5117
- * <code>REGION==us-east-1 OR REGION==us-west-1</code>. For
5118
- * <code>GetRightsizingRecommendation</code>, the Region is a full name (for
5119
- * example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code>
5120
- * example is as follows:</p>
5121
- * <p>
5122
- * <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ]
5123
- * } }</code>
5124
- * </p>
5125
- * <p>The list of dimension values are OR'd together to retrieve cost or usage data.
5126
- * You can create <code>Expression</code> and <code>DimensionValues</code> objects
5127
- * using either <code>with*</code> methods or <code>set*</code> methods in multiple
5128
- * lines. </p>
5129
- * </li>
5130
- * <li>
5131
- * <p>Compound dimension values with logical operations - You can use multiple
5132
- * <code>Expression</code> types and the logical operators
5133
- * <code>AND/OR/NOT</code> to create a list of one or more
5134
- * <code>Expression</code> objects. By doing this, you can filter on more
5135
- * advanced options. For example, you can filter on <code>((REGION == us-east-1 OR
5136
- * REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
5137
- * DataTransfer)</code>. The <code>Expression</code> for that is as
5138
- * follows:</p>
5139
- * <p>
5140
- * <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [
5141
- * "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values":
5142
- * ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values":
5143
- * ["DataTransfer"] }}} ] } </code>
5144
- * </p>
5522
+ * <p>Simple dimension values.</p>
5523
+ * <ul>
5524
+ * <li>
5525
+ * <p>There are three types of simple dimension values:
5526
+ * <code>CostCategories</code>, <code>Tags</code>, and
5527
+ * <code>Dimensions</code>.</p>
5528
+ * <ul>
5529
+ * <li>
5530
+ * <p>Specify the <code>CostCategories</code> field to define a
5531
+ * filter that acts on Cost Categories.</p>
5532
+ * </li>
5533
+ * <li>
5534
+ * <p>Specify the <code>Tags</code> field to define a filter that
5535
+ * acts on Cost Allocation Tags.</p>
5536
+ * </li>
5537
+ * <li>
5538
+ * <p>Specify the <code>Dimensions</code> field to define a filter
5539
+ * that acts on the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html">
5540
+ * <code>DimensionValues</code>
5541
+ * </a>.</p>
5542
+ * </li>
5543
+ * </ul>
5544
+ * </li>
5545
+ * <li>
5546
+ * <p>For each filter type, you can set the dimension name and values for
5547
+ * the filters that you plan to use.</p>
5548
+ * <ul>
5549
+ * <li>
5550
+ * <p>For example, you can filter for <code>REGION==us-east-1 OR
5551
+ * REGION==us-west-1</code>. For
5552
+ * <code>GetRightsizingRecommendation</code>, the Region is a
5553
+ * full name (for example, <code>REGION==US East (N.
5554
+ * Virginia)</code>.</p>
5555
+ * </li>
5556
+ * <li>
5557
+ * <p>The corresponding <code>Expression</code> for this example is
5558
+ * as follows: <code>{ "Dimensions": { "Key": "REGION", "Values": [
5559
+ * "us-east-1", “us-west-1” ] } }</code>
5560
+ * </p>
5561
+ * </li>
5562
+ * <li>
5563
+ * <p>As shown in the previous example, lists of dimension values
5564
+ * are combined with <code>OR</code> when applying the
5565
+ * filter.</p>
5566
+ * </li>
5567
+ * </ul>
5568
+ * </li>
5569
+ * <li>
5570
+ * <p>You can also set different match options to further control how the
5571
+ * filter behaves. Not all APIs support match options. Refer to the
5572
+ * documentation for each specific API to see what is supported.</p>
5573
+ * <ul>
5574
+ * <li>
5575
+ * <p>For example, you can filter for linked account names that
5576
+ * start with “a”.</p>
5577
+ * </li>
5578
+ * <li>
5579
+ * <p>The corresponding <code>Expression</code> for this example is
5580
+ * as follows: <code>{ "Dimensions": { "Key":
5581
+ * "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ],
5582
+ * "Values": [ "a" ] } }</code>
5583
+ * </p>
5584
+ * </li>
5585
+ * </ul>
5586
+ * </li>
5587
+ * </ul>
5588
+ * </li>
5589
+ * <li>
5590
+ * <p>Compound <code>Expression</code> types with logical operations.</p>
5591
+ * <ul>
5592
+ * <li>
5593
+ * <p>You can use multiple <code>Expression</code> types and the logical
5594
+ * operators <code>AND/OR/NOT</code> to create a list of one or more
5595
+ * <code>Expression</code> objects. By doing this, you can filter by
5596
+ * more advanced options.</p>
5597
+ * </li>
5598
+ * <li>
5599
+ * <p>For example, you can filter by <code>((REGION == us-east-1 OR REGION
5600
+ * == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE !=
5601
+ * DataTransfer)</code>.</p>
5602
+ * </li>
5603
+ * <li>
5604
+ * <p>The corresponding <code>Expression</code> for this example is as
5605
+ * follows: <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION",
5606
+ * "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key":
5607
+ * "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": {
5608
+ * "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }
5609
+ * </code>
5610
+ * </p>
5611
+ * </li>
5612
+ * </ul>
5145
5613
  * <note>
5146
5614
  * <p>Because each <code>Expression</code> can have only one operator, the
5147
5615
  * service returns an error if more than one is specified. The following
5148
- * example shows an <code>Expression</code> object that creates an
5149
- * error.</p>
5616
+ * example shows an <code>Expression</code> object that creates an error:
5617
+ * <code> { "And": [ ... ], "Dimensions": { "Key": "USAGE_TYPE", "Values":
5618
+ * [ "DataTransfer" ] } } </code>
5619
+ * </p>
5620
+ * <p>The following is an example of the corresponding error message:
5621
+ * <code>"Expression has more than one roots. Only one root operator is
5622
+ * allowed for each expression: And, Or, Not, Dimensions, Tags,
5623
+ * CostCategories"</code>
5624
+ * </p>
5150
5625
  * </note>
5151
- * <p>
5152
- * <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE",
5153
- * "Values": [ "DataTransfer" ] } } </code>
5154
- * </p>
5155
5626
  * </li>
5156
5627
  * </ul>
5157
5628
  * <note>
@@ -5387,6 +5858,77 @@ export interface GetUsageForecastRequest {
5387
5858
  */
5388
5859
  PredictionIntervalLevel?: number;
5389
5860
  }
5861
+ export interface UpdateAnomalySubscriptionRequest {
5862
+ /**
5863
+ * <p>A cost anomaly subscription Amazon Resource Name (ARN). </p>
5864
+ */
5865
+ SubscriptionArn: string | undefined;
5866
+ /**
5867
+ * @deprecated
5868
+ *
5869
+ * <p>(deprecated)</p>
5870
+ * <p>The update to the threshold value for receiving notifications. </p>
5871
+ * <p>This field has been deprecated. To update a threshold, use ThresholdExpression. Continued
5872
+ * use of Threshold will be treated as shorthand syntax for a ThresholdExpression.</p>
5873
+ */
5874
+ Threshold?: number;
5875
+ /**
5876
+ * <p>The update to the frequency value that subscribers receive notifications. </p>
5877
+ */
5878
+ Frequency?: AnomalySubscriptionFrequency | string;
5879
+ /**
5880
+ * <p>A list of cost anomaly monitor ARNs. </p>
5881
+ */
5882
+ MonitorArnList?: string[];
5883
+ /**
5884
+ * <p>The update to the subscriber list. </p>
5885
+ */
5886
+ Subscribers?: Subscriber[];
5887
+ /**
5888
+ * <p>The new name of the subscription. </p>
5889
+ */
5890
+ SubscriptionName?: string;
5891
+ /**
5892
+ * <p>The update to the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object
5893
+ * used to specify the anomalies that you want to generate alerts for. This supports dimensions
5894
+ * and nested expressions. The supported dimensions are
5895
+ * <code>ANOMALY_TOTAL_IMPACT_ABSOLUTE</code> and <code>ANOMALY_TOTAL_IMPACT_PERCENTAGE</code>.
5896
+ * The supported nested expression types are <code>AND</code> and <code>OR</code>. The match
5897
+ * option <code>GREATER_THAN_OR_EQUAL</code> is required. Values must be numbers between 0 and
5898
+ * 10,000,000,000.</p>
5899
+ * <p>The following are examples of valid ThresholdExpressions:</p>
5900
+ * <ul>
5901
+ * <li>
5902
+ * <p>Absolute threshold: <code>{ "Dimensions": { "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
5903
+ * "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] } }</code>
5904
+ * </p>
5905
+ * </li>
5906
+ * <li>
5907
+ * <p>Percentage threshold: <code>{ "Dimensions": { "Key":
5908
+ * "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ],
5909
+ * "Values": [ "100" ] } }</code>
5910
+ * </p>
5911
+ * </li>
5912
+ * <li>
5913
+ * <p>
5914
+ * <code>AND</code> two thresholds together: <code>{ "And": [ { "Dimensions": { "Key":
5915
+ * "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values":
5916
+ * [ "100" ] } }, { "Dimensions": { "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
5917
+ * "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] } } ] }</code>
5918
+ * </p>
5919
+ * </li>
5920
+ * <li>
5921
+ * <p>
5922
+ * <code>OR</code> two thresholds together: <code>{ "Or": [ { "Dimensions": { "Key":
5923
+ * "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values":
5924
+ * [ "100" ] } }, { "Dimensions": { "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
5925
+ * "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], "Values": [ "100" ] } } ] }</code>
5926
+ * </p>
5927
+ * </li>
5928
+ * </ul>
5929
+ */
5930
+ ThresholdExpression?: Expression;
5931
+ }
5390
5932
  export interface CreateAnomalyMonitorRequest {
5391
5933
  /**
5392
5934
  * <p>The cost anomaly detection monitor object that you want to create.</p>
@@ -5429,6 +5971,48 @@ export interface CreateAnomalyMonitorRequest {
5429
5971
  */
5430
5972
  ResourceTags?: ResourceTag[];
5431
5973
  }
5974
+ export interface CreateAnomalySubscriptionRequest {
5975
+ /**
5976
+ * <p>The cost anomaly subscription object that you want to create. </p>
5977
+ */
5978
+ AnomalySubscription: AnomalySubscription | undefined;
5979
+ /**
5980
+ * <p>An optional list of tags to associate with the specified <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html">
5981
+ * <code>AnomalySubscription</code>
5982
+ * </a>. You can use resource tags to control access to
5983
+ * your <code>subscription</code> using IAM policies.</p>
5984
+ * <p>Each tag consists of a key and a value, and each key must be unique for the resource. The
5985
+ * following restrictions apply to resource tags:</p>
5986
+ * <ul>
5987
+ * <li>
5988
+ * <p>Although the maximum number of array members is 200, you can assign a maximum of 50
5989
+ * user-tags to one resource. The remaining are reserved for Amazon Web Services use</p>
5990
+ * </li>
5991
+ * <li>
5992
+ * <p>The maximum length of a key is 128 characters</p>
5993
+ * </li>
5994
+ * <li>
5995
+ * <p>The maximum length of a value is 256 characters</p>
5996
+ * </li>
5997
+ * <li>
5998
+ * <p>Keys and values can only contain alphanumeric characters, spaces, and any of the
5999
+ * following: <code>_.:/=+@-</code>
6000
+ * </p>
6001
+ * </li>
6002
+ * <li>
6003
+ * <p>Keys and values are case sensitive</p>
6004
+ * </li>
6005
+ * <li>
6006
+ * <p>Keys and values are trimmed for any leading or trailing whitespaces</p>
6007
+ * </li>
6008
+ * <li>
6009
+ * <p>Don’t use <code>aws:</code> as a prefix for your keys. This prefix is reserved for
6010
+ * Amazon Web Services use</p>
6011
+ * </li>
6012
+ * </ul>
6013
+ */
6014
+ ResourceTags?: ResourceTag[];
6015
+ }
5432
6016
  /**
5433
6017
  * <p>The structure of Cost Categories. This includes detailed metadata and the set of rules
5434
6018
  * for the <code>CostCategory</code> object.</p>
@@ -5552,6 +6136,18 @@ export interface GetAnomalyMonitorsResponse {
5552
6136
  */
5553
6137
  NextPageToken?: string;
5554
6138
  }
6139
+ export interface GetAnomalySubscriptionsResponse {
6140
+ /**
6141
+ * <p>A list of cost anomaly subscriptions that includes the detailed metadata for each one.
6142
+ * </p>
6143
+ */
6144
+ AnomalySubscriptions: AnomalySubscription[] | undefined;
6145
+ /**
6146
+ * <p>The token to retrieve the next set of results. Amazon Web Services provides the token when
6147
+ * the response from a previous call has more results than the maximum page size. </p>
6148
+ */
6149
+ NextPageToken?: string;
6150
+ }
5555
6151
  export interface UpdateCostCategoryDefinitionRequest {
5556
6152
  /**
5557
6153
  * <p>The unique identifier for your Cost Category.</p>
@@ -5625,10 +6221,6 @@ export declare const TagValuesFilterSensitiveLog: (obj: TagValues) => any;
5625
6221
  * @internal
5626
6222
  */
5627
6223
  export declare const SubscriberFilterSensitiveLog: (obj: Subscriber) => any;
5628
- /**
5629
- * @internal
5630
- */
5631
- export declare const AnomalySubscriptionFilterSensitiveLog: (obj: AnomalySubscription) => any;
5632
6224
  /**
5633
6225
  * @internal
5634
6226
  */
@@ -5637,10 +6229,6 @@ export declare const ResourceTagFilterSensitiveLog: (obj: ResourceTag) => any;
5637
6229
  * @internal
5638
6230
  */
5639
6231
  export declare const CreateAnomalyMonitorResponseFilterSensitiveLog: (obj: CreateAnomalyMonitorResponse) => any;
5640
- /**
5641
- * @internal
5642
- */
5643
- export declare const CreateAnomalySubscriptionRequestFilterSensitiveLog: (obj: CreateAnomalySubscriptionRequest) => any;
5644
6232
  /**
5645
6233
  * @internal
5646
6234
  */
@@ -5713,10 +6301,6 @@ export declare const GetAnomalyMonitorsRequestFilterSensitiveLog: (obj: GetAnoma
5713
6301
  * @internal
5714
6302
  */
5715
6303
  export declare const GetAnomalySubscriptionsRequestFilterSensitiveLog: (obj: GetAnomalySubscriptionsRequest) => any;
5716
- /**
5717
- * @internal
5718
- */
5719
- export declare const GetAnomalySubscriptionsResponseFilterSensitiveLog: (obj: GetAnomalySubscriptionsResponse) => any;
5720
6304
  /**
5721
6305
  * @internal
5722
6306
  */
@@ -6089,10 +6673,6 @@ export declare const UpdateAnomalyMonitorRequestFilterSensitiveLog: (obj: Update
6089
6673
  * @internal
6090
6674
  */
6091
6675
  export declare const UpdateAnomalyMonitorResponseFilterSensitiveLog: (obj: UpdateAnomalyMonitorResponse) => any;
6092
- /**
6093
- * @internal
6094
- */
6095
- export declare const UpdateAnomalySubscriptionRequestFilterSensitiveLog: (obj: UpdateAnomalySubscriptionRequest) => any;
6096
6676
  /**
6097
6677
  * @internal
6098
6678
  */
@@ -6125,6 +6705,10 @@ export declare const ExpressionFilterSensitiveLog: (obj: Expression) => any;
6125
6705
  * @internal
6126
6706
  */
6127
6707
  export declare const AnomalyMonitorFilterSensitiveLog: (obj: AnomalyMonitor) => any;
6708
+ /**
6709
+ * @internal
6710
+ */
6711
+ export declare const AnomalySubscriptionFilterSensitiveLog: (obj: AnomalySubscription) => any;
6128
6712
  /**
6129
6713
  * @internal
6130
6714
  */
@@ -6189,10 +6773,18 @@ export declare const GetTagsRequestFilterSensitiveLog: (obj: GetTagsRequest) =>
6189
6773
  * @internal
6190
6774
  */
6191
6775
  export declare const GetUsageForecastRequestFilterSensitiveLog: (obj: GetUsageForecastRequest) => any;
6776
+ /**
6777
+ * @internal
6778
+ */
6779
+ export declare const UpdateAnomalySubscriptionRequestFilterSensitiveLog: (obj: UpdateAnomalySubscriptionRequest) => any;
6192
6780
  /**
6193
6781
  * @internal
6194
6782
  */
6195
6783
  export declare const CreateAnomalyMonitorRequestFilterSensitiveLog: (obj: CreateAnomalyMonitorRequest) => any;
6784
+ /**
6785
+ * @internal
6786
+ */
6787
+ export declare const CreateAnomalySubscriptionRequestFilterSensitiveLog: (obj: CreateAnomalySubscriptionRequest) => any;
6196
6788
  /**
6197
6789
  * @internal
6198
6790
  */
@@ -6205,6 +6797,10 @@ export declare const CreateCostCategoryDefinitionRequestFilterSensitiveLog: (obj
6205
6797
  * @internal
6206
6798
  */
6207
6799
  export declare const GetAnomalyMonitorsResponseFilterSensitiveLog: (obj: GetAnomalyMonitorsResponse) => any;
6800
+ /**
6801
+ * @internal
6802
+ */
6803
+ export declare const GetAnomalySubscriptionsResponseFilterSensitiveLog: (obj: GetAnomalySubscriptionsResponse) => any;
6208
6804
  /**
6209
6805
  * @internal
6210
6806
  */