Elastic Stack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Kibana Slo API
16 actions
16 updates
phrasing
extends
openapi/elk-stack-slo-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Elastic Stack's API. It is a proposal applied on top of the contract, not a document Elastic Stack publishes.
What the actions change
x-apievangelist-phrasing
Targets 16
$.info
$.paths['/s/{spaceId}/api/observability/slos'].get
$.paths['/s/{spaceId}/api/observability/slos'].post
$.paths['/s/{spaceId}/api/observability/slos/_bulk_delete'].post
$.paths['/s/{spaceId}/api/observability/slos/_bulk_delete/{taskId}'].get
$.paths['/s/{spaceId}/api/observability/slos/_bulk_purge_rollup'].post
$.paths['/s/{spaceId}/api/observability/slos/_bulk_snapshot'].post
$.paths['/s/{spaceId}/api/observability/slos/_delete_instances'].post
$.paths['/s/{spaceId}/api/observability/slos/{sloId}'].get
$.paths['/s/{spaceId}/api/observability/slos/{sloId}'].put
$.paths['/s/{spaceId}/api/observability/slos/{sloId}'].delete
$.paths['/s/{spaceId}/api/observability/slos/{sloId}/_reset'].post
$.paths['/s/{spaceId}/api/observability/slos/{sloId}/_snapshot'].get
$.paths['/s/{spaceId}/api/observability/slos/{sloId}/disable'].post
$.paths['/s/{spaceId}/api/observability/slos/{sloId}/enable'].post
$.paths['/s/{spaceId}/internal/observability/slos/_definitions'].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 Kibana Slo API
version: 1.0.0
extends: openapi/elk-stack-slo-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: 15
- target: $.paths['/s/{spaceId}/api/observability/slos'].get
update:
x-apievangelist-phrasing:
intent: List and search SLOs
effect: read
questions:
- Which service level objectives are defined in my Kibana space?
- Can I filter SLOs with a KQL query and hide stale ones?
- How do I page through SLOs sorted by status or error budget?
instructions:
- text: List the SLOs in space {spaceId}.
slots:
spaceId: path.spaceId
- text: Find SLOs in space {spaceId} matching {kqlQuery}.
slots:
spaceId: path.spaceId
kqlQuery: query.kqlQuery
- text: Show page {page} of SLOs in {spaceId} sorted by {sortBy}.
slots:
page: query.page
spaceId: path.spaceId
sortBy: query.sortBy
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos'].post
update:
x-apievangelist-phrasing:
intent: Create a service level objective
effect: write
questions:
- How do I define a new SLO with a target and time window?
- Can I choose occurrences or timeslices as the budgeting method for a new SLO?
instructions:
- text: 'Create SLO {name} in {spaceId}: {description}; indicator {indicator}, target {objective}, window {timeWindow}, {budgetingMethod} budgeting.'
slots:
name: requestBody.name
spaceId: path.spaceId
indicator: requestBody.indicator
objective: requestBody.objective
timeWindow: requestBody.timeWindow
budgetingMethod: requestBody.budgetingMethod
description: requestBody.description
- text: 'Set up a new {name} objective in {spaceId} grouped by {groupBy}: {description}, {indicator}, target {objective}, {timeWindow}, {budgetingMethod}.'
slots:
name: requestBody.name
spaceId: path.spaceId
groupBy: requestBody.groupBy
description: requestBody.description
indicator: requestBody.indicator
objective: requestBody.objective
timeWindow: requestBody.timeWindow
budgetingMethod: requestBody.budgetingMethod
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/_bulk_delete'].post
update:
x-apievangelist-phrasing:
intent: Bulk delete SLO definitions
effect: destructive
questions:
- How do I delete many SLOs and their summary and rollup data at once?
- Does bulk SLO deletion run as a background task I can track?
instructions:
- text: Bulk delete SLOs {list} in space {spaceId}.
slots:
list: requestBody.list
spaceId: path.spaceId
- text: Start a background deletion of the SLO definitions {list} from {spaceId}.
slots:
list: requestBody.list
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/_bulk_delete/{taskId}'].get
update:
x-apievangelist-phrasing:
intent: Check the status of a bulk SLO deletion
effect: read
questions:
- Has my bulk SLO deletion finished yet?
- What were the results of a bulk delete task for SLOs?
instructions:
- text: Check bulk delete task {taskId} in space {spaceId}.
slots:
taskId: path.taskId
spaceId: path.spaceId
- text: Tell me whether SLO deletion task {taskId} in {spaceId} is complete.
slots:
taskId: path.taskId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/_bulk_purge_rollup'].post
update:
x-apievangelist-phrasing:
intent: Purge SLO rollup and summary data
effect: destructive
questions:
- Can I purge old rollup data for SLOs while keeping the definitions?
- What purge policy options exist when clearing SLO rollup data?
instructions:
- text: Purge rollup data for SLOs {list} in {spaceId} using purge policy {purgePolicy}.
slots:
list: requestBody.list
spaceId: path.spaceId
purgePolicy: requestBody.purgePolicy
- text: Clear the rollup and summary history of SLOs {list} in space {spaceId} per {purgePolicy}.
slots:
list: requestBody.list
spaceId: path.spaceId
purgePolicy: requestBody.purgePolicy
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/_bulk_snapshot'].post
update:
x-apievangelist-phrasing:
intent: Compute summaries for many SLO instances at once
effect: read
questions:
- How do I get the status of up to 100 SLO instances as of a past moment?
- Can I compute several SLO summaries in a single synchronous request?
instructions:
- text: Compute SLO summaries for {requests} in {spaceId} at {at}.
slots:
requests: requestBody.requests
spaceId: path.spaceId
at: requestBody.at
- text: Batch snapshot these SLO instances {requests} as of {at} in space {spaceId}.
slots:
requests: requestBody.requests
at: requestBody.at
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/_delete_instances'].post
update:
x-apievangelist-phrasing:
intent: Delete data for specific SLO instances
effect: destructive
questions:
- How do I remove the rollup and summary data for particular SLO instance IDs?
- Can I delete one grouped instance of an SLO without deleting the SLO?
instructions:
- text: Delete the SLO instances {list} in space {spaceId}.
slots:
list: requestBody.list
spaceId: path.spaceId
- text: Remove summary data for these sloId and instanceId pairs {list} in {spaceId}.
slots:
list: requestBody.list
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}'].get
update:
x-apievangelist-phrasing:
intent: Get an SLO
effect: read
questions:
- Where do I fetch one SLO's definition and current status?
- Can I get a single instance of a grouped SLO?
instructions:
- text: Get SLO {sloId} in space {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
- text: Show instance {instanceId} of SLO {sloId} in {spaceId}.
slots:
instanceId: query.instanceId
sloId: path.sloId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}'].put
update:
x-apievangelist-phrasing:
intent: Update an SLO
effect: write
questions:
- Can I change the target objective of an existing SLO?
- How do I edit an SLO's name, tags or time window?
instructions:
- text: Update SLO {sloId} in {spaceId} to objective {objective}.
slots:
sloId: path.sloId
spaceId: path.spaceId
objective: requestBody.objective
- text: Rename existing SLO {sloId} in space {spaceId} to {name}.
slots:
sloId: path.sloId
spaceId: path.spaceId
name: requestBody.name
- text: Change the time window of SLO {sloId} in {spaceId} to {timeWindow}.
slots:
sloId: path.sloId
spaceId: path.spaceId
timeWindow: requestBody.timeWindow
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an SLO
effect: destructive
questions:
- How do I delete a single SLO I no longer need?
- Can I remove one service level objective by its ID?
instructions:
- text: Delete SLO {sloId} in space {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
- text: Remove the objective {sloId} from {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}/_reset'].post
update:
x-apievangelist-phrasing:
intent: Reset an SLO
effect: write
questions:
- How do I reset an SLO so it recalculates from scratch?
- Can I restart an SLO's computed data after changing its source?
instructions:
- text: Reset SLO {sloId} in space {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
- text: Recompute objective {sloId} in {spaceId} from the beginning.
slots:
sloId: path.sloId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}/_snapshot'].get
update:
x-apievangelist-phrasing:
intent: Compute one SLO's summary at a point in time
effect: read
questions:
- What was an SLO's status and error budget at a specific time?
- Can I see all instances of one SLO as of a past timestamp?
instructions:
- text: Compute the summary of SLO {sloId} in {spaceId} at {at}.
slots:
sloId: path.sloId
spaceId: path.spaceId
at: query.at
- text: Show instance {instanceId} of SLO {sloId} in space {spaceId} as it stood at {at}.
slots:
instanceId: query.instanceId
sloId: path.sloId
spaceId: path.spaceId
at: query.at
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}/disable'].post
update:
x-apievangelist-phrasing:
intent: Disable an SLO
effect: write
questions:
- How do I pause an SLO without deleting it?
- Can I stop an SLO from being computed temporarily?
instructions:
- text: Disable SLO {sloId} in space {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
- text: Pause objective {sloId} in {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/api/observability/slos/{sloId}/enable'].post
update:
x-apievangelist-phrasing:
intent: Enable an SLO
effect: write
questions:
- How do I turn a disabled SLO back on?
- Can I resume computing an SLO I paused?
instructions:
- text: Enable SLO {sloId} in space {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
- text: Resume the paused objective {sloId} in {spaceId}.
slots:
sloId: path.sloId
spaceId: path.spaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/s/{spaceId}/internal/observability/slos/_definitions'].get
update:
x-apievangelist-phrasing:
intent: List SLO definitions with health
effect: read
questions:
- Which SLO definitions are outdated and need upgrading?
- Can I list SLO definitions along with their health status?
instructions:
- text: Get the SLO definitions in space {spaceId}.
slots:
spaceId: path.spaceId
- text: List only outdated SLO definitions in {spaceId}.
slots:
spaceId: path.spaceId
- text: Show SLO definitions tagged {tags} in {spaceId} with their health included.
slots:
tags: query.tags
spaceId: path.spaceId
method: generated
generated: '2026-09-26'