Svix · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Svix Connector API

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

What the actions change

x-apievangelist-phrasing

Targets 14

$.info
$.paths['/api/v1/connector'].get
$.paths['/api/v1/connector'].post
$.paths['/api/v1/connector/{connector_id}'].get
$.paths['/api/v1/connector/{connector_id}'].put
$.paths['/api/v1/connector/{connector_id}'].delete
$.paths['/api/v1/connector/{connector_id}'].patch
$.paths['/api/v1/connector/{connector_id}/options'].get
$.paths['/api/v1/connector/{connector_id}/options'].put
$.paths['/api/v1/connector/simulate'].post
$.paths['/api/v1/connector/oauth/slack'].post
$.paths['/api/v1/connector/oauth/discord'].post
$.paths['/api/v1/connector/oauth/hubspot'].post
$.paths['/api/v1/app/{app_id}/endpoint/{endpoint_id}/connector/oauth/hubspot'].put

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 Svix Connector API
  version: 1.0.0
extends: openapi/svix-connector-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: 13
- target: $.paths['/api/v1/connector'].get
  update:
    x-apievangelist-phrasing:
      intent: List connectors
      effect: read
      questions:
      - What connectors have I built for my Svix environment?
      - Can I filter my connectors by product type?
      instructions:
      - text: List all my connectors.
      - text: Show connectors for product type {product_type}, {limit} at a time.
        slots:
          product_type: query.product_type
          limit: query.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a connector
      effect: write
      questions:
      - How do I publish a new pre-built connector that my customers can pick for their endpoints?
      - Can a new connector restrict which event types it accepts?
      instructions:
      - text: Create a connector named {name} with transformation code {transformation}.
        slots:
          name: requestBody.name
          transformation: requestBody.transformation
      - text: Create connector {name} using transformation {transformation}, allowing only {allowedEventTypes}, with setup instructions {instructions}.
        slots:
          name: requestBody.name
          transformation: requestBody.transformation
          allowedEventTypes: requestBody.allowedEventTypes
          instructions: requestBody.instructions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a connector
      effect: read
      questions:
      - What transformation and allowed event types does a specific connector have?
      - Can I view one connector's logo and setup instructions?
      instructions:
      - text: Show connector {connector_id}.
        slots:
          connector_id: path.connector_id
      - text: Fetch the full details of connector {connector_id}.
        slots:
          connector_id: path.connector_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or replace a connector
      effect: write
      questions:
      - Can I upsert a connector so it's created if that ID doesn't exist yet?
      - How do I replace a connector's whole definition, transformation included?
      instructions:
      - text: Upsert connector {connector_id} with transformation {transformation}.
        slots:
          connector_id: path.connector_id
          transformation: requestBody.transformation
      - text: 'Replace connector {connector_id} entirely: name {name}, transformation {transformation}.'
        slots:
          connector_id: path.connector_id
          name: requestBody.name
          transformation: requestBody.transformation
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a connector
      effect: destructive
      questions:
      - How do I remove a connector I no longer offer?
      - Can I permanently delete a connector?
      instructions:
      - text: Delete connector {connector_id}.
        slots:
          connector_id: path.connector_id
      - text: Remove connector {connector_id} for good.
        slots:
          connector_id: path.connector_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change some fields of a connector
      effect: write
      questions:
      - Can I update just a connector's logo or description?
      - How do I tweak one connector field without resending its transformation?
      instructions:
      - text: Change the description of connector {connector_id} to {description}.
        slots:
          connector_id: path.connector_id
          description: requestBody.description
      - text: Partially update connector {connector_id} with the logo {logo}.
        slots:
          connector_id: path.connector_id
          logo: requestBody.logo
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}/options'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a connector's options
      effect: read
      questions:
      - What options are configured on a connector?
      - Can I read back the option settings for one connector?
      instructions:
      - text: Show the options of connector {connector_id}.
        slots:
          connector_id: path.connector_id
      - text: Fetch connector {connector_id}'s option settings.
        slots:
          connector_id: path.connector_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/{connector_id}/options'].put
  update:
    x-apievangelist-phrasing:
      intent: Set a connector's options
      effect: write
      questions:
      - How do I change the options on a connector?
      - Can I overwrite a connector's option settings?
      instructions:
      - text: Set the options for connector {connector_id}.
        slots:
          connector_id: path.connector_id
      - text: Save new option settings on connector {connector_id}.
        slots:
          connector_id: path.connector_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/simulate'].post
  update:
    x-apievangelist-phrasing:
      intent: Test connector transformation code on a payload
      effect: read
      questions:
      - Can I try out connector transformation code on a sample event before saving it?
      - What would a payload look like after a connector's transformation?
      instructions:
      - text: Simulate connector code {code} on a {eventType} event with payload {payload}.
        slots:
          code: requestBody.code
          eventType: requestBody.eventType
          payload: requestBody.payload
      - text: Dry-run connector transformation {code} against payload {payload} as event type {eventType} on channels {channels}.
        slots:
          code: requestBody.code
          payload: requestBody.payload
          eventType: requestBody.eventType
          channels: requestBody.channels
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/oauth/slack'].post
  update:
    x-apievangelist-phrasing:
      intent: Exchange a Slack OAuth code for a webhook URL
      effect: write
      questions:
      - How do I turn a Slack OAuth code into an incoming webhook URL for a connector?
      - What does the Slack connector authorization need from the redirect?
      instructions:
      - text: Exchange Slack authorization code {code} with redirect URI {redirectUri} for an incoming webhook URL.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      - text: Authorize Slack with code {code} and redirect {redirectUri}.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/oauth/discord'].post
  update:
    x-apievangelist-phrasing:
      intent: Exchange a Discord OAuth code for a webhook URL
      effect: write
      questions:
      - How do I turn a Discord OAuth code into an incoming webhook URL?
      - Which values does the Discord connector authorization require?
      instructions:
      - text: Exchange Discord authorization code {code} with redirect URI {redirectUri} for an incoming webhook URL.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      - text: Authorize Discord with code {code} and redirect {redirectUri}.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/connector/oauth/hubspot'].post
  update:
    x-apievangelist-phrasing:
      intent: Exchange a HubSpot OAuth code for an access token
      effect: write
      questions:
      - How do I get a HubSpot access token from an authorization code for a connector?
      - What does the HubSpot connector authorization need from the OAuth redirect?
      instructions:
      - text: Exchange HubSpot authorization code {code} with redirect URI {redirectUri} for an access token.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      - text: Authorize HubSpot with code {code} and redirect {redirectUri}.
        slots:
          code: requestBody.code
          redirectUri: requestBody.redirectUri
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/app/{app_id}/endpoint/{endpoint_id}/connector/oauth/hubspot'].put
  update:
    x-apievangelist-phrasing:
      intent: Store HubSpot OAuth credentials on an endpoint
      effect: write
      questions:
      - How do I save a HubSpot refresh token on an endpoint without exposing the secret to the client?
      - Can I update the HubSpot OAuth setup of an existing endpoint?
      instructions:
      - text: Set the HubSpot refresh token {refresh_token} on endpoint {endpoint_id} in app {app_id}.
        slots:
          refresh_token: requestBody.refresh_token
          endpoint_id: path.endpoint_id
          app_id: path.app_id
      - text: Update endpoint {endpoint_id}'s HubSpot OAuth config on app {app_id} with refresh token {refresh_token}.
        slots:
          endpoint_id: path.endpoint_id
          app_id: path.app_id
          refresh_token: requestBody.refresh_token
      method: generated
      generated: '2026-09-26'