# 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 Product Images API version: 1.0.0 extends: openapi/optimizely-product-images-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/ProductImages'].get update: x-apievangelist-phrasing: intent: List product images effect: read questions: - Which images are attached to products in my commerce catalog? - Can I filter product images down to one product? - How many product image records are there? instructions: - text: List all product images. - text: List product images matching {filter}. slots: filter: query.$filter - text: Show the first {top} product images ordered by {orderby}. slots: top: query.$top orderby: query.$orderby method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages'].post update: x-apievangelist-phrasing: intent: Add an image to a product effect: write questions: - How do I attach a new image to a product with small, medium and large paths? - Can I set alt text when adding a product image? instructions: - text: Add image {name} to product {productId} with large image path {largeImagePath}. slots: name: requestBody.name productId: requestBody.productId largeImagePath: requestBody.largeImagePath - text: Attach an image to product {productId} with alt text {altText}. slots: productId: requestBody.productId altText: requestBody.altText method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages({id})'].get update: x-apievangelist-phrasing: intent: Get a product image effect: read questions: - What image paths and alt text does one product image record hold? - Can I fetch a single product image by its ID? instructions: - text: Get product image {id}. slots: id: path.id - text: Show the image paths of product image {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages({id})'].put update: x-apievangelist-phrasing: intent: Replace a product image effect: write questions: - How do I overwrite a product image record entirely? - Does replacing a product image clear fields I don't include? instructions: - text: Replace product image {id} with a full record named {name}. slots: id: path.id name: requestBody.name - text: Overwrite product image {id} with medium image path {mediumImagePath}. slots: id: path.id mediumImagePath: requestBody.mediumImagePath method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages({id})'].delete update: x-apievangelist-phrasing: intent: Delete a product image effect: destructive questions: - Can I remove one image from a product by its image ID? - Is it possible to delete a product image only if the ETag matches? instructions: - text: Delete product image {id}. slots: id: path.id - text: Delete product image {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/ProductImages({id})'].patch update: x-apievangelist-phrasing: intent: Update a product image effect: write questions: - How do I change just the alt text on an existing product image? - Can I move one product image to a different sort position? instructions: - text: Change the alt text of product image {id} to {altText}. slots: id: path.id altText: requestBody.altText - text: Set the sort order of product image {id} to {sortOrder}. slots: id: path.id sortOrder: requestBody.sortOrder method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get a blank product image template effect: read questions: - What default values does a new product image start with? - Can I fetch an empty product image template? instructions: - text: Fetch the default product image template. - text: Show the starting values for a new product image. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductImages/Default.setsortorders'].post update: x-apievangelist-phrasing: intent: Reorder several product images effect: write questions: - How do I reorder a product's images in one call? - Can I set sort orders for a list of images at once? instructions: - text: 'Set the sort orders for these product images: {images}.' slots: images: requestBody.images - text: Reorder product images with the setsortorders action using {images}. slots: images: requestBody.images method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/productimages/setsortorders'].post update: x-apievangelist-phrasing: intent: Call the route-style image sort order endpoint effect: write questions: - Is there a lowercase productimages/setsortorders route with no declared body? - What does the route-style set sort orders endpoint for product images do? instructions: - text: Call the productimages/setsortorders route. - text: Invoke the route-style sort order endpoint for product images. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/productimages/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete product images effect: destructive questions: - Can I delete several product images at once? - How do I remove a batch of product images by ID? instructions: - text: Bulk delete product images {ids}. slots: ids: query.ids - text: 'Remove these product images in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/productimages({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a product image effect: read questions: - Can I read a custom property stored on a product image? - What extra custom values does a product image carry? instructions: - text: Get custom property {custompropertyKey} on product image {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show product image {key}'s custom property {custompropertyKey}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26'