Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely Dealers API

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

What the actions change

x-apievangelist-phrasing

Targets 16

$.info
$.paths['/api/v1/admin/Dealers'].get
$.paths['/api/v1/admin/Dealers'].post
$.paths['/api/v1/admin/Dealers({id})'].get
$.paths['/api/v1/admin/Dealers({id})'].put
$.paths['/api/v1/admin/Dealers({id})'].delete
$.paths['/api/v1/admin/Dealers({id})'].patch
$.paths['/api/v1/admin/Dealers/Default.Default()'].get
$.paths['/api/v1/admin/dealers/delete'].delete
$.paths['/api/v1/admin/dealers({key})/categories({categoryKey})'].get
$.paths['/api/v1/admin/dealers({key})/customproperties({custompropertyKey})'].get
$.paths['/api/v1/admin/dealers({key})/products({productKey})'].get
$.paths['/api/v1/admin/dealers({key})/websites({websiteKey})'].get
$.paths['/api/v1/dealers'].get
$.paths['/api/v1/dealers/{dealerId}'].get
$.paths['/api/v1/dealers/getByPath'].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 Optimizely Dealers API
  version: 1.0.0
extends: openapi/optimizely-dealers-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['/api/v1/admin/Dealers'].get
  update:
    x-apievangelist-phrasing:
      intent: List dealers in the admin console
      effect: read
      questions:
      - How can I pull the full dealer list as an admin, with filtering?
      - Can I count how many dealer records exist in a given state?
      instructions:
      - text: List all dealer records from the admin API.
      - text: List admin dealers matching {filter}, top {top}, ordered by {orderby}.
        slots:
          filter: query.$filter
          top: query.$top
          orderby: query.$orderby
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a dealer
      effect: write
      questions:
      - What address details are required when I add a new dealer location?
      - Can I set map coordinates for a dealer when creating it?
      instructions:
      - text: Create dealer {name} at {address1}, {city}, {state} {postalCode}.
        slots:
          name: requestBody.name
          address1: requestBody.address1
          city: requestBody.city
          state: requestBody.state
          postalCode: requestBody.postalCode
      - text: Add dealer {name} managed by {manager} with phone {phone}.
        slots:
          name: requestBody.name
          manager: requestBody.manager
          phone: requestBody.phone
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a dealer record by ID (admin)
      effect: read
      questions:
      - Can I fetch one dealer's full admin record by its GUID?
      - Which dealer fields can I select or expand in the admin lookup?
      instructions:
      - text: Get admin dealer record {id}.
        slots:
          id: path.id
      - text: Fetch dealer {id} from the admin API returning only {select}.
        slots:
          id: path.id
          select: query.$select
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a dealer record
      effect: write
      questions:
      - Can I overwrite an entire dealer record with a new address?
      - What's the full-replace call for a dealer?
      instructions:
      - text: Replace dealer {id} with name {name} and address {address1}.
        slots:
          id: path.id
          name: requestBody.name
          address1: requestBody.address1
      - text: Overwrite all fields of dealer {id}, setting city {city} and state {state}.
        slots:
          id: path.id
          city: requestBody.city
          state: requestBody.state
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a dealer
      effect: destructive
      questions:
      - How do I remove a single dealer that has closed?
      - Can I delete a dealer only if nobody changed it since I read it?
      instructions:
      - text: Delete dealer {id}.
        slots:
          id: path.id
      - text: Delete dealer {id} if its ETag is still {etag}.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a dealer's details
      effect: write
      questions:
      - Can I change just a dealer's phone number without resending the address?
      - Is there a partial update for a dealer's website URL?
      instructions:
      - text: Update dealer {id} phone to {phone}.
        slots:
          id: path.id
          phone: requestBody.phone
      - text: Patch dealer {id} to set website URL {websiteUrl}.
        slots:
          id: path.id
          websiteUrl: requestBody.websiteUrl
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Dealers/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get default values for a new dealer
      effect: read
      questions:
      - What does a blank dealer template look like before I fill it in?
      - Which defaults are pre-populated on a new dealer?
      instructions:
      - text: Get the default dealer template.
      - text: Show pre-filled values for a new dealer record.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/dealers/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete several dealers at once
      effect: destructive
      questions:
      - Can I bulk delete a batch of dealers in one call?
      - Is there a way to remove many dealer locations by ID list?
      instructions:
      - text: Bulk delete dealers {ids}.
        slots:
          ids: query.ids
      - text: Remove the dealers in the list {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/dealers({key})/categories({categoryKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a category assigned to a dealer
      effect: read
      questions:
      - Can I check whether a product category is linked to a dealer?
      - Where do I read a single category on a dealer record?
      instructions:
      - text: Get category {categoryKey} on dealer {key}.
        slots:
          categoryKey: path.categoryKey
          key: path.key
      - text: Show dealer {key}'s linked category {categoryKey}.
        slots:
          key: path.key
          categoryKey: path.categoryKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/dealers({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a dealer
      effect: read
      questions:
      - Can I read an extra custom field stored on a dealer?
      - Where are custom attributes of a dealer kept?
      instructions:
      - text: Get custom property {custompropertyKey} on dealer {key}.
        slots:
          custompropertyKey: path.custompropertyKey
          key: path.key
      - text: Show dealer {key}'s custom field {custompropertyKey}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/dealers({key})/products({productKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product carried by a dealer
      effect: read
      questions:
      - Can I confirm a specific product is associated with a dealer?
      - Which call returns one product on a dealer's record?
      instructions:
      - text: Get product {productKey} carried by dealer {key}.
        slots:
          productKey: path.productKey
          key: path.key
      - text: Show dealer {key}'s associated product {productKey}.
        slots:
          key: path.key
          productKey: path.productKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/dealers({key})/websites({websiteKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a website a dealer is assigned to
      effect: read
      questions:
      - Can I check which storefront website a dealer belongs to?
      - Which endpoint reads one website link on a dealer?
      instructions:
      - text: Get website {websiteKey} for dealer {key}.
        slots:
          websiteKey: path.websiteKey
          key: path.key
      - text: Show dealer {key}'s assigned website {websiteKey}.
        slots:
          key: path.key
          websiteKey: path.websiteKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/dealers'].get
  update:
    x-apievangelist-phrasing:
      intent: Find dealers near a location
      effect: read
      questions:
      - How do I find the dealers closest to a shopper's latitude and longitude?
      - Can I search storefront dealers by name within a set radius?
      - Is there a dealer locator that uses the default location?
      instructions:
      - text: Find dealers within {radius} of latitude {latitude}, longitude {longitude}.
        slots:
          radius: query.parameter.radius
          latitude: query.parameter.latitude
          longitude: query.parameter.longitude
      - text: Search the dealer locator for dealers named {name}.
        slots:
          name: query.parameter.name
      - text: Show nearby dealers around my default location.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/dealers/{dealerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a dealer for the storefront
      effect: read
      questions:
      - Can a storefront page load one dealer's address and hours by ID?
      - What does the public dealer detail endpoint return?
      instructions:
      - text: Show storefront dealer {dealerId}.
        slots:
          dealerId: path.dealerId
      - text: Load dealer {dealerId}'s public details for the locator page.
        slots:
          dealerId: path.dealerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/dealers/getByPath'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a dealer by its URL path
      effect: read
      questions:
      - Can I resolve a dealer from its page URL segment?
      - Which call finds a dealer by path instead of ID?
      instructions:
      - text: Find the dealer at path {path}.
        slots:
          path: query.path
      - text: Resolve dealer page URL {path} to its dealer.
        slots:
          path: query.path
      method: generated
      generated: '2026-09-26'