# 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 Subscription Products API version: 1.0.0 extends: openapi/optimizely-subscription-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/SubscriptionProducts'].get update: x-apievangelist-phrasing: intent: List subscription products effect: read questions: - Which products are bundled into my subscription products? - Can I filter subscription products by their parent product? instructions: - text: List all subscription products. - text: Find subscription products matching {filter}. slots: filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts'].post update: x-apievangelist-phrasing: intent: Add a product to a subscription effect: write questions: - How do I add a product to a subscription parent product? - Can I set the quantity ordered when adding a product to a subscription? instructions: - text: Add product {productId} to subscription parent {parentProductId}. slots: productId: requestBody.productId parentProductId: requestBody.parentProductId - text: Create a subscription product for {productId} with quantity {qtyOrdered}. slots: productId: requestBody.productId qtyOrdered: requestBody.qtyOrdered method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts({id})'].get update: x-apievangelist-phrasing: intent: Get a subscription product by ID effect: read questions: - What product and quantity does one subscription product record hold? - Can I look up a single subscription product by its ID? instructions: - text: Get subscription product {id}. slots: id: path.id - text: Show the product and quantity of subscription product {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts({id})'].put update: x-apievangelist-phrasing: intent: Replace a subscription product effect: write questions: - Can I overwrite a whole subscription product record at once? - What happens to omitted fields on a full replace of a subscription product? instructions: - text: Replace subscription product {id} with product {productId}, parent {parentProductId}, quantity {qtyOrdered}. slots: id: path.id productId: requestBody.productId parentProductId: requestBody.parentProductId qtyOrdered: requestBody.qtyOrdered - text: Overwrite the entire subscription product {id} using a full PUT. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts({id})'].delete update: x-apievangelist-phrasing: intent: Remove a product from a subscription effect: destructive questions: - How do I take a product out of a subscription? - Does deleting a subscription product accept an If-Match ETag? instructions: - text: Delete subscription product {id}. slots: id: path.id - text: Delete subscription product {id} only if its ETag matches {ifMatch}. slots: id: path.id ifMatch: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts({id})'].patch update: x-apievangelist-phrasing: intent: Update a subscription product effect: write questions: - How do I change the quantity of a product inside a subscription? - Can I swap the product on an existing subscription product record? instructions: - text: Change the quantity of subscription product {id} to {qtyOrdered}. slots: id: path.id qtyOrdered: requestBody.qtyOrdered - text: Swap subscription product {id} to product {productId}. slots: id: path.id productId: requestBody.productId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/SubscriptionProducts/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get a default subscription product template effect: read questions: - What default values does a new subscription product start with? - Is there a blank subscription product template to fetch first? instructions: - text: Fetch the default subscription product template. - text: Show me the default values for a new subscription product. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/subscriptionproducts/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete subscription products effect: destructive questions: - How do I delete several subscription products at once? - Can I pass a list of IDs to remove many subscription products? instructions: - text: Bulk delete the subscription products with IDs {ids}. slots: ids: query.ids - text: 'Remove all of these subscription products in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/subscriptionproducts({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a subscription product effect: read questions: - Where do I read a custom property stored on a subscription product? - Can I fetch one extra property value from a subscription product? instructions: - text: Get custom property {custompropertyKey} on subscription product {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show the custom property {custompropertyKey} of subscription product {key}. slots: custompropertyKey: path.custompropertyKey key: path.key method: generated generated: '2026-09-26'