Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Subscriptions API

14 actions 14 updates phrasing extends openapi/optimizely-subscriptions-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 14

$.info
$.paths['/api/v1/admin/Subscriptions'].get
$.paths['/api/v1/admin/Subscriptions'].post
$.paths['/api/v1/admin/Subscriptions({id})'].get
$.paths['/api/v1/admin/Subscriptions({id})'].put
$.paths['/api/v1/admin/Subscriptions({id})'].delete
$.paths['/api/v1/admin/Subscriptions({id})'].patch
$.paths['/api/v1/admin/Subscriptions/Default.Default()'].get
$.paths['/api/v1/admin/Subscriptions/Default.archive'].post
$.paths['/api/v1/admin/subscriptions/archive'].delete
$.paths['/api/v1/admin/subscriptions/delete'].delete
$.paths['/api/v1/admin/subscriptions({key})/customerorders({customerorderKey})'].get
$.paths['/api/v1/admin/subscriptions({key})/customproperties({custompropertyKey})'].get
$.paths['/api/v1/admin/subscriptions({key})/subscriptionlines({subscriptionlineKey})'].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 Admin API V1 Subscriptions API
  version: 1.0.0
extends: openapi/optimizely-subscriptions-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/admin/Subscriptions'].get
  update:
    x-apievangelist-phrasing:
      intent: List product subscriptions
      effect: read
      questions:
      - Which customers have recurring product subscriptions set up?
      - Can I filter subscriptions by customer or website?
      instructions:
      - text: List all subscriptions.
      - text: Show subscriptions matching {filter}.
        slots:
          filter: query.$filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a recurring product subscription
      effect: write
      questions:
      - How do I set up a monthly repeat order for a customer?
      - Can a subscription only ship in certain months of the year?
      instructions:
      - text: Create a subscription for customer {customerId} on product {productId} every {cyclePeriod}.
        slots:
          customerId: requestBody.customerId
          productId: requestBody.productId
          cyclePeriod: requestBody.cyclePeriod
      - text: Set up a {cyclePeriod} subscription that runs {totalCycles} cycles starting {activateOn}.
        slots:
          cyclePeriod: requestBody.cyclePeriod
          totalCycles: requestBody.totalCycles
          activateOn: requestBody.activateOn
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a subscription
      effect: read
      questions:
      - What cycle and ship-to does a given subscription use?
      - Can I look up one subscription by its ID?
      instructions:
      - text: Get subscription {id}.
        slots:
          id: path.id
      - text: Show the schedule for subscription {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a subscription entirely
      effect: write
      questions:
      - How do I overwrite every field on a subscription record?
      - Can I fully replace a subscription's settings in one request?
      instructions:
      - text: Replace subscription {id} with cycle period {cyclePeriod}.
        slots:
          id: path.id
          cyclePeriod: requestBody.cyclePeriod
      - text: Overwrite all fields of subscription {id}, cycle {cyclePeriod}, {periodsPerCycle} periods per cycle.
        slots:
          id: path.id
          cyclePeriod: requestBody.cyclePeriod
          periodsPerCycle: requestBody.periodsPerCycle
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a subscription
      effect: destructive
      questions:
      - How do I permanently remove one subscription?
      - Does deleting a subscription support an If-Match concurrency check?
      instructions:
      - text: Delete subscription {id}.
        slots:
          id: path.id
      - text: Remove subscription {id} if its ETag is {ifMatch}.
        slots:
          id: path.id
          ifMatch: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update some fields of a subscription
      effect: write
      questions:
      - How do I change when a subscription deactivates?
      - Can I switch a subscription to a different ship-to without resending everything?
      instructions:
      - text: Set deactivate date {deactivateOn} on subscription {id}, cycle {cyclePeriod}.
        slots:
          id: path.id
          deactivateOn: requestBody.deactivateOn
          cyclePeriod: requestBody.cyclePeriod
      - text: Change ship-to on subscription {id} to {shipToId} keeping cycle {cyclePeriod}.
        slots:
          id: path.id
          shipToId: requestBody.shipToId
          cyclePeriod: requestBody.cyclePeriod
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get default values for a new subscription
      effect: read
      questions:
      - What defaults does a new subscription start with?
      - Is there a blank subscription template to fill in?
      instructions:
      - text: Get the default field values for a new subscription.
      - text: Show a blank subscription record.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Subscriptions/Default.archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive subscriptions via the archive action
      effect: write
      questions:
      - How do I archive subscriptions using the POST archive action?
      - Can I archive several subscriptions without deleting them?
      instructions:
      - text: Archive subscriptions {ids} with the archive action.
        slots:
          ids: query.ids
      - text: Run the POST archive action on subscriptions {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/subscriptions/archive'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive subscriptions via the DELETE route
      effect: destructive
      questions:
      - Is there a DELETE archive endpoint for subscriptions?
      - Which route archives subscriptions using the DELETE method?
      instructions:
      - text: Archive subscriptions {ids} through the DELETE archive route.
        slots:
          ids: query.ids
      - text: Call DELETE subscriptions/archive for {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/subscriptions/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete several subscriptions
      effect: destructive
      questions:
      - How do I bulk delete a list of subscriptions permanently?
      - Can I delete many subscriptions in one request?
      instructions:
      - text: Bulk delete subscriptions {ids}.
        slots:
          ids: query.ids
      - text: Permanently delete every subscription in {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/subscriptions({key})/customerorders({customerorderKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an order generated by a subscription
      effect: read
      questions:
      - Which orders has a subscription generated?
      - Can I look up a specific order linked to a subscription?
      instructions:
      - text: Get order {customerorderKey} from subscription {key}.
        slots:
          key: path.key
          customerorderKey: path.customerorderKey
      - text: Show customer order {customerorderKey} linked to subscription {key}.
        slots:
          key: path.key
          customerorderKey: path.customerorderKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/subscriptions({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a subscription
      effect: read
      questions:
      - How do I read a custom property on a subscription?
      - Can I fetch one custom field value from a subscription?
      instructions:
      - text: Get custom property {custompropertyKey} of subscription {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      - text: Show the {custompropertyKey} custom property on subscription {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/subscriptions({key})/subscriptionlines({subscriptionlineKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a line item on a subscription
      effect: read
      questions:
      - What products and quantities are on a subscription's lines?
      - Can I look up one line of a subscription?
      instructions:
      - text: Get line {subscriptionlineKey} of subscription {key}.
        slots:
          key: path.key
          subscriptionlineKey: path.subscriptionlineKey
      - text: Show subscription line {subscriptionlineKey} on subscription {key}.
        slots:
          key: path.key
          subscriptionlineKey: path.subscriptionlineKey
      method: generated
      generated: '2026-09-26'