# 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 Themes API version: 1.0.0 extends: openapi/optimizely-themes-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/Themes'].get update: x-apievangelist-phrasing: intent: List storefront themes effect: read questions: - How can I see all the themes available for my storefront? - Can I filter themes to just the system themes? instructions: - text: List all themes. - text: List themes matching {filter}. slots: filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Themes'].post update: x-apievangelist-phrasing: intent: Create a theme effect: write questions: - How do I create a new storefront theme? - Can a new theme inherit from a parent theme? instructions: - text: Create a theme named {name} described as {description}. slots: name: requestBody.name description: requestBody.description - text: Create theme {name} ({description}) based on parent theme {parentId}. slots: name: requestBody.name description: requestBody.description parentId: requestBody.parentId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Themes({id})'].get update: x-apievangelist-phrasing: intent: Get one theme by id effect: read questions: - How can I look up a single theme by id? - Where do I see a theme's location and type? instructions: - text: Show theme {id}. slots: id: path.id - text: Fetch {select} for theme {id}. slots: id: path.id select: query.$select method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Themes({id})'].put update: x-apievangelist-phrasing: intent: Replace a theme entirely effect: write questions: - How do I overwrite every setting of a theme at once? - Will a full theme replace clear its parent if I don't send it? instructions: - text: Replace theme {id} with name {name} and description {description}. slots: id: path.id name: requestBody.name description: requestBody.description - text: Overwrite the full record of theme {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Themes({id})'].delete update: x-apievangelist-phrasing: intent: Delete one theme effect: destructive questions: - How do I remove a theme I no longer use? - Can I delete a theme only if it hasn't changed, using an ETag? instructions: - text: Delete theme {id}. slots: id: path.id - text: Remove theme {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/Themes({id})'].patch update: x-apievangelist-phrasing: intent: Update some fields of a theme effect: write questions: - How can I just rename a theme? - Can I change which parent theme an existing theme inherits from? instructions: - text: Rename theme {id} to {name}. slots: id: path.id name: requestBody.name - text: Set the parent of theme {id} to {parentId}. slots: id: path.id parentId: requestBody.parentId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Themes/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get default values for a new theme effect: read questions: - What defaults does a new theme start with? - Where do I get an empty theme template? instructions: - text: Fetch the default theme template. - text: Show starting values for a new theme. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/themes/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete themes effect: destructive questions: - How do I delete several themes at once? - Can I pass a list of ids to remove multiple themes? instructions: - text: Bulk delete themes {ids}. slots: ids: query.ids - text: Permanently delete every theme in {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/themes({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property of a theme effect: read questions: - Where can I read a custom property on a theme? - How do I fetch one custom attribute from a theme? instructions: - text: Get custom property {custompropertyKey} of theme {key}. slots: key: path.key custompropertyKey: path.custompropertyKey - text: Read custom field {custompropertyKey} on theme {key}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26'