# 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'