diff --git a/clients/client-application-signals/src/commands/CreateServiceLevelObjectiveCommand.ts b/clients/client-application-signals/src/commands/CreateServiceLevelObjectiveCommand.ts index ee59a4e0a8a6c..a537aa457dff4 100644 --- a/clients/client-application-signals/src/commands/CreateServiceLevelObjectiveCommand.ts +++ b/clients/client-application-signals/src/commands/CreateServiceLevelObjectiveCommand.ts @@ -277,6 +277,11 @@ export interface CreateServiceLevelObjectiveCommandOutput extends CreateServiceL * Value: "STRING_VALUE", // required * }, * ], + * BurnRateConfigurations: [ // BurnRateConfigurations + * { // BurnRateConfiguration + * LookBackWindowMinutes: Number("int"), // required + * }, + * ], * }; * const command = new CreateServiceLevelObjectiveCommand(input); * const response = await client.send(command); @@ -427,6 +432,11 @@ export interface CreateServiceLevelObjectiveCommandOutput extends CreateServiceL * // AttainmentGoal: Number("double"), * // WarningThreshold: Number("double"), * // }, + * // BurnRateConfigurations: [ // BurnRateConfigurations + * // { // BurnRateConfiguration + * // LookBackWindowMinutes: Number("int"), // required + * // }, + * // ], * // }, * // }; * diff --git a/clients/client-application-signals/src/commands/GetServiceLevelObjectiveCommand.ts b/clients/client-application-signals/src/commands/GetServiceLevelObjectiveCommand.ts index 962fd3a7ed17b..5ab40b1aa5411 100644 --- a/clients/client-application-signals/src/commands/GetServiceLevelObjectiveCommand.ts +++ b/clients/client-application-signals/src/commands/GetServiceLevelObjectiveCommand.ts @@ -191,6 +191,11 @@ export interface GetServiceLevelObjectiveCommandOutput extends GetServiceLevelOb * // AttainmentGoal: Number("double"), * // WarningThreshold: Number("double"), * // }, + * // BurnRateConfigurations: [ // BurnRateConfigurations + * // { // BurnRateConfiguration + * // LookBackWindowMinutes: Number("int"), // required + * // }, + * // ], * // }, * // }; * diff --git a/clients/client-application-signals/src/commands/UpdateServiceLevelObjectiveCommand.ts b/clients/client-application-signals/src/commands/UpdateServiceLevelObjectiveCommand.ts index d2b37ea58e4b0..efdc5ab080fd6 100644 --- a/clients/client-application-signals/src/commands/UpdateServiceLevelObjectiveCommand.ts +++ b/clients/client-application-signals/src/commands/UpdateServiceLevelObjectiveCommand.ts @@ -189,6 +189,11 @@ export interface UpdateServiceLevelObjectiveCommandOutput extends UpdateServiceL * AttainmentGoal: Number("double"), * WarningThreshold: Number("double"), * }, + * BurnRateConfigurations: [ // BurnRateConfigurations + * { // BurnRateConfiguration + * LookBackWindowMinutes: Number("int"), // required + * }, + * ], * }; * const command = new UpdateServiceLevelObjectiveCommand(input); * const response = await client.send(command); @@ -339,6 +344,11 @@ export interface UpdateServiceLevelObjectiveCommandOutput extends UpdateServiceL * // AttainmentGoal: Number("double"), * // WarningThreshold: Number("double"), * // }, + * // BurnRateConfigurations: [ // BurnRateConfigurations + * // { // BurnRateConfiguration + * // LookBackWindowMinutes: Number("int"), // required + * // }, + * // ], * // }, * // }; * diff --git a/clients/client-application-signals/src/models/models_0.ts b/clients/client-application-signals/src/models/models_0.ts index 5a88dd5deb798..6792da3b4d1ef 100644 --- a/clients/client-application-signals/src/models/models_0.ts +++ b/clients/client-application-signals/src/models/models_0.ts @@ -2016,6 +2016,25 @@ export class ConflictException extends __BaseException { } } +/** + *

This object defines the length of the look-back window used to calculate one burn rate metric + * for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of + * exactly 1 indicates that the SLO goal will be met exactly.

+ *

For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:

+ *

+ * burn rate = error rate over the look-back window / (1 - attainment goal percentage) + *

+ *

For more information about burn rates, see Calculate burn rates.

