Nobl9 Adjustments API (beta) (0.1.0)
The Nobl9 budget adjustments API allows you to manage events related to SLO error budget adjustments. Using the /api/budgetadjustments/v1
endpoint, you can retrieve past and ongoing adjustment events, update existing events, or delete them.
The budget adjustments API is currently in
While using this API, please take into account that future updates may modify the specification or behavior. We recommend designing your implementation with flexibility to accommodate potential changes.
Use sloctl to manage future adjustment events.
Only Organization Admins can apply, update and delete budget adjustments.
The following limits apply to budget adjustments:
- You can modify or update up to 30 unique events per SLO in one action.
Generate access token
To generate access token, you must provide Authorization header with the Basic
scheme.
The access token consists of your Client ID and Client Secret in the following format: clientId:clientSecret
.
Rate Limits for access token
All requests to the endpoint /api/accessToken
are rate limited. An organization can make 1 request per 3 seconds.
The API returns the 429 HTTP
status code when this limit is exceeded.
Your token will be valid for 1 hour. Minimize the usage of this endpoint and reuse the token until it expires.
We recommend downloading your token once and reusing it in your CI/CD pipeline. Generating multiple tokens may exceed your rate limits.
Authorizations:
header Parameters
Organization required | string ID of your organization. |
Responses
Request samples
- cURL
curl -X \ POST https://app.nobl9.com/api/accessToken -H 'Accept: application/json; version=v1alpha' \ -H 'Organization: nobl9-dev' \ -H 'Authorization: Basic ${encoded_access_keys}'
Response samples
- 200
- 401
- 403
{- "access_token": "string"
}
A budget adjustment event represents a single occurrence of a budget adjustment applied to an SLO based on a predefined budget adjustment definition for the BudgetAdjustment
kind in YAML.
Get a list of adjustments events
Returns a list of events for the specified adjustment along with related SLO. This endpoint only returns past and ongoing events (events that have already started).
The
/{adjustmentName}/events
endpoint can return a maximum of 500 events.The results are sorted by event start time.
To learn more, see editing budget adjustments.
Authorizations:
path Parameters
adjustmentName required | string The name of the adjustment. |
query Parameters
from required | string <date-time> Example: from=2024-01-25T23:00:00Z Specifies the start date and time for the data range (in UTC). |
to required | string <date-time> Example: to=2024-01-25T23:59:00Z Specifies the end date and time for the data range (in UTC). |
project | string The name of the |
sloName | string <= 63 characters The name of the SLO to return. Required when |
header Parameters
Organization required | string ID of your organization. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
[- {
- "slos": [
- {
- "project": "first-sample-project",
- "name": "first-sample-slo-name"
}, - {
- "project": "second-sample-project",
- "name": "second-sample-slo-name"
}
], - "eventStart": "2024-06-05T13:00:00Z",
- "eventEnd": "2024-06-05T14:00:00Z"
}, - {
- "slos": [
- {
- "project": "third-sample-project",
- "name": "third-sample-slo-name"
}
], - "eventStart": "2024-06-05T18:00:00Z",
- "eventEnd": "2024-06-05T19:00:00Z"
}
]
Update adjustment events
Update existing events with new values. Values for eventStart
and eventEnd
are required.
Budget adjustment recalculations can be run for events from the past 30 days.
Authorizations:
path Parameters
adjustmentName required | string The name of the adjustment. |
header Parameters
Organization required | string ID of your organization. |
Request Body schema: application/jsonrequired
Optional description in Markdown
object Properties that will be updated | |
Array of objects (SLO) | |
eventStart | string <date-time> |
eventEnd | string <date-time> |
Responses
Request samples
- Payload
[- {
- "update": {
- "eventStart": "2024-06-05T13:00:00Z",
- "eventEnd": "2024-06-05T13:00:00Z"
}, - "slos": [
- {
- "project": "first-sample-project",
- "name": "first-sample-slo-name"
}, - {
- "project": "second-sample-project",
- "name": "second-sample-slo-name"
}
], - "eventStart": "2024-06-05T13:00:00Z",
- "eventEnd": "2024-06-05T13:00:00Z"
}
]
Response samples
- 400
- 401
- 403
- 404
{- "errors": [
- {
- "source": {
- "propertyName": "[3].slos[0].slo",
- "propertyValue": "{\"project\":\"first-sample-project\",\"name\":\"not-existing-slo\"}"
}, - "title": "The SLO does not exist",
- "code": "slo_does_not_exist"
}
]
}
Delete adjustment events
Deletes existing events. All specified events and their associated SLOs must exist. If any event or The SLO does not exist, none will be deleted, and an error will be returned.
Budget adjustment recalculations can be run for events from the past 30 days.
Authorizations:
path Parameters
adjustmentName required | string The name of the adjustment. |
header Parameters
Organization required | string ID of your organization. |
Request Body schema: application/jsonrequired
Optional description in Markdown
Array of objects (SLO) | |
eventStart | string <date-time> |
eventEnd | string <date-time> |
Responses
Request samples
- Payload
[- {
- "slos": [
- {
- "project": "first-sample-project",
- "name": "first-sample-slo-name"
}, - {
- "project": "second-sample-project",
- "name": "second-sample-slo-name"
}
], - "eventStart": "2024-06-05T13:00:00Z",
- "eventEnd": "2024-06-05T13:00:00Z"
}
]
Response samples
- 400
- 401
- 403
- 404
{- "errors": [
- {
- "source": {
- "propertyName": "[3].slos[0].slo",
- "propertyValue": "{\"project\":\"first-sample-project\",\"name\":\"not-existing-slo\"}"
}, - "title": "The SLO does not exist",
- "code": "slo_does_not_exist"
}
]
}