Stedi · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Stedi Event Destinations API

8 actions 8 updates phrasing extends openapi/stedi-destinations-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Stedi's API. It is a proposal applied on top of the contract, not a document Stedi publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 8

$.info
$.paths['/destinations'].get
$.paths['/destinations'].post
$.paths['/destinations/{destinationId}'].get
$.paths['/destinations/{destinationId}'].post
$.paths['/destinations/{destinationId}'].delete
$.paths['/destinations/{destinationId}/secret'].get
$.paths['/destinations/{destinationId}/secret/rotate'].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 Stedi Event Destinations API
  version: 1.0.0
extends: openapi/stedi-destinations-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: 7
- target: $.paths['/destinations'].get
  update:
    x-apievangelist-phrasing:
      intent: List event destinations
      effect: read
      questions:
      - Which webhook destinations are set up on my account?
      - Can I see only the destinations that are subscribed to a particular event type?
      instructions:
      - text: List my event destinations.
      - text: Show destinations with status {status}.
        slots:
          status: query.status
      - text: List destinations subscribed to {eventType} events.
        slots:
          eventType: query.eventType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an event destination
      effect: write
      questions:
      - How do I get Stedi to send event notifications to my own webhook URL?
      - Can I limit how many events are delivered to my endpoint at the same time?
      instructions:
      - text: Create a destination named {name} that posts {eventTypes} to {destinationUrl}.
        slots:
          name: requestBody.name
          eventTypes: requestBody.eventTypes
          destinationUrl: requestBody.destinationUrl
      - text: Set up a new webhook {name} at {destinationUrl} for {eventTypes} with concurrency limit {concurrencyLimit}.
        slots:
          name: requestBody.name
          destinationUrl: requestBody.destinationUrl
          eventTypes: requestBody.eventTypes
          concurrencyLimit: requestBody.concurrencyLimit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an event destination
      effect: read
      questions:
      - What URL and event types is a specific destination configured with?
      - Can I look up the details of a single webhook destination?
      instructions:
      - text: Show the configuration of destination {destinationId}.
        slots:
          destinationId: path.destinationId
      - text: Get details for event destination {destinationId}.
        slots:
          destinationId: path.destinationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Update an event destination
      effect: write
      questions:
      - Can I change the URL an existing destination sends events to?
      - How do I pause an existing webhook destination without deleting it?
      instructions:
      - text: Point destination {destinationId} at {destinationUrl}.
        slots:
          destinationId: path.destinationId
          destinationUrl: requestBody.destinationUrl
      - text: Set destination {destinationId} status to {status}.
        slots:
          destinationId: path.destinationId
          status: requestBody.status
      - text: Change the event types for destination {destinationId} to {eventTypes}.
        slots:
          destinationId: path.destinationId
          eventTypes: requestBody.eventTypes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an event destination
      effect: destructive
      questions:
      - How do I permanently remove a webhook destination?
      - Is deleting an event destination reversible?
      instructions:
      - text: Delete event destination {destinationId}.
        slots:
          destinationId: path.destinationId
      - text: Remove the webhook destination {destinationId} for good.
        slots:
          destinationId: path.destinationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}/secret'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a destination's signing secret
      effect: read
      questions:
      - Where do I find the secret to verify that event payloads really came from Stedi?
      - What is the current signing secret for my webhook destination?
      instructions:
      - text: Show the signing secret for destination {destinationId}.
        slots:
          destinationId: path.destinationId
      - text: Get the current payload verification secret of destination {destinationId}.
        slots:
          destinationId: path.destinationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}/secret/rotate'].post
  update:
    x-apievangelist-phrasing:
      intent: Rotate a destination's signing secret
      effect: write
      questions:
      - How do I rotate the signing secret on a webhook destination?
      - Can the old signing secret keep working for a few hours after I rotate it?
      instructions:
      - text: Rotate the signing secret for destination {destinationId}.
        slots:
          destinationId: path.destinationId
      - text: Rotate the secret on destination {destinationId} and keep the old one valid for {previousSecretExpiryHours} hours.
        slots:
          destinationId: path.destinationId
          previousSecretExpiryHours: requestBody.previousSecretExpiryHours
      method: generated
      generated: '2026-09-26'