Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Themes API

10 actions 10 updates phrasing extends openapi/optimizely-themes-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 10

$.info
$.paths['/api/v1/admin/Themes'].get
$.paths['/api/v1/admin/Themes'].post
$.paths['/api/v1/admin/Themes({id})'].get
$.paths['/api/v1/admin/Themes({id})'].put
$.paths['/api/v1/admin/Themes({id})'].delete
$.paths['/api/v1/admin/Themes({id})'].patch
$.paths['/api/v1/admin/Themes/Default.Default()'].get
$.paths['/api/v1/admin/themes/delete'].delete
$.paths['/api/v1/admin/themes({key})/customproperties({custompropertyKey})'].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 Themes API
  version: 1.0.0
extends: openapi/optimizely-themes-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: 9
- target: $.paths['/api/v1/admin/Themes'].get
  update:
    x-apievangelist-phrasing:
      intent: List storefront themes
      effect: read
      questions:
      - How can I see all the themes available for my storefront?
      - Can I filter themes to just the system themes?
      instructions:
      - text: List all themes.
      - text: List themes matching {filter}.
        slots:
          filter: query.$filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a theme
      effect: write
      questions:
      - How do I create a new storefront theme?
      - Can a new theme inherit from a parent theme?
      instructions:
      - text: Create a theme named {name} described as {description}.
        slots:
          name: requestBody.name
          description: requestBody.description
      - text: Create theme {name} ({description}) based on parent theme {parentId}.
        slots:
          name: requestBody.name
          description: requestBody.description
          parentId: requestBody.parentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one theme by id
      effect: read
      questions:
      - How can I look up a single theme by id?
      - Where do I see a theme's location and type?
      instructions:
      - text: Show theme {id}.
        slots:
          id: path.id
      - text: Fetch {select} for theme {id}.
        slots:
          id: path.id
          select: query.$select
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a theme entirely
      effect: write
      questions:
      - How do I overwrite every setting of a theme at once?
      - Will a full theme replace clear its parent if I don't send it?
      instructions:
      - text: Replace theme {id} with name {name} and description {description}.
        slots:
          id: path.id
          name: requestBody.name
          description: requestBody.description
      - text: Overwrite the full record of theme {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete one theme
      effect: destructive
      questions:
      - How do I remove a theme I no longer use?
      - Can I delete a theme only if it hasn't changed, using an ETag?
      instructions:
      - text: Delete theme {id}.
        slots:
          id: path.id
      - text: Remove theme {id} if its ETag is {etag}.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update some fields of a theme
      effect: write
      questions:
      - How can I just rename a theme?
      - Can I change which parent theme an existing theme inherits from?
      instructions:
      - text: Rename theme {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      - text: Set the parent of theme {id} to {parentId}.
        slots:
          id: path.id
          parentId: requestBody.parentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Themes/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get default values for a new theme
      effect: read
      questions:
      - What defaults does a new theme start with?
      - Where do I get an empty theme template?
      instructions:
      - text: Fetch the default theme template.
      - text: Show starting values for a new theme.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/themes/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk delete themes
      effect: destructive
      questions:
      - How do I delete several themes at once?
      - Can I pass a list of ids to remove multiple themes?
      instructions:
      - text: Bulk delete themes {ids}.
        slots:
          ids: query.ids
      - text: Permanently delete every theme in {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/themes({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property of a theme
      effect: read
      questions:
      - Where can I read a custom property on a theme?
      - How do I fetch one custom attribute from a theme?
      instructions:
      - text: Get custom property {custompropertyKey} of theme {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      - text: Read custom field {custompropertyKey} on theme {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      method: generated
      generated: '2026-09-26'