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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'