Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Languages API

11 actions 11 updates phrasing extends openapi/optimizely-languages-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 11

$.info
$.paths['/api/v1/admin/Languages'].get
$.paths['/api/v1/admin/Languages'].post
$.paths['/api/v1/admin/Languages({id})'].get
$.paths['/api/v1/admin/Languages({id})'].put
$.paths['/api/v1/admin/Languages({id})'].delete
$.paths['/api/v1/admin/Languages({id})'].patch
$.paths['/api/v1/admin/Languages/Default.Default()'].get
$.paths['/api/v1/admin/languages/delete'].delete
$.paths['/api/v1/admin/languages({key})/customproperties({custompropertyKey})'].get
$.paths['/api/v1/admin/languages({key})/websitelanguages({websitelanguageKey})'].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 Languages API
  version: 1.0.0
extends: openapi/optimizely-languages-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: 10
- target: $.paths['/api/v1/admin/Languages'].get
  update:
    x-apievangelist-phrasing:
      intent: List storefront languages
      effect: read
      questions:
      - Which languages are set up in the Optimizely Configured Commerce admin?
      - Can I find which language is marked as the default?
      instructions:
      - text: List all configured languages.
      - text: List languages matching {filter}, sorted by {orderby}.
        slots:
          filter: query.$filter
          orderby: query.$orderby
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a language
      effect: write
      questions:
      - What codes and tags do I need to add a new language to the storefront?
      - Can a new language have persona-specific or device-specific content?
      instructions:
      - text: Add language {languageCode} described as {description}, culture {cultureCode}, tag {languageTag}, alternates {alternateLanguages}, flag image {imageFilePath}.
        slots:
          languageCode: requestBody.languageCode
          description: requestBody.description
          cultureCode: requestBody.cultureCode
          languageTag: requestBody.languageTag
          alternateLanguages: requestBody.alternateLanguages
          imageFilePath: requestBody.imageFilePath
      - text: 'Create language {languageCode} and make it the default: {isDefault}.'
        slots:
          languageCode: requestBody.languageCode
          isDefault: requestBody.isDefault
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one language by ID
      effect: read
      questions:
      - How do I look up a single language's culture code by its ID?
      - Can I choose which language fields come back for one record?
      instructions:
      - text: Show language {id}.
        slots:
          id: path.id
      - text: Fetch language {id}, selecting {select}.
        slots:
          id: path.id
          select: query.$select
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a language record entirely
      effect: write
      questions:
      - Can I overwrite a language with a complete new set of values?
      - What happens to language fields I leave out on a full replace?
      instructions:
      - text: Replace language {id} with a full record using code {languageCode} and culture {cultureCode}.
        slots:
          id: path.id
          languageCode: requestBody.languageCode
          cultureCode: requestBody.cultureCode
      - text: Overwrite every field of language {id}, setting the description to {description}.
        slots:
          id: path.id
          description: requestBody.description
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a single language
      effect: destructive
      questions:
      - How do I remove one language from the storefront by its ID?
      - Can I make a language delete conditional on an ETag?
      instructions:
      - text: Delete language {id}.
        slots:
          id: path.id
      - text: Delete language {id} only if its ETag matches {etag}.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update selected fields on a language
      effect: write
      questions:
      - Can I change just where the currency symbol is positioned for a language?
      - How would I switch which language is the default?
      instructions:
      - text: Patch language {id} so currency positioning is {currencyPositioning}.
        slots:
          id: path.id
          currencyPositioning: requestBody.currencyPositioning
      - text: Update language {id} to set default to {isDefault}.
        slots:
          id: path.id
          isDefault: requestBody.isDefault
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Languages/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get default values for a new language
      effect: read
      questions:
      - What defaults does the admin pre-fill for a language before I add one?
      - Where do I get a blank language template?
      instructions:
      - text: Get the default language template.
      - text: Show me the pre-filled defaults for a new language record.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/languages/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk delete languages by ID
      effect: destructive
      questions:
      - How do I delete several languages in one request?
      - Can I bulk-remove languages by passing their IDs?
      instructions:
      - text: Bulk delete languages {ids}.
        slots:
          ids: query.ids
      - text: Permanently remove the languages with IDs {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/languages({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a language
      effect: read
      questions:
      - How can I read one custom property stored on a language?
      - Can I expand related data on a language's custom property?
      instructions:
      - text: Show custom property {custompropertyKey} on language {key}.
        slots:
          custompropertyKey: path.custompropertyKey
          key: path.key
      - text: Fetch language {key}'s custom property {custompropertyKey} with {expand} expanded.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
          expand: query.$expand
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/languages({key})/websitelanguages({websitelanguageKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a website's use of a language
      effect: read
      questions:
      - Which website-language assignment links a language to a site?
      - Can I fetch one website language record through its language?
      instructions:
      - text: Show website language {websitelanguageKey} for language {key}.
        slots:
          websitelanguageKey: path.websitelanguageKey
          key: path.key
      - text: Fetch language {key}'s website assignment {websitelanguageKey}, selecting {select}.
        slots:
          key: path.key
          websitelanguageKey: path.websitelanguageKey
          select: query.$select
      method: generated
      generated: '2026-09-26'