Adobe Suite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for AJO Customer Loyalty Metadata Challenges API
12 actions
12 updates
phrasing
extends
openapi/adobe-suite-challenges-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Adobe Suite's API. It is a proposal applied on top of the contract, not a document Adobe Suite publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/loyalty/metadata/challenges/{challengeId}'].get
$.paths['/loyalty/metadata/challenges/{challengeId}'].put
$.paths['/loyalty/metadata/challenges/{challengeId}'].delete
$.paths['/loyalty/metadata/challenges/{challengeId}'].patch
$.paths['/loyalty/metadata/challenges'].get
$.paths['/loyalty/metadata/challenges'].post
$.paths['/loyalty/metadata/challenges/{challengeId}/unpublish'].post
$.paths['/loyalty/metadata/challenges/{challengeId}/publish'].post
$.paths['/loyalty/metadata/challenges/{challengeId}/duplicate'].post
$.paths['/loyalty/metadata/challenges/{challengeId}/archive'].post
$.paths['/loyalty/metadata/challenges/initialize'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for AJO Customer Loyalty Metadata Challenges API
version: 1.0.0
extends: openapi/adobe-suite-challenges-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['/loyalty/metadata/challenges/{challengeId}'].get
update:
x-apievangelist-phrasing:
intent: Get a loyalty challenge
effect: read
questions:
- What tasks and rewards are set up on one particular loyalty challenge?
- Can I look up a loyalty challenge by its ID to check its state?
instructions:
- text: Show loyalty challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Get the configuration of challenge {challengeId}.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}'].put
update:
x-apievangelist-phrasing:
intent: Replace a loyalty challenge entirely
effect: write
questions:
- How do I overwrite a whole loyalty challenge definition with a new one?
- Can I change a challenge's start and end dates by replacing it?
instructions:
- text: Replace challenge {challengeId} with name {name}, running {startDate} to {endDate}.
slots:
challengeId: path.challengeId
name: requestBody.name
startDate: requestBody.startDate
endDate: requestBody.endDate
- text: Overwrite challenge {challengeId} with tasks {tasks} and reward {reward}.
slots:
challengeId: path.challengeId
tasks: requestBody.tasks
reward: requestBody.reward
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a loyalty challenge and its journey
effect: destructive
questions:
- What happens to the linked journey when I delete a loyalty challenge?
- How do I permanently remove a loyalty challenge?
instructions:
- text: Delete loyalty challenge {challengeId} along with its journey.
slots:
challengeId: path.challengeId
- text: Remove challenge {challengeId} for good.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}'].patch
update:
x-apievangelist-phrasing:
intent: Partially update a loyalty challenge
effect: write
questions:
- Can I change only a few top-level fields of a challenge without resending the whole thing?
- Is there a way to patch a loyalty challenge instead of replacing it?
instructions:
- text: Patch just the changed fields on challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Partially update loyalty challenge {challengeId}.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges'].get
update:
x-apievangelist-phrasing:
intent: List loyalty challenges
effect: read
questions:
- Which loyalty challenges have we set up in this sandbox?
- Can I filter and sort the list of loyalty challenges by property?
instructions:
- text: List all loyalty challenges.
- text: Show {limit} challenges matching {property}, ordered by {orderby}.
slots:
limit: query.limit
property: query.property
orderby: query.orderby
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges'].post
update:
x-apievangelist-phrasing:
intent: Create a loyalty challenge
effect: write
questions:
- How do I set up a new loyalty challenge for customers to complete?
- Can a new challenge require only some of its tasks to be completed?
instructions:
- text: Create a loyalty challenge named {name} from {startDate} to {endDate}.
slots:
name: requestBody.name
startDate: requestBody.startDate
endDate: requestBody.endDate
- text: Create challenge {name} with tasks {tasks}, needing {tasksToComplete} completed, reward {reward}.
slots:
name: requestBody.name
tasks: requestBody.tasks
tasksToComplete: requestBody.tasksToComplete
reward: requestBody.reward
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}/unpublish'].post
update:
x-apievangelist-phrasing:
intent: Unpublish a loyalty challenge
effect: write
questions:
- How can I take a live loyalty challenge away from customers?
- Can I pull a published challenge without deleting it?
instructions:
- text: Unpublish challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Make challenge {challengeId} unavailable to customers.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}/publish'].post
update:
x-apievangelist-phrasing:
intent: Publish a loyalty challenge to customers
effect: write
questions:
- What makes a loyalty challenge go live for customers?
- Can I dry-run publishing a challenge just to check it for errors?
instructions:
- text: Publish challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Validate challenge {challengeId} for publishing with dry-run {dryRun}.
slots:
challengeId: path.challengeId
dryRun: query.dry-run
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}/duplicate'].post
update:
x-apievangelist-phrasing:
intent: Duplicate a loyalty challenge
effect: write
questions:
- Can I clone an existing loyalty challenge including its journey and campaigns?
- What's the fastest way to make a copy of a challenge as a starting point?
instructions:
- text: Duplicate challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Make a copy of loyalty challenge {challengeId} with its journey metadata.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/{challengeId}/archive'].post
update:
x-apievangelist-phrasing:
intent: Archive a loyalty challenge
effect: destructive
questions:
- What can I still do with a loyalty challenge after it's archived?
- Can I retire a challenge without deleting it right away?
instructions:
- text: Archive challenge {challengeId}.
slots:
challengeId: path.challengeId
- text: Retire loyalty challenge {challengeId} into the archived state.
slots:
challengeId: path.challengeId
method: generated
generated: '2026-09-26'
- target: $.paths['/loyalty/metadata/challenges/initialize'].post
update:
x-apievangelist-phrasing:
intent: Initialize shell journeys and challenges
effect: write
questions:
- How do I bootstrap the shell journey and challenges for loyalty in a new sandbox?
- Is there a setup call that initializes loyalty challenges before I create any?
instructions:
- text: Initialize the shell journey and challenges for loyalty.
- text: Set up the starter loyalty challenge shells in sandbox {sandboxId}.
slots:
sandboxId: header.x-sandbox-id
method: generated
generated: '2026-09-26'