# 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 Restriction Group Product Exceptions API version: 1.0.0 extends: openapi/optimizely-restriction-group-product-exceptions-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/RestrictionGroupProductExceptions'].get update: x-apievangelist-phrasing: intent: List product exceptions to restriction groups effect: read questions: - How do I list products that are exempt from a restriction group? - Can I filter restriction group exceptions to one product? instructions: - text: List all restriction group product exceptions. - text: List restriction group exceptions matching {filter}. slots: filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/RestrictionGroupProductExceptions'].post update: x-apievangelist-phrasing: intent: Exempt a product from a restriction group effect: write questions: - How do I let one product bypass a restriction group? - Can I add a product exception to a restriction group via the admin API? instructions: - text: Exempt product {productId} from restriction group {restrictionGroupId}. slots: productId: requestBody.productId restrictionGroupId: requestBody.restrictionGroupId - text: Add an exception for product {productId} in restriction group {restrictionGroupId}. slots: productId: requestBody.productId restrictionGroupId: requestBody.restrictionGroupId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/RestrictionGroupProductExceptions({id})'].get update: x-apievangelist-phrasing: intent: Get one restriction group product exception effect: read questions: - How do I look up a single restriction group exception by id? - Which product and group does a given exception record cover? instructions: - text: Get restriction group product exception {id}. slots: id: path.id - text: Show the product and group on exception {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/RestrictionGroupProductExceptions({id})'].put update: x-apievangelist-phrasing: intent: Replace a restriction group product exception effect: write questions: - How do I overwrite a restriction group exception record entirely? - Is there a full replace for a product exception? instructions: - text: Replace exception {id} to exempt product {productId} from group {restrictionGroupId}. slots: id: path.id productId: requestBody.productId restrictionGroupId: requestBody.restrictionGroupId - text: Overwrite the whole restriction exception record {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/RestrictionGroupProductExceptions({id})'].delete update: x-apievangelist-phrasing: intent: Remove a product's restriction exception effect: destructive questions: - How do I make a product subject to its restriction group again? - Can I delete a restriction exception only if its ETag matches? instructions: - text: Delete restriction group product exception {id}. slots: id: path.id - text: Delete restriction exception {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/RestrictionGroupProductExceptions({id})'].patch update: x-apievangelist-phrasing: intent: Update a restriction group product exception effect: write questions: - How do I point an existing exception at a different product? - Can I change only the restriction group on an exception? instructions: - text: Change exception {id} to product {productId}. slots: id: path.id productId: requestBody.productId - text: Patch exception {id} to restriction group {restrictionGroupId}. slots: id: path.id restrictionGroupId: requestBody.restrictionGroupId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/RestrictionGroupProductExceptions/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get the default restriction exception record effect: read questions: - What does a default restriction group product exception look like? - Can I get the template values for a new product exception? instructions: - text: Get the default restriction group product exception. - text: Show the template for a new product exception. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/restrictiongroupproductexceptions/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete restriction exceptions effect: destructive questions: - How do I remove many product exceptions in one call? - Can I bulk delete restriction group exceptions by ids? instructions: - text: Bulk delete restriction group product exceptions {ids}. slots: ids: query.ids - text: 'Remove these product exceptions at once: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/restrictiongroupproductexceptions({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a restriction exception effect: read questions: - How do I read a custom property on a restriction group product exception? - Can I fetch one extension property of a product exception? instructions: - text: Get custom property {custompropertyKey} on restriction exception {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show custom property {custompropertyKey} for product exception {key}. slots: custompropertyKey: path.custompropertyKey key: path.key method: generated generated: '2026-09-26'