Skip to main content

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.

WARNING
The budget adjustments API is currently in
Beta
and subject to change.

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.
NOTE
Use sloctl to manage future adjustment events.
Scroll down to see code samples

Budget adjustments and RBAC

Only Organization Admins can apply, update and delete budget adjustments.

Limits for budget adjustments

The following limits apply to budget adjustments:

  • You can modify or update up to 30 unique events per SLO in one action.

Access Token

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.

NOTE
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:
None
header Parameters
Organization
required
string

ID of your organization.

Responses

Request samples

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

Content type
application/json
{
  • "access_token": "string"
}

Adjustment events

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).

NOTE
The /{adjustmentName}/events endpoint can return a maximum of 500 events.
You can optionally filter for a specific SLO (only one). If an SLO is defined, only events for that SLO will be returned, but the results will also include other SLOs associated with those events.

The results are sorted by event start time.

To learn more, see editing budget adjustments.

Authorizations:
bearerAuth
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).
This date must be in the past.

project
string

The name of the project. Required when sloName is defined.

sloName
string <= 63 characters

The name of the SLO to return. Required when project is defined.

header Parameters
Organization
required
string

ID of your organization.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Update adjustment events

Update existing events with new values. Values for eventStart and eventEnd are required.

NOTE
Budget adjustment recalculations can be run for events from the past 30 days.

Authorizations:
bearerAuth
path Parameters
adjustmentName
required
string

The name of the adjustment.

header Parameters
Organization
required
string

ID of your organization.

Request Body schema: application/json
required

Optional description in Markdown

Array
object

Properties that will be updated

Array of objects (SLO)
eventStart
string <date-time>
eventEnd
string <date-time>

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
Example
{
  • "errors": [
    ]
}

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.

NOTE
Budget adjustment recalculations can be run for events from the past 30 days.

Authorizations:
bearerAuth
path Parameters
adjustmentName
required
string

The name of the adjustment.

header Parameters
Organization
required
string

ID of your organization.

Request Body schema: application/json
required

Optional description in Markdown

Array
Array of objects (SLO)
eventStart
string <date-time>
eventEnd
string <date-time>

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
Example
{
  • "errors": [
    ]
}