Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely Groups API

13 actions 13 updates phrasing extends openapi/optimizely-groups-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 13

$.info
$.paths['/projects/{project_id}/groups'].get
$.paths['/projects/{project_id}/groups'].post
$.paths['/projects/{project_id}/groups'].patch
$.paths['/projects/{project_id}/groups/archived'].post
$.paths['/projects/{project_id}/groups/unarchived'].post
$.paths['/projects/{project_id}/groups/{group_id}'].get
$.paths['/projects/{project_id}/groups/{group_id}'].delete
$.paths['/groups'].get
$.paths['/groups'].post
$.paths['/groups/{group_id}'].get
$.paths['/groups/{group_id}'].delete
$.paths['/groups/{group_id}'].patch

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 Groups API
  version: 1.0.0
extends: openapi/optimizely-groups-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: 12
- target: $.paths['/projects/{project_id}/groups'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's exclusion groups by environment
      effect: read
      questions:
      - Which exclusion groups exist in my Feature Experimentation project for a given environment?
      - Can I search exclusion groups by name and show only enabled ones?
      - Is there a way to page through exclusion groups with next and previous tokens?
      instructions:
      - text: List exclusion groups in project {project_id} for environment {environment}.
        slots:
          project_id: path.project_id
          environment: query.environment
      - text: Find exclusion groups in project {project_id} whose name or description contains {query}.
        slots:
          project_id: path.project_id
          query: query.query
      - text: Show archived exclusion groups in project {project_id}, sorted by {sort}.
        slots:
          project_id: path.project_id
          sort: query.sort
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an exclusion group in an environment
      effect: write
      questions:
      - How do I create a mutually exclusive group of flag rules in one environment?
      - Can I add rules to an exclusion group when I create it under a project path?
      instructions:
      - text: Create exclusion group {name} in project {project_id} for environment {environment_key}.
        slots:
          name: requestBody.name
          project_id: path.project_id
          environment_key: requestBody.environment_key
      - text: Create exclusion group {name} in project {project_id}, environment {environment_key}, containing rules {rules}.
        slots:
          name: requestBody.name
          project_id: path.project_id
          environment_key: requestBody.environment_key
          rules: requestBody.rules
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch several exclusion groups at once
      effect: write
      questions:
      - Can I update multiple exclusion groups in a project with one JSON patch request?
      - What happens to read-only properties I include when patching groups in bulk?
      instructions:
      - text: Apply a JSON patch to several exclusion groups in project {project_id}.
        slots:
          project_id: path.project_id
      - text: Bulk update the exclusion groups of project {project_id}.
        slots:
          project_id: path.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/archived'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive exclusion groups
      effect: write
      questions:
      - How do I hide exclusion groups I no longer use without deleting them?
      - Can I archive several exclusion groups by their keys in one go?
      instructions:
      - text: Archive exclusion groups {keys} in project {project_id}.
        slots:
          keys: requestBody.keys
          project_id: path.project_id
      - text: Move the exclusion groups with keys {keys} in project {project_id} to the archive.
        slots:
          keys: requestBody.keys
          project_id: path.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/unarchived'].post
  update:
    x-apievangelist-phrasing:
      intent: Restore archived exclusion groups
      effect: write
      questions:
      - How do I bring back exclusion groups I archived earlier?
      - Can I unarchive several exclusion groups at once by key?
      instructions:
      - text: Unarchive exclusion groups {keys} in project {project_id}.
        slots:
          keys: requestBody.keys
          project_id: path.project_id
      - text: Restore archived groups {keys} in project {project_id}.
        slots:
          keys: requestBody.keys
          project_id: path.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/{group_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Fetch an exclusion group within a project
      effect: read
      questions:
      - What rules and settings does one exclusion group in my project have?
      - Can I fetch a single exclusion group using both its project and group id?
      instructions:
      - text: Fetch exclusion group {group_id} in project {project_id}.
        slots:
          group_id: path.group_id
          project_id: path.project_id
      - text: Show the details of group {group_id} under project {project_id}.
        slots:
          group_id: path.group_id
          project_id: path.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/{group_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Permanently delete an exclusion group
      effect: destructive
      questions:
      - How do I permanently delete an exclusion group so its data is gone?
      - Can a permanently deleted exclusion group ever be recovered?
      instructions:
      - text: Permanently delete exclusion group {group_id} from project {project_id}.
        slots:
          group_id: path.group_id
          project_id: path.project_id
      - text: Erase group {group_id} in project {project_id} for good, not just archive it.
        slots:
          group_id: path.group_id
          project_id: path.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/groups'].get
  update:
    x-apievangelist-phrasing:
      intent: List exclusion groups (Web Experimentation v2)
      effect: read
      questions:
      - Which exclusion groups exist in my Web Experimentation project?
      - Can I page through a project's exclusion groups by page number in the v2 API?
      instructions:
      - text: List exclusion groups for project {project_id} using the top-level groups endpoint.
        slots:
          project_id: query.project_id
      - text: Get page {page} of exclusion groups for project {project_id}, {per_page} per page.
        slots:
          page: query.page
          project_id: query.project_id
          per_page: query.per_page
      method: generated
      generated: '2026-09-26'
- target: $.paths['/groups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an exclusion group of experiments or campaigns
      effect: write
      questions:
      - How do I make experiments mutually exclusive in Web Experimentation?
      - Can I put campaigns and experiments into a new exclusion group when I create it?
      instructions:
      - text: Create exclusion group {name} in project {project_id} with entities {entities}.
        slots:
          name: requestBody.name
          project_id: requestBody.project_id
          entities: requestBody.entities
      - text: Create a Web Experimentation exclusion group {name} for project {project_id} described as {description}.
        slots:
          name: requestBody.name
          project_id: requestBody.project_id
          description: requestBody.description
      method: generated
      generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an exclusion group by id
      effect: read
      questions:
      - Which experiments are in a given exclusion group?
      - Can I look up an exclusion group with only its group id?
      instructions:
      - text: Get exclusion group {group_id}.
        slots:
          group_id: path.group_id
      - text: Show which experiments and campaigns are in group {group_id}.
        slots:
          group_id: path.group_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive an exclusion group by id
      effect: destructive
      questions:
      - Does calling DELETE on a Web Experimentation exclusion group archive it rather than erase it?
      - How do I retire a single exclusion group by its group id alone?
      instructions:
      - text: Archive exclusion group {group_id} via the delete endpoint.
        slots:
          group_id: path.group_id
      - text: Retire Web Experimentation group {group_id}.
        slots:
          group_id: path.group_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an exclusion group's name or members
      effect: write
      questions:
      - How do I add or remove experiments from an existing exclusion group?
      - Can I rename an exclusion group or mark it archived through an update?
      instructions:
      - text: Rename exclusion group {group_id} to {name}.
        slots:
          group_id: path.group_id
          name: requestBody.name
      - text: Set the members of group {group_id} to {entities}.
        slots:
          group_id: path.group_id
          entities: requestBody.entities
      - text: Update the description of group {group_id} to {description}.
        slots:
          group_id: path.group_id
          description: requestBody.description
      method: generated
      generated: '2026-09-26'