# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Prisma Postgres Management [Experimental] API version: 1.0.0 extends: openapi/prisma-experimental-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: 70 - target: $.paths['/v1/apps'].get update: x-apievangelist-phrasing: intent: List apps (deprecated, use services) effect: read questions: - Which legacy apps does my token have access to? - Can I still list apps by project now that apps are deprecated? instructions: - text: List my deprecated apps. - text: List the legacy apps in project {projectId}. slots: projectId: query.projectId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps'].post update: x-apievangelist-phrasing: intent: Create an app (deprecated, use services) effect: write questions: - Is creating an app still supported now that apps are deprecated? - What do I need to create a legacy app in a project? instructions: - text: Create a legacy app called {displayName} in project {projectId}. slots: displayName: requestBody.displayName projectId: requestBody.projectId - text: Set up deprecated app {displayName} for {projectId} in region {regionId}. slots: displayName: requestBody.displayName projectId: requestBody.projectId regionId: requestBody.regionId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}'].get update: x-apievangelist-phrasing: intent: Get an app (deprecated) effect: read questions: - Can I still look up a legacy app and its promoted deployment? - Which region is my old app running in? instructions: - text: Get legacy app {appId}. slots: appId: path.appId - text: Show region and live deployment of deprecated app {appId}. slots: appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}'].delete update: x-apievangelist-phrasing: intent: Delete an app (deprecated) effect: destructive questions: - Are an app's deployments removed when I delete the legacy app? - Can I still delete an app through the deprecated apps endpoint? instructions: - text: Delete legacy app {appId}. slots: appId: path.appId - text: Remove deprecated app {appId} and its deployments. slots: appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}'].patch update: x-apievangelist-phrasing: intent: Rename an app (deprecated) effect: write questions: - Can I rename a legacy app? - Is it possible to move an old app onto another git branch? instructions: - text: Rename legacy app {appId} to {displayName}. slots: appId: path.appId displayName: requestBody.displayName - text: Attach deprecated app {appId} to git branch {branchGitName}. slots: appId: path.appId branchGitName: requestBody.branchGitName method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/promote'].post update: x-apievangelist-phrasing: intent: Promote a deployment on an app (deprecated) effect: write questions: - Can I still make a running deployment live on a legacy app? - Does promoting on the old app endpoint require the deployment to be running? instructions: - text: Promote deployment {deploymentId} on legacy app {appId}. slots: deploymentId: requestBody.deploymentId appId: path.appId - text: Make {deploymentId} the active deployment behind deprecated app {appId}. slots: deploymentId: requestBody.deploymentId appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/rollback'].post update: x-apievangelist-phrasing: intent: Roll an app back to a deployment (deprecated) effect: write questions: - Can I roll a legacy app back to an earlier deployment without downtime? - Will rolling back an old app start a stopped deployment first? instructions: - text: Roll legacy app {appId} back to deployment {deploymentId}. slots: appId: path.appId deploymentId: requestBody.deploymentId - text: Put {deploymentId} live again on deprecated app {appId}. slots: deploymentId: requestBody.deploymentId appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/domains'].get update: x-apievangelist-phrasing: intent: List an app's custom domains (deprecated) effect: read questions: - Which custom domains are attached to my legacy app? - Can I see domains across all deployments of an old app? instructions: - text: List custom domains on legacy app {appId}. slots: appId: path.appId - text: Show the hostnames bound to deprecated app {appId}. slots: appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/domains'].post update: x-apievangelist-phrasing: intent: Add a custom domain to an app (deprecated) effect: write questions: - Can I still register a custom hostname on a legacy app? - What DNS setup does a custom domain on an old app need? instructions: - text: Add custom domain {hostname} to legacy app {appId}. slots: hostname: requestBody.hostname appId: path.appId - text: Register {hostname} for deprecated app {appId}. slots: hostname: requestBody.hostname appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/deployments'].get update: x-apievangelist-phrasing: intent: List an app's deployments (deprecated) effect: read questions: - Which deployments does my legacy app have? - Are an old app's deployments listed newest first? instructions: - text: List deployments of legacy app {appId}. slots: appId: path.appId - text: Show {limit} recent deployments for deprecated app {appId}. slots: limit: query.limit appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/v1/apps/{appId}/deployments'].post update: x-apievangelist-phrasing: intent: Create a deployment for an app (deprecated) effect: write questions: - Can I still create a deployment under a legacy app? - Can a new deployment on an old app reuse the current artifact instead of uploading code? instructions: - text: Create a deployment for legacy app {appId}. slots: appId: path.appId - text: Deploy deprecated app {appId} again with skipCodeUpload {skipCodeUpload}. slots: appId: path.appId skipCodeUpload: requestBody.skipCodeUpload method: generated generated: '2026-09-26' - target: $.paths['/v1/services'].get update: x-apievangelist-phrasing: intent: List compute services effect: read questions: - Which compute services can my token access? - Can I list the services in one project or git branch? instructions: - text: List my compute services. - text: List services in project {projectId}. slots: projectId: query.projectId - text: Show services on git branch {branchGitName}. slots: branchGitName: query.branchGitName method: generated generated: '2026-09-26' - target: $.paths['/v1/services'].post update: x-apievangelist-phrasing: intent: Create a compute service effect: write questions: - How do I create a compute service in a project? - Can I choose the region a new service runs in? instructions: - text: Create a service called {displayName} in project {projectId}. slots: displayName: requestBody.displayName projectId: requestBody.projectId - text: Set up service {displayName} for {projectId} in region {regionId}. slots: displayName: requestBody.displayName projectId: requestBody.projectId regionId: requestBody.regionId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}'].get update: x-apievangelist-phrasing: intent: Get a compute service effect: read questions: - Which deployment is currently promoted on my service? - What region is a given compute service in? instructions: - text: Get service {serviceId}. slots: serviceId: path.serviceId - text: Show region and live deployment of service {serviceId}. slots: serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}'].delete update: x-apievangelist-phrasing: intent: Delete a compute service effect: destructive questions: - Does deleting a service also delete its deployments? - How do I tear down a compute service completely? instructions: - text: Delete service {serviceId}. slots: serviceId: path.serviceId - text: Remove service {serviceId} along with all its deployments. slots: serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}'].patch update: x-apievangelist-phrasing: intent: Rename a compute service effect: write questions: - Can I rename a compute service? - Is it possible to move a service onto a different git branch? instructions: - text: Rename service {serviceId} to {displayName}. slots: serviceId: path.serviceId displayName: requestBody.displayName - text: Attach service {serviceId} to git branch {branchGitName}. slots: serviceId: path.serviceId branchGitName: requestBody.branchGitName method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/promote'].post update: x-apievangelist-phrasing: intent: Promote a running deployment on a service effect: write questions: - How do I make a running deployment live behind my service's stable endpoint? - Does a deployment have to be running before I promote it? instructions: - text: Promote deployment {deploymentId} on service {serviceId}. slots: deploymentId: requestBody.deploymentId serviceId: path.serviceId - text: Make {deploymentId} the active deployment behind service {serviceId}. slots: deploymentId: requestBody.deploymentId serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/rollback'].post update: x-apievangelist-phrasing: intent: Roll a service back to an earlier deployment effect: write questions: - Can I roll my service back to an earlier deployment with zero downtime? - Will a rollback start a stopped deployment before switching traffic? instructions: - text: Roll service {serviceId} back to deployment {deploymentId}. slots: serviceId: path.serviceId deploymentId: requestBody.deploymentId - text: Put {deploymentId} live again on service {serviceId}. slots: deploymentId: requestBody.deploymentId serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/domains'].get update: x-apievangelist-phrasing: intent: List a service's custom domains effect: read questions: - Which custom domains are attached to my service? - Are domains shown across every deployment of a service? instructions: - text: List custom domains on service {serviceId}. slots: serviceId: path.serviceId - text: Show the hostnames bound to service {serviceId}. slots: serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/domains'].post update: x-apievangelist-phrasing: intent: Add a custom domain to a service effect: write questions: - How do I put my own hostname in front of a service? - What CNAME does a custom domain for a service need? instructions: - text: Add custom domain {hostname} to service {serviceId}. slots: hostname: requestBody.hostname serviceId: path.serviceId - text: Register {hostname} for service {serviceId}. slots: hostname: requestBody.hostname serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/deployments'].get update: x-apievangelist-phrasing: intent: List a service's deployments effect: read questions: - Which deployments does my service have? - Are a service's deployments listed newest first? instructions: - text: List deployments of service {serviceId}. slots: serviceId: path.serviceId - text: Show {limit} recent deployments for service {serviceId}. slots: limit: query.limit serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/v1/services/{serviceId}/deployments'].post update: x-apievangelist-phrasing: intent: Create a deployment for a service effect: write questions: - How do I create a new deployment and get an upload URL for my code? - Can a new deployment reuse the currently promoted artifact instead of uploading code? instructions: - text: Create a deployment for service {serviceId}. slots: serviceId: path.serviceId - text: Redeploy service {serviceId} with skipCodeUpload {skipCodeUpload}. slots: serviceId: path.serviceId skipCodeUpload: requestBody.skipCodeUpload - text: Deploy service {serviceId} with port mapping {portMapping}. slots: serviceId: path.serviceId portMapping: requestBody.portMapping method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches'].get update: x-apievangelist-phrasing: intent: List a project's branches effect: read questions: - Which live branches does my project have? - Can I find a branch by its exact git name? - Is there a way to search branches by part of their git name? instructions: - text: List the branches in project {projectId}. slots: projectId: path.projectId - text: Find the branch named {gitName} in {projectId}. slots: gitName: query.gitName projectId: path.projectId - text: Show branches in {projectId} whose git name contains {gitNameContains}. slots: projectId: path.projectId gitNameContains: query.gitNameContains method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches'].post update: x-apievangelist-phrasing: intent: Create a branch in a project effect: write questions: - How do I add a preview branch to a project? - What happens when the first branch is created in a project? instructions: - text: Create branch {gitName} in project {projectId}. slots: gitName: requestBody.gitName projectId: path.projectId - text: Add branch {gitName} to {projectId} as the default with isDefault {isDefault}. slots: gitName: requestBody.gitName projectId: path.projectId isDefault: requestBody.isDefault method: generated generated: '2026-09-26' - target: $.paths['/v1/branches/{branchId}'].get update: x-apievangelist-phrasing: intent: Get a branch effect: read questions: - What are the details of one branch? - Can I check whether a branch is the project default? instructions: - text: Get branch {branchId}. slots: branchId: path.branchId - text: Show me the git name and role of branch {branchId}. slots: branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/branches/{branchId}'].delete update: x-apievangelist-phrasing: intent: Soft-delete a branch effect: destructive questions: - Why would deleting a branch be refused? - Can I delete a branch that still has databases or services on it? instructions: - text: Delete branch {branchId}. slots: branchId: path.branchId - text: Soft-delete preview branch {branchId}. slots: branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/branches/{branchId}'].patch update: x-apievangelist-phrasing: intent: Make a branch the project default effect: write questions: - How do I change which branch is my project's default? - Can I rename a branch's git name after it is created? instructions: - text: Make branch {branchId} the project default. slots: branchId: path.branchId - text: Set isDefault to {isDefault} on branch {branchId}. slots: isDefault: requestBody.isDefault branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/builds'].get update: x-apievangelist-phrasing: intent: List builds in my workspace effect: read questions: - Which builds ran recently in my workspace? - Can I see only the failed builds for one project? instructions: - text: List my recent builds. - text: Show builds in project {projectId} with state {state}. slots: projectId: query.projectId state: query.state method: generated generated: '2026-09-26' - target: $.paths['/v1/builds'].post update: x-apievangelist-phrasing: intent: Report a build from CI or the CLI effect: write questions: - How do I record a CI build so it shows up in the platform? - Can reporting the same CI run twice create a duplicate build? instructions: - text: Report a {source} build of commit {commitSha} on branch {branchName}. slots: source: requestBody.source commitSha: requestBody.commitSha branchName: requestBody.branchName - text: Record build run {runIdentity} for {commitSha} on {branchName} from {source}. slots: runIdentity: requestBody.runIdentity commitSha: requestBody.commitSha branchName: requestBody.branchName source: requestBody.source method: generated generated: '2026-09-26' - target: $.paths['/v1/builds/{buildId}'].get update: x-apievangelist-phrasing: intent: Get a build and the resources it touched effect: read questions: - What resources did a particular build act on? - Where can I see the state of one build? instructions: - text: Get build {buildId}. slots: buildId: path.buildId - text: Show the resources build {buildId} reported acting on. slots: buildId: path.buildId method: generated generated: '2026-09-26' - target: $.paths['/v1/builds/{buildId}'].patch update: x-apievangelist-phrasing: intent: Report progress on a build effect: write questions: - How do I mark a build as failed and record the failing step? - Can I add the deployed URL to a build after it finishes? instructions: - text: Set build {buildId} to state {state}. slots: buildId: path.buildId state: requestBody.state - text: Mark build {buildId} failed at step {failingStep} with error {errorMessage}. slots: buildId: path.buildId failingStep: requestBody.failingStep errorMessage: requestBody.errorMessage - text: Record that build {buildId} deployed to {deployedUrl}. slots: buildId: path.buildId deployedUrl: requestBody.deployedUrl method: generated generated: '2026-09-26' - target: $.paths['/v1/builds/{buildId}/resources/{resourceType}/{resourceId}'].put update: x-apievangelist-phrasing: intent: Record a resource a build acted on effect: write questions: - How do I record that a build created or deleted a database? - Can re-reporting a resource weaken the action already recorded on a build? instructions: - text: Record that build {buildId} {action} {resourceType} {resourceId}. slots: buildId: path.buildId action: requestBody.action resourceType: path.resourceType resourceId: path.resourceId - text: 'Log provenance: build {buildId} acted on {resourceType} {resourceId} with action {action}.' slots: buildId: path.buildId resourceType: path.resourceType resourceId: path.resourceId action: requestBody.action method: generated generated: '2026-09-26' - target: $.paths['/v1/builds/{buildId}/logs'].get update: x-apievangelist-phrasing: intent: Stream a build's logs effect: read questions: - How do I tail the logs of a build that is still running? - Can I resume reading build logs from where I stopped? instructions: - text: Show the build log for {buildId}. slots: buildId: path.buildId - text: Follow build {buildId}'s log live with follow set to {follow}. slots: buildId: path.buildId follow: query.follow - text: Resume build {buildId}'s log from cursor {cursor}. slots: buildId: path.buildId cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/v1/domains/{domainId}'].get update: x-apievangelist-phrasing: intent: Get a custom domain effect: read questions: - What is the verification and certificate status of my custom domain? - Where do I look up one custom domain by its ID? instructions: - text: Get custom domain {domainId}. slots: domainId: path.domainId - text: Check the provisioning status of domain {domainId}. slots: domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/v1/domains/{domainId}'].delete update: x-apievangelist-phrasing: intent: Remove a custom domain effect: destructive questions: - How do I unbind a custom domain from my service? - Can I remove a hostname I no longer own? instructions: - text: Delete custom domain {domainId}. slots: domainId: path.domainId - text: Unbind hostname {domainId} from its service. slots: domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/v1/domains/{domainId}/retry'].post update: x-apievangelist-phrasing: intent: Retry custom domain provisioning effect: write questions: - My custom domain failed verification; can I retry the DNS check? - Is there a way to reissue the certificate for a pending domain? instructions: - text: Retry provisioning for domain {domainId}. slots: domainId: path.domainId - text: Re-run DNS verification and certificate issuance for {domainId}. slots: domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/v1/deployments/{deploymentId}'].get update: x-apievangelist-phrasing: intent: Get a deployment's status effect: read questions: - Is my deployment running yet? - What status does a given deployment have right now? instructions: - text: Get deployment {deploymentId}. slots: deploymentId: path.deploymentId - text: Check whether deployment {deploymentId} is running. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/v1/deployments/{deploymentId}'].delete update: x-apievangelist-phrasing: intent: Delete a stopped deployment effect: destructive questions: - Do I need to stop a deployment before deleting it? - Does deleting a deployment remove its VM too? instructions: - text: Delete deployment {deploymentId}. slots: deploymentId: path.deploymentId - text: Permanently remove {deploymentId} and its VM. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/v1/deployments/{deploymentId}/start'].post update: x-apievangelist-phrasing: intent: Start a deployment's VM effect: write questions: - How do I boot a deployment after uploading its artifact? - Where do I get the preview domain for a newly started deployment? instructions: - text: Start deployment {deploymentId}. slots: deploymentId: path.deploymentId - text: Boot the VM for {deploymentId} and give me its preview domain. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/v1/deployments/{deploymentId}/stop'].post update: x-apievangelist-phrasing: intent: Stop a deployment's VM effect: write questions: - Can I shut down a deployment but keep its record? - What should I poll to confirm a deployment has stopped? instructions: - text: Stop deployment {deploymentId}. slots: deploymentId: path.deploymentId - text: Shut down the VM behind {deploymentId}. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/v1/deployments/{deploymentId}/logs'].get update: x-apievangelist-phrasing: intent: Get a deployment's runtime logs effect: read questions: - How do I see the last lines my deployment logged? - Can I read a deployment's logs from the very beginning? instructions: - text: Show logs for deployment {deploymentId}. slots: deploymentId: path.deploymentId - text: Get the last {tail} log lines of {deploymentId}. slots: tail: query.tail deploymentId: path.deploymentId - text: Read {deploymentId}'s logs from the start with from_start {from_start}. slots: deploymentId: path.deploymentId from_start: query.from_start method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/lease'].post update: x-apievangelist-phrasing: intent: Acquire an Alchemy deploy lease effect: write questions: - How do I take the Alchemy deploy lease for a stack and stage? - What happens if another deploy already holds the lease? instructions: - text: Acquire the deploy lease for stack {stack} stage {stage} on branch {branchId} of {projectId}. slots: projectId: path.projectId branchId: path.branchId stack: requestBody.stack stage: requestBody.stage - text: Take the lease on {stack}/{stage} in {projectId} branch {branchId} for {ttlSeconds} seconds. slots: projectId: path.projectId branchId: path.branchId stack: requestBody.stack stage: requestBody.stage ttlSeconds: requestBody.ttlSeconds method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/lease'].delete update: x-apievangelist-phrasing: intent: Release an Alchemy deploy lease effect: destructive questions: - How do I give up the Alchemy lease when a deploy exits cleanly? - What does it mean if releasing my lease returns not found? instructions: - text: Release lease {lease} on branch {branchId} of project {projectId}. slots: projectId: path.projectId branchId: path.branchId lease: header.alchemy-state-lease-id - text: Drop deploy lease {lease} for {projectId} branch {branchId}. slots: projectId: path.projectId branchId: path.branchId lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/lease'].patch update: x-apievangelist-phrasing: intent: Extend an Alchemy deploy lease effect: write questions: - How do I keep my Alchemy deploy lease alive during a long deploy? - Can an expired lease be revived with a heartbeat? instructions: - text: Heartbeat lease {lease} on branch {branchId} of {projectId}. slots: projectId: path.projectId branchId: path.branchId lease: header.alchemy-state-lease-id - text: Extend lease {lease} for {projectId} branch {branchId} by {ttlSeconds} seconds. slots: projectId: path.projectId branchId: path.branchId ttlSeconds: requestBody.ttlSeconds lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/version'].get update: x-apievangelist-phrasing: intent: Get the Alchemy state store version effect: read questions: - Which Alchemy state store contract version does the platform serve? - Does checking the state store version need authentication? instructions: - text: Get the Alchemy state store version for branch {branchId} of {projectId}. slots: projectId: path.projectId branchId: path.branchId - text: Probe the state API contract version on {projectId} branch {branchId}. slots: projectId: path.projectId branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks'].get update: x-apievangelist-phrasing: intent: List Alchemy stacks on a branch effect: read questions: - Which Alchemy stacks have stored state on my branch? - Can I list stack names without holding a deploy lease? instructions: - text: List the Alchemy stacks on branch {branchId} of {projectId}. slots: projectId: path.projectId branchId: path.branchId - text: Show stack names with state in {projectId} branch {branchId}. slots: projectId: path.projectId branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages'].get update: x-apievangelist-phrasing: intent: List stages of an Alchemy stack effect: read questions: - Which stages of an Alchemy stack have stored state? - Does listing a stack's stages require a lease? instructions: - text: List stages of stack {stack} on branch {branchId} of {projectId} with lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack lease: header.alchemy-state-lease-id - text: Show the stage names stored for {stack} in {projectId}/{branchId} using lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/resources'].get update: x-apievangelist-phrasing: intent: List resources in an Alchemy stage effect: read questions: - Which resources are recorded for an Alchemy stage? - In what order are a stage's resource FQNs returned? instructions: - text: List resource FQNs in {stack}/{stage} on {projectId} branch {branchId} with lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id - text: Show what resources stage {stage} of {stack} tracks in {projectId}/{branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/resources/{fqn}'].get update: x-apievangelist-phrasing: intent: Read one Alchemy resource's state effect: read questions: - How do I read the stored state of one Alchemy resource? - What comes back when a resource has no stored state? instructions: - text: Get state of resource {fqn} in {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id - text: Read stored state for {fqn} ({stack} {stage}) in {projectId}/{branchId} with lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/resources/{fqn}'].put update: x-apievangelist-phrasing: intent: Save one Alchemy resource's state effect: write questions: - How do I store updated state for an Alchemy resource? - Is Alchemy resource state encrypted when it is saved? instructions: - text: Save state for resource {fqn} in {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id - text: Write {fqn}'s new state to stage {stage} of {stack} in {projectId}/{branchId} under lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/resources/{fqn}'].delete update: x-apievangelist-phrasing: intent: Delete one Alchemy resource's state effect: destructive questions: - How do I remove the stored state row for one Alchemy resource? - Is deleting a resource state that doesn't exist an error? instructions: - text: Delete state for resource {fqn} in {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id - text: Forget {fqn} from stage {stage} of {stack} in {projectId}/{branchId} using lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage fqn: path.fqn lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/replaced-resources'].get update: x-apievangelist-phrasing: intent: List replaced Alchemy resources in a stage effect: read questions: - Which Alchemy resources in a stage are marked as replaced? - Can I see the decrypted state of resources awaiting cleanup after replacement? instructions: - text: List replaced resources in {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id - text: Show replaced-status resource states for stage {stage} of {stack} in {projectId}/{branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/output'].get update: x-apievangelist-phrasing: intent: Read an Alchemy stack's output effect: read questions: - How do I read the stored output of an Alchemy stack stage? - What is returned if a stage has no stack output yet? instructions: - text: Get the stack output of {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id - text: Read outputs saved for stage {stage} of {stack} in {projectId}/{branchId} with lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}/stages/{stage}/output'].put update: x-apievangelist-phrasing: intent: Overwrite an Alchemy stack's output effect: write questions: - How do I save new outputs for an Alchemy stack stage? - Does writing stack output replace what was stored before? instructions: - text: Overwrite the stack output of {stack}/{stage} on {projectId} branch {branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id - text: Store fresh outputs for stage {stage} of {stack} in {projectId}/{branchId} under lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: path.stage lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/alchemy-state/state/stacks/{stack}'].delete update: x-apievangelist-phrasing: intent: Delete all state for an Alchemy stack effect: destructive questions: - How do I wipe all stored state and outputs for an Alchemy stack? - Can I clear state for just one stage of a stack? instructions: - text: Delete all state for stack {stack} on {projectId} branch {branchId} with lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack lease: header.alchemy-state-lease-id - text: Clear only stage {stage} rows of stack {stack} in {projectId}/{branchId}, lease {lease}. slots: projectId: path.projectId branchId: path.branchId stack: path.stack stage: query.stage lease: header.alchemy-state-lease-id method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/application-topology'].get update: x-apievangelist-phrasing: intent: Get a branch's application topology effect: read questions: - What does the application topology graph for my branch look like? - Can I see the nodes, ports and edges Composer submitted? instructions: - text: Get the application topology for branch {branchId} of {projectId}. slots: projectId: path.projectId branchId: path.branchId - text: Show the topology graph stored for {projectId} branch {branchId}. slots: projectId: path.projectId branchId: path.branchId method: generated generated: '2026-09-26' - target: $.paths['/v1/projects/{projectId}/branches/{branchId}/application-topology'].put update: x-apievangelist-phrasing: intent: Replace a branch's application topology effect: write questions: - How do I replace the whole application topology for a branch? - Is the previous topology kept if replacing it fails? instructions: - text: Replace the topology of branch {branchId} in {projectId} with nodes {nodes}, ports {ports} and edges {edges}. slots: projectId: path.projectId branchId: path.branchId nodes: requestBody.nodes ports: requestBody.ports edges: requestBody.edges - text: Upload topology hash {contentHash} with {nodes}, {ports}, {edges} to {projectId}/{branchId}. slots: projectId: path.projectId branchId: path.branchId contentHash: requestBody.contentHash nodes: requestBody.nodes ports: requestBody.ports edges: requestBody.edges method: generated generated: '2026-09-26' - target: $.paths['/v1/environment-variables'].get update: x-apievangelist-phrasing: intent: List environment variables effect: read questions: - Which environment variables are set for my project? - Can I look up one variable by its key and environment class? instructions: - text: List the environment variables in project {projectId}. slots: projectId: query.projectId - text: Find variable {key} in the {class_} environment of {projectId}. slots: key: query.key class_: query.class projectId: query.projectId method: generated generated: '2026-09-26' - target: $.paths['/v1/environment-variables'].post update: x-apievangelist-phrasing: intent: Create an environment variable effect: write questions: - How do I add a secret to my project's production environment? - Can I override an environment variable for one preview branch? instructions: - text: Set {key} to {value} in the {class_} environment of project {projectId}. slots: key: requestBody.key value: requestBody.value class_: requestBody.class projectId: requestBody.projectId - text: Add a {class_} override of {key}={value} for branch {branchId} in {projectId}. slots: class_: requestBody.class key: requestBody.key value: requestBody.value branchId: requestBody.branchId projectId: requestBody.projectId method: generated generated: '2026-09-26' - target: $.paths['/v1/environment-variables/{envVarId}'].get update: x-apievangelist-phrasing: intent: Get an environment variable's metadata effect: read questions: - Can I read back the value of an environment variable? - What metadata is stored for a single environment variable? instructions: - text: Get environment variable {envVarId}. slots: envVarId: path.envVarId - text: Show the metadata of variable {envVarId}. slots: envVarId: path.envVarId method: generated generated: '2026-09-26' - target: $.paths['/v1/environment-variables/{envVarId}'].delete update: x-apievangelist-phrasing: intent: Delete an environment variable effect: destructive questions: - How do I remove an environment variable I no longer use? - What happens if I delete the same variable twice? instructions: - text: Delete environment variable {envVarId}. slots: envVarId: path.envVarId - text: Remove variable {envVarId} from its environment. slots: envVarId: path.envVarId method: generated generated: '2026-09-26' - target: $.paths['/v1/environment-variables/{envVarId}'].patch update: x-apievangelist-phrasing: intent: Change an environment variable's value effect: write questions: - How do I rotate the value of an existing environment variable? - Can I change a variable's key or environment after creating it? instructions: - text: Update variable {envVarId} to {value}. slots: envVarId: path.envVarId value: requestBody.value - text: Replace the value of {envVarId} with {value}. slots: envVarId: path.envVarId value: requestBody.value method: generated generated: '2026-09-26' - target: $.paths['/v1/auth/github-actions/token'].post update: x-apievangelist-phrasing: intent: Exchange a GitHub Actions OIDC token effect: write questions: - How do I get a workspace token in GitHub Actions without storing a secret? - How long does a service token minted from GitHub Actions last? instructions: - text: Exchange GitHub Actions OIDC token {oidc_token} for a workspace service token. slots: oidc_token: requestBody.token - text: Mint a service token from {oidc_token} valid for {expiresInSeconds} seconds. slots: oidc_token: requestBody.token expiresInSeconds: requestBody.expiresInSeconds method: generated generated: '2026-09-26' - target: $.paths['/v1/scm-installations'].get update: x-apievangelist-phrasing: intent: List a workspace's SCM installations effect: read questions: - Which source control app installations are connected to my workspace? - Is the GitHub app installed for this workspace? instructions: - text: List SCM installations for workspace {workspaceId}. slots: workspaceId: query.workspaceId - text: Show the active source control connections of {workspaceId}. slots: workspaceId: query.workspaceId method: generated generated: '2026-09-26' - target: $.paths['/v1/scm-installations/install-intents'].post update: x-apievangelist-phrasing: intent: Start installing the SCM app effect: write questions: - How do I connect GitHub to my Prisma workspace? - Which source control providers can I install the app for? instructions: - text: Create a {provider} install link for workspace {workspaceId}. slots: provider: requestBody.provider workspaceId: requestBody.workspaceId - text: Start the {provider} app installation for {workspaceId}. slots: provider: requestBody.provider workspaceId: requestBody.workspaceId method: generated generated: '2026-09-26' - target: $.paths['/v1/scm-installations/{installationId}/repositories'].get update: x-apievangelist-phrasing: intent: List repositories an SCM installation can see effect: read questions: - Which repositories can my connected SCM installation access? - Can I page through the repos available to an installation? instructions: - text: List repositories for installation {installationId}. slots: installationId: path.installationId - text: Show {limit} repos accessible to {installationId}. slots: limit: query.limit installationId: path.installationId method: generated generated: '2026-09-26' - target: $.paths['/v1/source-repositories'].get update: x-apievangelist-phrasing: intent: List repositories linked to a project effect: read questions: - Which repositories are linked to my project? - Do I need a project ID to list linked source repositories? instructions: - text: List source repositories linked to project {projectId}. slots: projectId: query.projectId - text: Show the repos connected to {projectId}. slots: projectId: query.projectId method: generated generated: '2026-09-26' - target: $.paths['/v1/source-repositories'].post update: x-apievangelist-phrasing: intent: Link a repository to a project effect: write questions: - How do I link a GitHub repository to a Prisma project? - Which installation should I use when connecting a repo? instructions: - text: Link {provider} repository {providerRepositoryId} to project {projectId}. slots: provider: requestBody.provider providerRepositoryId: requestBody.providerRepositoryId projectId: requestBody.projectId - text: Connect repo {providerRepositoryId} to {projectId} through installation {installationId} on {provider}. slots: providerRepositoryId: requestBody.providerRepositoryId projectId: requestBody.projectId installationId: requestBody.installationId provider: requestBody.provider method: generated generated: '2026-09-26' - target: $.paths['/v1/source-repositories/{id}'].get update: x-apievangelist-phrasing: intent: Get a linked source repository effect: read questions: - What are the details of one linked source repository? - Where do I look up a repository link by its ID? instructions: - text: Get source repository link {id}. slots: id: path.id - text: Show linked repository {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/source-repositories/{id}'].delete update: x-apievangelist-phrasing: intent: Disconnect a source repository effect: destructive questions: - Are branches and resources kept when I disconnect a repository? - How do I unlink a repo from my project? instructions: - text: Disconnect source repository {id}. slots: id: path.id - text: Unlink repository {id} from its project. slots: id: path.id method: generated generated: '2026-09-26'