Datadog APM · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Datadog APM — (API v1) Service Level Objectives API
11 actions
11 updates
phrasing
extends
openapi/datadog-apm-service-level-objectives-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Datadog APM's API. It is a proposal applied on top of the contract, not a document Datadog APM publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/api/v1/slo'].get
$.paths['/api/v1/slo'].post
$.paths['/api/v1/slo/bulk_delete'].post
$.paths['/api/v1/slo/can_delete'].get
$.paths['/api/v1/slo/search'].get
$.paths['/api/v1/slo/{slo_id}'].get
$.paths['/api/v1/slo/{slo_id}'].put
$.paths['/api/v1/slo/{slo_id}'].delete
$.paths['/api/v1/slo/{slo_id}/history'].get
$.paths['/api/v1/slo/{slo_id}/corrections'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Datadog APM — (API v1) Service Level Objectives API
version: 1.0.0
extends: openapi/datadog-apm-service-level-objectives-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/api/v1/slo'].get
update:
x-apievangelist-phrasing:
intent: List SLOs with filters
effect: read
questions:
- Which SLOs in our org carry a particular tag?
- Can I list only the SLOs that have been deleted?
- What SLOs do we have for a specific set of SLO IDs?
instructions:
- text: List all SLOs tagged {tags_query}.
slots:
tags_query: query.tags_query
- text: Get the SLOs with IDs {ids}.
slots:
ids: query.ids
- text: List {limit} SLOs whose names match {query}, starting at offset {offset}.
slots:
limit: query.limit
query: query.query
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo'].post
update:
x-apievangelist-phrasing:
intent: Create a service level objective
effect: write
questions:
- How do I set up a 99.9% availability SLO over 30 days?
- Can I create a monitor-based SLO from a list of monitor IDs?
- What SLO types can I choose when defining a new objective?
instructions:
- text: Create a {type} SLO named {name} with thresholds {thresholds}.
slots:
type: requestBody.type
name: requestBody.name
thresholds: requestBody.thresholds
- text: Create a monitor SLO called {name} over monitors {monitor_ids} with thresholds {thresholds}.
slots:
name: requestBody.name
monitor_ids: requestBody.monitor_ids
thresholds: requestBody.thresholds
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/bulk_delete'].post
update:
x-apievangelist-phrasing:
intent: Bulk delete SLO thresholds by timeframe
effect: destructive
questions:
- Can I drop just the 7-day threshold from several SLOs at once?
- What happens to an SLO when I bulk delete all of its timeframes?
instructions:
- text: Bulk delete the 7d timeframe from these SLOs in one call.
- text: Remove the listed threshold timeframes across multiple SLOs at once.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/can_delete'].get
update:
x-apievangelist-phrasing:
intent: Check whether SLOs can be safely deleted
effect: read
questions:
- Is an SLO still used on a dashboard before I delete it?
- Can I check several SLOs for dependencies before removing them?
instructions:
- text: Check whether SLOs {ids} can be safely deleted.
slots:
ids: query.ids
- text: Verify nothing references SLO {ids} before I remove it.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/search'].get
update:
x-apievangelist-phrasing:
intent: Search SLOs with facets
effect: read
questions:
- Which SLOs belong to a given service or team when I search by query syntax?
- Can an SLO search also return facet counts?
instructions:
- text: Search SLOs for {query}.
slots:
query: query.query
- text: Search SLOs matching {query} with include_facets set to {include_facets}.
slots:
query: query.query
include_facets: query.include_facets
- text: Show search results page {page} with {size} SLOs per page.
slots:
page: query.page[number]
size: query.page[size]
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/{slo_id}'].get
update:
x-apievangelist-phrasing:
intent: Get an SLO's details
effect: read
questions:
- What target and timeframe is a specific SLO configured with?
- Which monitors alert on a given SLO?
instructions:
- text: Get the details of SLO {slo_id}.
slots:
slo_id: path.slo_id
- text: Show SLO {slo_id} along with the monitor alerts that reference it, setting that flag to {with_alerts}.
slots:
slo_id: path.slo_id
with_alerts: query.with_configured_alert_ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/{slo_id}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing SLO
effect: write
questions:
- How do I raise the target on an SLO I already have?
- Can I change the tags or description of an existing SLO?
instructions:
- text: Update SLO {slo_id} to use thresholds {thresholds}.
slots:
slo_id: path.slo_id
thresholds: requestBody.thresholds
- text: Rename existing SLO {slo_id} to {name}, keeping type {type} and thresholds {thresholds}.
slots:
slo_id: path.slo_id
name: requestBody.name
type: requestBody.type
thresholds: requestBody.thresholds
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/{slo_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an SLO
effect: destructive
questions:
- Why does deleting an SLO return a conflict when it's on a dashboard?
- Can I force delete an SLO that other resources still reference?
instructions:
- text: Delete SLO {slo_id}.
slots:
slo_id: path.slo_id
- text: Force delete SLO {slo_id} even though it's referenced elsewhere, with force set to {force}.
slots:
slo_id: path.slo_id
force: query.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/{slo_id}/history'].get
update:
x-apievangelist-phrasing:
intent: Get an SLO's history and error budget
effect: read
questions:
- How much error budget does an SLO have left for last month?
- Can I see an SLO's history without corrections applied?
instructions:
- text: Get the history of SLO {slo_id} from {from_ts} to {to_ts}.
slots:
slo_id: path.slo_id
from_ts: query.from_ts
to_ts: query.to_ts
- text: Show SLO {slo_id} history between {from_ts} and {to_ts} with remaining error budget against target {target}.
slots:
slo_id: path.slo_id
from_ts: query.from_ts
to_ts: query.to_ts
target: query.target
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/slo/{slo_id}/corrections'].get
update:
x-apievangelist-phrasing:
intent: List corrections applied to one SLO
effect: read
questions:
- Which corrections have been applied to one particular SLO?
- What downtime windows are excluded from a single SLO's calculation?
instructions:
- text: List the corrections applied to SLO {slo_id}.
slots:
slo_id: path.slo_id
- text: Show every correction attached to SLO {slo_id}.
slots:
slo_id: path.slo_id
method: generated
generated: '2026-09-26'