# 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 Specifications API version: 1.0.0 extends: openapi/optimizely-specifications-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: 11 - target: $.paths['/api/v1/admin/Specifications'].get update: x-apievangelist-phrasing: intent: List product specifications effect: read questions: - How do I list all product specifications in the commerce admin? - Can I filter specifications to only the active ones for a product? - What's the total count of specifications matching a filter? instructions: - text: List all product specifications. - text: Find specifications matching {filter}. slots: filter: query.$filter - text: Show {top} specifications sorted by {orderby}. slots: top: query.$top orderby: query.$orderby method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications'].post update: x-apievangelist-phrasing: intent: Create a product specification effect: write questions: - How do I add a new specification like dimensions or material to a product? - Can I attach a specification to a category instead of a product? instructions: - text: Create a specification named {name} with value {value} and description {description}. slots: name: requestBody.name value: requestBody.value description: requestBody.description - text: Add specification {name} = {value} to product {productId}, described as {description}. slots: name: requestBody.name value: requestBody.value productId: requestBody.productId description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications({id})'].get update: x-apievangelist-phrasing: intent: Get a product specification effect: read questions: - How do I look up one specification by its ID? - What value and description does a given specification hold? instructions: - text: Get specification {id}. slots: id: path.id - text: Show the details of specification {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications({id})'].put update: x-apievangelist-phrasing: intent: Replace a product specification effect: write questions: - How do I overwrite an entire specification record? - Does a full replace of a specification clear fields I omit? instructions: - text: Replace specification {id} with name {name}, value {value} and description {description}. slots: id: path.id name: requestBody.name value: requestBody.value description: requestBody.description - text: Overwrite all fields of specification {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications({id})'].delete update: x-apievangelist-phrasing: intent: Delete a product specification effect: destructive questions: - How do I permanently delete a single specification? - Can I make a specification delete conditional on its ETag? instructions: - text: Delete specification {id}. slots: id: path.id - text: Delete specification {id} if its ETag matches {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications({id})'].patch update: x-apievangelist-phrasing: intent: Update a product specification effect: write questions: - How do I change only the value of an existing specification? - Can I deactivate a specification without deleting it? instructions: - text: Set the value of specification {id} to {value}. slots: id: path.id value: requestBody.value - text: Mark specification {id} as inactive. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get a default specification template effect: read questions: - What default values does a new specification start with? - Can I fetch a blank specification template? instructions: - text: Fetch the default specification template. - text: Show me the defaults for a new specification. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Specifications/Default.archive'].post update: x-apievangelist-phrasing: intent: Archive specifications via the archive action effect: destructive questions: - How do I archive several specifications using the OData archive action? - Can I archive specifications with a POST instead of a DELETE? instructions: - text: Run the archive action on specifications {ids}. slots: ids: query.ids - text: POST an archive for specification IDs {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/specifications/archive'].delete update: x-apievangelist-phrasing: intent: Archive specifications via the archive route effect: destructive questions: - How do I archive specifications through the DELETE archive route? - Is there a route that archives specifications rather than deleting them outright? instructions: - text: Archive specifications {ids} using the DELETE archive route. slots: ids: query.ids - text: Send specifications {ids} to the archive route. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/specifications/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete specifications effect: destructive questions: - How do I permanently delete many specifications at once? - Can I remove a batch of specifications by ID list? instructions: - text: Bulk delete the specifications with IDs {ids}. slots: ids: query.ids - text: Permanently remove specifications {ids} in one call. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/specifications({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a specification effect: read questions: - How do I read a custom property stored on a specification? - Can I fetch one extra property value from a specification? instructions: - text: Get custom property {custompropertyKey} on specification {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show specification {key}'s custom property {custompropertyKey}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26'