Elastic Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Kibana Alerting API

24 actions 24 updates phrasing extends openapi/elk-stack-alerting-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 24 · first 16 shown; the file carries all of them

$.info
$.paths['/api/alerting/_health'].get
$.paths['/api/alerting/rule_types'].get
$.paths['/api/alerting/rule/{id}'].get
$.paths['/api/alerting/rule/{id}'].put
$.paths['/api/alerting/rule/{id}'].post
$.paths['/api/alerting/rule/{id}'].delete
$.paths['/api/alerting/rule/{id}/_disable'].post
$.paths['/api/alerting/rule/{id}/_enable'].post
$.paths['/api/alerting/rule/{id}/_mute_all'].post
$.paths['/api/alerting/rule/{id}/_unmute_all'].post
$.paths['/api/alerting/rule/{id}/_update_api_key'].post
$.paths['/api/alerting/rule/{id}/query_inspector'].get
$.paths['/api/alerting/rule/{id}/snooze_schedule'].post
$.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute'].post
$.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_snooze'].post

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 Alerting API
  version: 1.0.0
extends: openapi/elk-stack-alerting-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: 23
- target: $.paths['/api/alerting/_health'].get
  update:
    x-apievangelist-phrasing:
      intent: Check alerting framework health
      effect: read
      questions:
      - Is the Kibana alerting framework healthy and able to run rules?
      - Can I check whether alerting has the prerequisites it needs, like encryption keys?
      instructions:
      - text: Check the health of the alerting framework.
      - text: Report whether rule execution is healthy right now.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule_types'].get
  update:
    x-apievangelist-phrasing:
      intent: List available rule types
      effect: read
      questions:
      - Which kinds of alerting rules can I create with my privileges?
      - What rule types are registered and which action groups do they support?
      instructions:
      - text: List the rule types I can use.
      - text: Show every registered rule type with its action groups.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a rule's details
      effect: read
      questions:
      - What schedule, params and actions does a particular rule have?
      - Can I retrieve a single rule by its identifier?
      instructions:
      - text: Get the details of rule {id}.
        slots:
          id: path.id
      - text: Show me how rule {id} is configured.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing rule
      effect: write
      questions:
      - How do I change the name, schedule or actions on an existing rule?
      - Can I adjust a rule's alert delay or flapping settings after it was created?
      instructions:
      - text: Update rule {id} with name {name} and schedule {schedule}.
        slots:
          id: path.id
          name: requestBody.name
          schedule: requestBody.schedule
      - text: 'Edit rule {id}: keep name {name}, run every {schedule}, and tag it {tags}.'
        slots:
          id: path.id
          name: requestBody.name
          schedule: requestBody.schedule
          tags: requestBody.tags
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a rule
      effect: write
      questions:
      - How do I create a new alerting rule under an ID I pick?
      - Can I create a rule and let Kibana generate its identifier?
      instructions:
      - text: Create a new rule with ID {id}.
        slots:
          id: path.id
      - text: Set up a brand new alerting rule stored as {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a rule
      effect: destructive
      questions:
      - How do I permanently delete an alerting rule?
      - Can I remove a rule I no longer need?
      instructions:
      - text: Delete rule {id}.
        slots:
          id: path.id
      - text: Permanently remove alerting rule {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/_disable'].post
  update:
    x-apievangelist-phrasing:
      intent: Disable a rule
      effect: write
      questions:
      - How do I turn off a rule without deleting it?
      - When I disable a rule, can its active alerts be untracked too?
      instructions:
      - text: Disable rule {id}.
        slots:
          id: path.id
      - text: Disable rule {id} and set untrack to {untrack} for its alerts.
        slots:
          id: path.id
          untrack: requestBody.untrack
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/_enable'].post
  update:
    x-apievangelist-phrasing:
      intent: Enable a rule
      effect: write
      questions:
      - How do I turn a disabled rule back on?
      - Can I re-enable a rule so its checks start running again?
      instructions:
      - text: Enable rule {id}.
        slots:
          id: path.id
      - text: Turn rule {id} back on.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/_mute_all'].post
  update:
    x-apievangelist-phrasing:
      intent: Mute all alerts for a rule
      effect: write
      questions:
      - Can I silence every alert a rule produces while it keeps running?
      - What mutes all of a rule's alerts at once?
      instructions:
      - text: Mute all alerts for rule {id}.
        slots:
          id: path.id
      - text: Stop every alert from rule {id} from triggering actions.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/_unmute_all'].post
  update:
    x-apievangelist-phrasing:
      intent: Unmute all alerts for a rule
      effect: write
      questions:
      - How do I undo muting all of a rule's alerts?
      - Can a rule whose alerts are all muted start notifying again?
      instructions:
      - text: Unmute all alerts for rule {id}.
        slots:
          id: path.id
      - text: Let every alert from rule {id} trigger actions again.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/_update_api_key'].post
  update:
    x-apievangelist-phrasing:
      intent: Refresh the API key a rule runs with
      effect: write
      questions:
      - How do I regenerate the API key an alerting rule uses?
      - Can a rule's credentials be switched to mine after the original owner left?
      instructions:
      - text: Update the API key for rule {id}.
        slots:
          id: path.id
      - text: Regenerate the credentials rule {id} runs with.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/query_inspector'].get
  update:
    x-apievangelist-phrasing:
      intent: Inspect the Elasticsearch query a rule runs
      effect: read
      questions:
      - What Elasticsearch query does my rule actually execute?
      - Can I run a rule's query and see the response for a specific alert's time range?
      instructions:
      - text: Show the Elasticsearch query behind rule {id}.
        slots:
          id: path.id
      - text: Execute rule {id}'s query in mode {mode} using the time range of alert {alert_id}.
        slots:
          id: path.id
          mode: query.mode
          alert_id: query.alert_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{id}/snooze_schedule'].post
  update:
    x-apievangelist-phrasing:
      intent: Schedule a snooze for a rule
      effect: write
      questions:
      - Can I schedule a recurring snooze so a rule stays quiet during maintenance?
      - If a rule is snoozed, does it still run its checks?
      instructions:
      - text: Schedule a snooze for rule {id} using {schedule}.
        slots:
          id: path.id
          schedule: requestBody.schedule
      - text: Add a recurring quiet period {schedule} to rule {id}.
        slots:
          schedule: requestBody.schedule
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute'].post
  update:
    x-apievangelist-phrasing:
      intent: Mute one alert of a rule
      effect: write
      questions:
      - Can I mute a single alert instance without muting the whole rule?
      - How do I silence one noisy host's alert on a rule?
      instructions:
      - text: Mute alert {alert_id} on rule {rule_id}.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
      - text: Mute alert {alert_id} of rule {rule_id}, checking it exists first ({validate_alerts_existence}).
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
          validate_alerts_existence: query.validate_alerts_existence
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_snooze'].post
  update:
    x-apievangelist-phrasing:
      intent: Snooze one alert of a rule
      effect: write
      questions:
      - Can I snooze a single alert until a time or until a condition is met?
      - Is snoozing one alert different from muting it?
      instructions:
      - text: Snooze alert {alert_id} on rule {rule_id} until {expires_at}.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
          expires_at: requestBody.expires_at
      - text: Snooze alert {alert_id} of rule {rule_id} until conditions {conditions} are met.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
          conditions: requestBody.conditions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute'].post
  update:
    x-apievangelist-phrasing:
      intent: Unmute one alert of a rule
      effect: write
      questions:
      - How do I unmute a single alert I muted earlier?
      - Can one muted alert instance trigger actions again?
      instructions:
      - text: Unmute alert {alert_id} on rule {rule_id}.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
      - text: Let alert {alert_id} from rule {rule_id} notify again after muting.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{rule_id}/alert/{alert_id}/_unsnooze'].post
  update:
    x-apievangelist-phrasing:
      intent: Unsnooze one alert of a rule
      effect: write
      questions:
      - How do I end the snooze on one alert before it expires?
      - Can I cancel a single alert's snooze condition?
      instructions:
      - text: Unsnooze alert {alert_id} on rule {rule_id}.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
      - text: Cancel the snooze on alert {alert_id} of rule {rule_id} early.
        slots:
          alert_id: path.alert_id
          rule_id: path.rule_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rule/{ruleId}/snooze_schedule/{scheduleId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a rule's snooze schedule
      effect: destructive
      questions:
      - How do I remove a scheduled snooze from a rule?
      - Can I cancel one recurring snooze window on a rule?
      instructions:
      - text: Delete snooze schedule {scheduleId} from rule {ruleId}.
        slots:
          scheduleId: path.scheduleId
          ruleId: path.ruleId
      - text: Remove the scheduled quiet period {scheduleId} on rule {ruleId}.
        slots:
          scheduleId: path.scheduleId
          ruleId: path.ruleId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rules/_find'].get
  update:
    x-apievangelist-phrasing:
      intent: Search and list rules
      effect: read
      questions:
      - Which rules match a search term or KQL filter?
      - Can I page through rules and return only certain fields?
      instructions:
      - text: Find rules matching {search}.
        slots:
          search: query.search
      - text: List rules filtered by {filter}, sorted by {sort_field} {sort_order}.
        slots:
          filter: query.filter
          sort_field: query.sort_field
          sort_order: query.sort_order
      - text: Show page {page} of rules, {per_page} per page.
        slots:
          page: query.page
          per_page: query.per_page
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rules/backfill/_find'].post
  update:
    x-apievangelist-phrasing:
      intent: Find rule backfills
      effect: read
      questions:
      - Which backfill runs are scheduled or running for my rules?
      - Can I filter backfills by rule and by time window?
      instructions:
      - text: Find backfills for rules {rule_ids}.
        slots:
          rule_ids: query.rule_ids
      - text: List backfills that cover {start} to {end}, sorted by {sort_field}.
        slots:
          start: query.start
          end: query.end
          sort_field: query.sort_field
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rules/backfill/_schedule'].post
  update:
    x-apievangelist-phrasing:
      intent: Schedule a rule backfill
      effect: write
      questions:
      - Can I rerun a rule over a past time range to catch missed alerts?
      - What call schedules a backfill for one or more rules?
      instructions:
      - text: Schedule a backfill for my rules, sending kbn-xsrf header {kbn_xsrf}.
        slots:
          kbn_xsrf: header.kbn-xsrf
      - text: Queue a historical backfill run for the rules I choose.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rules/backfill/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a backfill
      effect: read
      questions:
      - What is the status of a specific backfill I scheduled?
      - Can I look up one backfill by its ID?
      instructions:
      - text: Get backfill {id}.
        slots:
          id: path.id
      - text: Show the progress of backfill {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/alerting/rules/backfill/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a backfill
      effect: destructive
      questions:
      - How do I cancel a backfill I no longer want?
      - Can I delete one scheduled backfill by its ID?
      instructions:
      - text: Delete backfill {id}.
        slots:
          id: path.id
      - text: Cancel and remove the backfill {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'