Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Badge Products API

10 actions 10 updates phrasing extends openapi/optimizely-badge-products-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/BadgeProducts'].get
$.paths['/api/v1/admin/BadgeProducts'].post
$.paths['/api/v1/admin/BadgeProducts({id})'].get
$.paths['/api/v1/admin/BadgeProducts({id})'].put
$.paths['/api/v1/admin/BadgeProducts({id})'].delete
$.paths['/api/v1/admin/BadgeProducts({id})'].patch
$.paths['/api/v1/admin/BadgeProducts/Default.Default()'].get
$.paths['/api/v1/admin/badgeproducts/delete'].delete
$.paths['/api/v1/admin/badgeproducts({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 Badge Products API
  version: 1.0.0
extends: openapi/optimizely-badge-products-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/BadgeProducts'].get
  update:
    x-apievangelist-phrasing:
      intent: List badge-to-product assignments
      effect: read
      questions:
      - How do I see which products have which badges assigned?
      - Can I filter badge assignments to only the manually assigned ones?
      instructions:
      - text: List badge product assignments matching {filter}.
        slots:
          filter: query.$filter
      - text: Show the first {top} badge assignments.
        slots:
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts'].post
  update:
    x-apievangelist-phrasing:
      intent: Assign a badge to a product
      effect: write
      questions:
      - Can I put a badge like 'New' on a product through the admin API?
      - Is there a flag to record that a badge was assigned manually?
      instructions:
      - text: Assign badge {badgeId} to product {productId}.
        slots:
          badgeId: requestBody.badgeId
          productId: requestBody.productId
      - text: Manually attach badge {badgeId} to product {productId} with manual flag {manuallyAssigned}.
        slots:
          badgeId: requestBody.badgeId
          productId: requestBody.productId
          manuallyAssigned: requestBody.manuallyAssigned
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one badge assignment
      effect: read
      questions:
      - Where do I look up a single badge-product assignment by its id?
      - Which badge and product does a given assignment record link?
      instructions:
      - text: Get badge assignment {id}.
        slots:
          id: path.id
      - text: Show the badge and product on assignment record {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a badge assignment
      effect: write
      questions:
      - How do I fully overwrite a badge-product assignment record?
      - Can I swap the whole assignment to a different badge and product in one replace?
      instructions:
      - text: Replace badge assignment {id} with badge {badgeId} on product {productId}.
        slots:
          id: path.id
          badgeId: requestBody.badgeId
          productId: requestBody.productId
      - text: Overwrite the entire badge assignment record {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a badge from a product
      effect: destructive
      questions:
      - Can I take a badge off a product by deleting its assignment?
      - Is an If-Match ETag supported when removing a badge assignment?
      instructions:
      - text: Delete badge assignment {id}.
        slots:
          id: path.id
      - text: Remove badge assignment {id} only if ETag {etag} matches.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update fields on a badge assignment
      effect: write
      questions:
      - Can I change just the manual-assignment flag on an existing badge assignment?
      - How do I point an existing assignment at a different badge without replacing it?
      instructions:
      - text: Set the manually assigned flag on badge assignment {id} to {manuallyAssigned}.
        slots:
          id: path.id
          manuallyAssigned: requestBody.manuallyAssigned
      - text: Change assignment {id} to use badge {badgeId}.
        slots:
          id: path.id
          badgeId: requestBody.badgeId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/BadgeProducts/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Call the Default function on badge products
      effect: read
      questions:
      - What does the Default function on the BadgeProducts set return?
      - Where do I get the default badge product entity?
      instructions:
      - text: Call the Default function on BadgeProducts.
      - text: Fetch the default badge product entity.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/badgeproducts/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk remove badge assignments
      effect: destructive
      questions:
      - Can I remove many badge assignments at once by id?
      - Is there a bulk way to strip badges from a batch of products?
      instructions:
      - text: Bulk delete badge assignments {ids}.
        slots:
          ids: query.ids
      - text: Remove every badge assignment in the id list {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/badgeproducts({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a badge assignment
      effect: read
      questions:
      - How do I read a custom property stored on a badge assignment?
      - Can I fetch one extension field value from a badge-product record?
      instructions:
      - text: Get custom property {custompropertyKey} of badge assignment {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      - text: Show custom field {custompropertyKey} on badge product {key}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      method: generated
      generated: '2026-09-26'