+ * @public + */ +export interface BurnRateConfiguration { + /** + *

The number of minutes to use as the look-back window.

+ * @public + */ + LookBackWindowMinutes: number | undefined; +} + /** *

Use this structure to specify the information for the metric that a period-based SLO will monitor.

* @public @@ -2263,6 +2282,13 @@ export interface CreateServiceLevelObjectiveInput { * @public */ Tags?: Tag[] | undefined; + + /** + *

Use this array to create burn rates for this SLO. Each + * burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

+ * @public + */ + BurnRateConfigurations?: BurnRateConfiguration[] | undefined; } /** @@ -2333,6 +2359,13 @@ export interface ServiceLevelObjective { * @public */ Goal: Goal | undefined; + + /** + *

Each object in this array defines the length of the look-back window used to calculate one burn rate metric + * for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

+ * @public + */ + BurnRateConfigurations?: BurnRateConfiguration[] | undefined; } /** @@ -2583,6 +2616,13 @@ export interface UpdateServiceLevelObjectiveInput { * @public */ Goal?: Goal | undefined; + + /** + *

Use this array to create burn rates for this SLO. Each + * burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

+ * @public + */ + BurnRateConfigurations?: BurnRateConfiguration[] | undefined; } /** diff --git a/clients/client-application-signals/src/protocols/Aws_restJson1.ts b/clients/client-application-signals/src/protocols/Aws_restJson1.ts index 73a13fb9066fa..9772c095b2533 100644 --- a/clients/client-application-signals/src/protocols/Aws_restJson1.ts +++ b/clients/client-application-signals/src/protocols/Aws_restJson1.ts @@ -80,6 +80,7 @@ import { import { ApplicationSignalsServiceException as __BaseException } from "../models/ApplicationSignalsServiceException"; import { AccessDeniedException, + BurnRateConfiguration, CalendarInterval, ConflictException, Dimension, @@ -144,6 +145,7 @@ export const se_CreateServiceLevelObjectiveCommand = async ( let body: any; body = JSON.stringify( take(input, { + BurnRateConfigurations: (_) => _json(_), Description: [], Goal: (_) => se_Goal(_, context), Name: [], @@ -441,6 +443,7 @@ export const se_UpdateServiceLevelObjectiveCommand = async ( let body: any; body = JSON.stringify( take(input, { + BurnRateConfigurations: (_) => _json(_), Description: [], Goal: (_) => se_Goal(_, context), RequestBasedSliConfig: (_) => se_RequestBasedServiceLevelIndicatorConfig(_, context), @@ -922,6 +925,10 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont // se_Attributes omitted. +// se_BurnRateConfiguration omitted. + +// se_BurnRateConfigurations omitted. + /** * serializeAws_restJson1CalendarInterval */ @@ -1014,6 +1021,10 @@ const se_ServiceLevelIndicatorConfig = (input: ServiceLevelIndicatorConfig, cont // de_Attributes omitted. +// de_BurnRateConfiguration omitted. + +// de_BurnRateConfigurations omitted. + /** * deserializeAws_restJson1CalendarInterval */ @@ -1120,6 +1131,7 @@ const de_ServiceLevelIndicator = (output: any, context: __SerdeContext): Service const de_ServiceLevelObjective = (output: any, context: __SerdeContext): ServiceLevelObjective => { return take(output, { Arn: __expectString, + BurnRateConfigurations: _json, CreatedTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Description: __expectString, EvaluationType: __expectString, diff --git a/codegen/sdk-codegen/aws-models/application-signals.json b/codegen/sdk-codegen/aws-models/application-signals.json index cd9350f5ce282..fac38137c6431 100644 --- a/codegen/sdk-codegen/aws-models/application-signals.json +++ b/codegen/sdk-codegen/aws-models/application-signals.json @@ -548,6 +548,41 @@ "com.amazonaws.applicationsignals#BudgetSecondsRemaining": { "type": "integer" }, + "com.amazonaws.applicationsignals#BurnRateConfiguration": { + "type": "structure", + "members": { + "LookBackWindowMinutes": { + "target": "com.amazonaws.applicationsignals#BurnRateLookBackWindowMinutes", + "traits": { + "smithy.api#documentation": "

The number of minutes to use as the look-back window.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines the length of the look-back window used to calculate one burn rate metric\n for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of\n exactly 1 indicates that the SLO goal will be met exactly.

\n

For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:

\n

\n burn rate = error rate over the look-back window / (1 - attainment goal percentage)\n

\n

For more information about burn rates, see Calculate burn rates.

" + } + }, + "com.amazonaws.applicationsignals#BurnRateConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationsignals#BurnRateConfiguration" + }, + "traits": { + "smithy.api#length": { + "max": 10 + } + } + }, + "com.amazonaws.applicationsignals#BurnRateLookBackWindowMinutes": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10080 + } + } + }, "com.amazonaws.applicationsignals#CalendarInterval": { "type": "structure", "members": { @@ -674,6 +709,12 @@ "traits": { "smithy.api#documentation": "

A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO.\n To be able to associate tags with the SLO when you create the SLO, you must\n have the cloudwatch:TagResource permission.

\n

Tags can help you organize and categorize your resources. You can also use them to scope user\n permissions by granting a user\n permission to access or change only resources with certain tag values.

" } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Use this array to create burn rates for this SLO. Each \n burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": { @@ -2543,6 +2584,12 @@ "traits": { "smithy.api#required": {} } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Each object in this array defines the length of the look-back window used to calculate one burn rate metric\n for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": { @@ -3392,6 +3439,12 @@ "traits": { "smithy.api#documentation": "

A structure that contains the attributes that determine the goal of the SLO. This includes\n the time period for evaluation and the attainment threshold.

" } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Use this array to create burn rates for this SLO. Each \n burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": {