# 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 Customer Product Set Products API version: 1.0.0 extends: openapi/optimizely-customer-product-set-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/CustomerProductSetProducts'].get update: x-apievangelist-phrasing: intent: List products in customer product sets effect: read questions: - Which products are included in my customers' restricted product sets in Optimizely Configured Commerce? - Can I filter the product set entries to a single customer product set? instructions: - text: List all customer product set product entries. - text: List customer product set products matching {filter}, skipping {skip}. slots: filter: query.$filter skip: query.$skip method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/CustomerProductSetProducts'].post update: x-apievangelist-phrasing: intent: Add a product to a customer product set effect: write questions: - How do I add a product to a customer-specific product set? - What do I need to include a product in a customer product set? instructions: - text: Add product {productId} to customer product set {customerProductSetId}. slots: productId: requestBody.productId customerProductSetId: requestBody.customerProductSetId - text: Put product {productId} into the customer's product set {customerProductSetId}. slots: productId: requestBody.productId customerProductSetId: requestBody.customerProductSetId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/CustomerProductSetProducts({id})'].get update: x-apievangelist-phrasing: intent: Get one customer product set entry effect: read questions: - How do I look up a single product-in-set entry by its ID? - Can I expand the product when fetching one customer product set entry? instructions: - text: Show customer product set product {id}. slots: id: path.id - text: Fetch customer product set entry {id} with {expand} expanded. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/CustomerProductSetProducts({id})'].put update: x-apievangelist-phrasing: intent: Replace a customer product set entry effect: write questions: - Can I overwrite a product set entry with a different product and set? - What happens when I fully replace a customer product set product record? instructions: - text: Replace customer product set entry {id} with product {productId} in set {customerProductSetId}. slots: id: path.id productId: requestBody.productId customerProductSetId: requestBody.customerProductSetId - text: Overwrite the whole product set entry {id}, pointing it at product {productId}. slots: id: path.id productId: requestBody.productId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/CustomerProductSetProducts({id})'].delete update: x-apievangelist-phrasing: intent: Remove a product from a customer product set effect: destructive questions: - How do I take one product out of a customer product set? - Can I make removing a product set entry conditional on an ETag? instructions: - text: Delete customer product set product {id}. slots: id: path.id - text: Delete product set entry {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/CustomerProductSetProducts({id})'].patch update: x-apievangelist-phrasing: intent: Update a customer product set entry effect: write questions: - Can I move a product set entry to a different customer product set? - Is a partial update possible on a customer product set product? instructions: - text: Patch product set entry {id} to belong to set {customerProductSetId}. slots: id: path.id customerProductSetId: requestBody.customerProductSetId - text: Swap the product on set entry {id} to {productId}. slots: id: path.id productId: requestBody.productId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/CustomerProductSetProducts/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get default values for a product set entry effect: read questions: - What defaults does the admin pre-fill for a new customer product set product? - Where do I get a blank customer product set entry template? instructions: - text: Get the default customer product set product template. - text: Show me the pre-filled defaults for a new product set entry. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/customerproductsetproducts/delete'].delete update: x-apievangelist-phrasing: intent: Bulk remove products from customer product sets effect: destructive questions: - How do I remove many products from customer product sets at once? - Can I bulk-delete customer product set entries by ID? instructions: - text: Bulk delete customer product set products {ids}. slots: ids: query.ids - text: Permanently remove the product set entries {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/customerproductsetproducts({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a product set entry effect: read questions: - How can I read one custom property stored on a customer product set entry? - Can I select fields from a product set entry's custom property? instructions: - text: Show custom property {custompropertyKey} on customer product set product {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Fetch product set entry {key}'s custom property {custompropertyKey}, selecting {select}. slots: key: path.key custompropertyKey: path.custompropertyKey select: query.$select method: generated generated: '2026-09-26'