# 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 Vendors API version: 1.0.0 extends: openapi/optimizely-vendors-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: 10 - target: $.paths['/api/v1/admin/Vendors'].get update: x-apievangelist-phrasing: intent: List vendors effect: read questions: - How do I list all the vendors supplying products in Optimizely Configured Commerce? - Can I filter vendors by city or state and sort by ranking? instructions: - text: List all vendors. - text: List vendors matching {filter} sorted by {orderby}. slots: filter: query.$filter orderby: query.$orderby method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors'].post update: x-apievangelist-phrasing: intent: Add a new vendor effect: write questions: - What contact and address details are required to set up a vendor? - Can I give a new vendor regular and sale markup percentages? instructions: - text: Create vendor {name} with vendor number {vendorNumber} and contact email {contactEmail}. slots: name: requestBody.name vendorNumber: requestBody.vendorNumber contactEmail: requestBody.contactEmail - text: Add vendor {name} in {city}, {state} with a regular markup of {regularMarkup}. slots: name: requestBody.name city: requestBody.city state: requestBody.state regularMarkup: requestBody.regularMarkup method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors({id})'].get update: x-apievangelist-phrasing: intent: Get one vendor effect: read questions: - How can I pull a single vendor's contact details by ID? - Which related records can I expand when reading a vendor? instructions: - text: Show vendor {id}. slots: id: path.id - text: Get vendor {id} returning only {select}. slots: id: path.id select: query.$select method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors({id})'].put update: x-apievangelist-phrasing: intent: Replace a vendor record effect: write questions: - Can I overwrite a vendor with a complete new record? - Do I need every required address field when replacing a vendor? instructions: - text: Replace vendor {id} with name {name} and vendor number {vendorNumber}. slots: id: path.id name: requestBody.name vendorNumber: requestBody.vendorNumber - text: Overwrite vendor {id} fully, with postal code {postalCode} and phone {phone}. slots: id: path.id postalCode: requestBody.postalCode phone: requestBody.phone method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors({id})'].delete update: x-apievangelist-phrasing: intent: Delete a vendor effect: destructive questions: - How do I delete a single vendor? - Can a vendor delete be guarded by an If-Match ETag? instructions: - text: Delete vendor {id}. slots: id: path.id - text: Delete vendor {id} only if its ETag equals {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors({id})'].patch update: x-apievangelist-phrasing: intent: Update a vendor's details effect: write questions: - Can I change just a vendor's contact person without resending the address? - How do I adjust only the sale markup for a vendor? instructions: - text: Patch vendor {id} so the contact is {contactName} at {contactEmail}. slots: id: path.id contactName: requestBody.contactName contactEmail: requestBody.contactEmail - text: Update vendor {id} sale markup to {saleMarkup}. slots: id: path.id saleMarkup: requestBody.saleMarkup method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Vendors/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get default values for a new vendor effect: read questions: - What defaults are pre-filled for a vendor before it's created? - Is there a blank vendor template? instructions: - text: Get the default vendor template. - text: Show pre-filled values for a new vendor. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vendors/delete'].delete update: x-apievangelist-phrasing: intent: Delete several vendors effect: destructive questions: - Can I bulk delete a list of vendors in one call? - How do I remove many vendors at once? instructions: - text: Bulk delete vendors {ids}. slots: ids: query.ids - text: Remove every vendor listed in {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vendors({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a vendor effect: read questions: - Can I read a custom property stored on a vendor? - Where do extra custom attributes on a vendor live? instructions: - text: Get custom property {custompropertyKey} on vendor {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show vendor {key}'s custom property {custompropertyKey}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vendors({key})/products({productKey})'].get update: x-apievangelist-phrasing: intent: Get a product supplied by a vendor effect: read questions: - How do I check that a specific product is supplied by a given vendor? - Can I open one product record under a vendor? instructions: - text: Get product {productKey} supplied by vendor {key}. slots: productKey: path.productKey key: path.key - text: Look up vendor {key}'s product {productKey}. slots: key: path.key productKey: path.productKey method: generated generated: '2026-09-26'