UpdateServiceLevelObjective
Updates an existing service level objective (SLO). If you omit parameters, the previous values of those parameters are retained.
You cannot change from a period-based SLO to a request-based SLO, or change from a request-based SLO to a period-based SLO.
Request Syntax
PATCH /slo/Id
HTTP/1.1
Content-type: application/json
{
"BurnRateConfigurations": [
{
"LookBackWindowMinutes": number
}
],
"Description": "string
",
"Goal": {
"AttainmentGoal": number
,
"Interval": { ... },
"WarningThreshold": number
},
"RequestBasedSliConfig": {
"ComparisonOperator": "string
",
"MetricThreshold": number
,
"RequestBasedSliMetricConfig": {
"KeyAttributes": {
"string
" : "string
"
},
"MetricType": "string
",
"MonitoredRequestCountMetric": { ... },
"OperationName": "string
",
"TotalRequestCountMetric": [
{
"AccountId": "string
",
"Expression": "string
",
"Id": "string
",
"Label": "string
",
"MetricStat": {
"Metric": {
"Dimensions": [
{
"Name": "string
",
"Value": "string
"
}
],
"MetricName": "string
",
"Namespace": "string
"
},
"Period": number
,
"Stat": "string
",
"Unit": "string
"
},
"Period": number
,
"ReturnData": boolean
}
]
}
},
"SliConfig": {
"ComparisonOperator": "string
",
"MetricThreshold": number
,
"SliMetricConfig": {
"KeyAttributes": {
"string
" : "string
"
},
"MetricDataQueries": [
{
"AccountId": "string
",
"Expression": "string
",
"Id": "string
",
"Label": "string
",
"MetricStat": {
"Metric": {
"Dimensions": [
{
"Name": "string
",
"Value": "string
"
}
],
"MetricName": "string
",
"Namespace": "string
"
},
"Period": number
,
"Stat": "string
",
"Unit": "string
"
},
"Period": number
,
"ReturnData": boolean
}
],
"MetricType": "string
",
"OperationName": "string
",
"PeriodSeconds": number
,
"Statistic": "string
"
}
}
}
URI Request Parameters
The request uses the following URI parameters.
- Id
-
The Amazon Resource Name (ARN) or name of the service level objective that you want to update.
Pattern:
[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]$|^arn:aws:application-signals:[^:]*:[^:]*:slo/[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]
Required: Yes
Request Body
The request accepts the following data in JSON format.
- BurnRateConfigurations
-
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.
Type: Array of BurnRateConfiguration objects
Array Members: Minimum number of 0 items. Maximum number of 10 items.
Required: No
- Description
-
An optional description for the SLO.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 1024.
Required: No
- Goal
-
A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.
Type: Goal object
Required: No
- RequestBasedSliConfig
-
If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both
SliConfig
andRequestBasedSliConfig
in the same operation.Type: RequestBasedServiceLevelIndicatorConfig object
Required: No
- SliConfig
-
If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor.
Type: ServiceLevelIndicatorConfig object
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"Slo": {
"Arn": "string",
"BurnRateConfigurations": [
{
"LookBackWindowMinutes": number
}
],
"CreatedTime": number,
"Description": "string",
"EvaluationType": "string",
"Goal": {
"AttainmentGoal": number,
"Interval": { ... },
"WarningThreshold": number
},
"LastUpdatedTime": number,
"Name": "string",
"RequestBasedSli": {
"ComparisonOperator": "string",
"MetricThreshold": number,
"RequestBasedSliMetric": {
"KeyAttributes": {
"string" : "string"
},
"MetricType": "string",
"MonitoredRequestCountMetric": { ... },
"OperationName": "string",
"TotalRequestCountMetric": [
{
"AccountId": "string",
"Expression": "string",
"Id": "string",
"Label": "string",
"MetricStat": {
"Metric": {
"Dimensions": [
{
"Name": "string",
"Value": "string"
}
],
"MetricName": "string",
"Namespace": "string"
},
"Period": number,
"Stat": "string",
"Unit": "string"
},
"Period": number,
"ReturnData": boolean
}
]
}
},
"Sli": {
"ComparisonOperator": "string",
"MetricThreshold": number,
"SliMetric": {
"KeyAttributes": {
"string" : "string"
},
"MetricDataQueries": [
{
"AccountId": "string",
"Expression": "string",
"Id": "string",
"Label": "string",
"MetricStat": {
"Metric": {
"Dimensions": [
{
"Name": "string",
"Value": "string"
}
],
"MetricName": "string",
"Namespace": "string"
},
"Period": number,
"Stat": "string",
"Unit": "string"
},
"Period": number,
"ReturnData": boolean
}
],
"MetricType": "string",
"OperationName": "string"
}
}
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- Slo
-
A structure that contains information about the SLO that you just updated.
Type: ServiceLevelObjective object
Errors
For information about the errors that are common to all actions, see Common Errors.
- ResourceNotFoundException
-
Resource not found.
HTTP Status Code: 404
- ThrottlingException
-
The request was throttled because of quota limits.
HTTP Status Code: 429
- ValidationException
-
The resource is not valid.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: