# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Harness Environments API version: 1.0.0 extends: openapi/harness-environments-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: 15 - target: $.paths['/ng/api/environmentsV2/check-allowed-values'].post update: x-apievangelist-phrasing: intent: Check allowed-values usage in environments effect: read questions: - Do any of my Harness environments use allowed-values restrictions on their variables? - Can I scan environments for allowed-values expressions in one call? instructions: - text: Check the environments in account {account} for allowed-values usage. slots: account: query.accountIdentifier - text: Scan my environments for allowed-values restrictions. method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2'].get update: x-apievangelist-phrasing: intent: List environments in a project effect: read questions: - Which deployment environments are defined in my Harness project? - Can I search a project's environments by name or filter to specific identifiers? instructions: - text: List the environments in project {project}. slots: project: query.projectIdentifier - text: Search environments in project {project} for {searchTerm}. slots: project: query.projectIdentifier searchTerm: query.searchTerm method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2'].put update: x-apievangelist-phrasing: intent: Update an existing environment effect: write questions: - How do I rename or re-describe an environment that already exists? - Can I switch an existing environment between production and pre-production? instructions: - text: Update environment {identifier} to type {type} with name {name}. slots: identifier: requestBody.identifier type: requestBody.type name: requestBody.name - text: Replace existing environment {identifier}'s YAML with {yaml}. slots: identifier: requestBody.identifier yaml: requestBody.yaml method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2'].post update: x-apievangelist-phrasing: intent: Create a new environment effect: write questions: - How do I add a new production or pre-production environment in Harness? - Can I give a brand-new environment tags and a color when creating it? instructions: - text: Create a new {type} environment named {name} in project {project}. slots: type: requestBody.type name: requestBody.name project: requestBody.projectIdentifier - text: Create environment {identifier} of type {type} with description {description}. slots: identifier: requestBody.identifier type: requestBody.type description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/batch'].post update: x-apievangelist-phrasing: intent: Create many environments in one batch effect: write questions: - Can I create several environments at once and keep the ones that succeed? - What happens in a batch environment create if some entries fail? instructions: - text: Batch-create environments in account {account} with partial success allowed. slots: account: query.accountIdentifier - text: Create a batch of environments at once. method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/{environmentIdentifier}'].get update: x-apievangelist-phrasing: intent: Get one environment by identifier effect: read questions: - What is the configuration of a specific environment? - Can I still retrieve an environment that has been deleted? instructions: - text: Get environment {environment}. slots: environment: path.environmentIdentifier - text: Show environment {environment} in project {project}. slots: environment: path.environmentIdentifier project: query.projectIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/{environmentIdentifier}'].delete update: x-apievangelist-phrasing: intent: Delete an environment effect: destructive questions: - How do I delete an environment I no longer deploy to? - Can I force-delete an environment that is still referenced elsewhere? instructions: - text: Delete environment {environment}. slots: environment: path.environmentIdentifier - text: Delete environment {environment} with force delete {forceDelete}. slots: environment: path.environmentIdentifier forceDelete: query.forceDelete method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/serviceOverrides'].get update: x-apievangelist-phrasing: intent: List service overrides for an environment effect: read questions: - Which service overrides are configured on a given environment? - Can I see only the overrides for one service in an environment? instructions: - text: List service overrides on environment {environment}. slots: environment: query.environmentIdentifier - text: Show overrides for service {service} in environment {environment}. slots: service: query.serviceIdentifier environment: query.environmentIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/serviceOverrides'].post update: x-apievangelist-phrasing: intent: Create or update a service override effect: write questions: - How do I override a service's variables or manifests for one environment? - Can I create a service override or replace the existing one in a single call? instructions: - text: Set the override for service {service} in environment {environment} to {yaml}. slots: service: requestBody.serviceIdentifier environment: requestBody.environmentIdentifier yaml: requestBody.yaml - text: Upsert a service override for {service} on environment {environment}. slots: service: requestBody.serviceIdentifier environment: requestBody.environmentIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/serviceOverrides'].delete update: x-apievangelist-phrasing: intent: Delete a service override effect: destructive questions: - How do I remove a service override so the environment uses service defaults? - Can I delete the override for just one service in an environment? instructions: - text: Delete the override for service {service} in environment {environment}. slots: service: query.serviceIdentifier environment: query.environmentIdentifier - text: Remove service {service}'s override from environment {environment}. slots: service: query.serviceIdentifier environment: query.environmentIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/import'].post update: x-apievangelist-phrasing: intent: Import an environment from a Git repository effect: write questions: - Can I create an environment from a YAML file already stored in Git? - Is it possible to force-import an environment definition from a repo branch? instructions: - text: Import an environment from {filePath} on branch {branch} of repo {repoName}. slots: filePath: query.filePath branch: query.branch repoName: query.repoName - text: Import environment {environment} from repo {repoName}, branch {branch}, file {filePath} via connector {connectorRef}. slots: environment: query.environmentIdentifier repoName: query.repoName branch: query.branch filePath: query.filePath connectorRef: query.connectorRef method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/list/access'].get update: x-apievangelist-phrasing: intent: List environments I have access to effect: read questions: - Which environments am I allowed to access in this project? - Can I list accessible environments inside one environment group? instructions: - text: List the environments I can access in project {project}. slots: project: query.projectIdentifier - text: Show accessible environments in environment group {envGroup}. slots: envGroup: query.envGroupIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/move-config/{environmentIdentifier}'].post update: x-apievangelist-phrasing: intent: Move an environment's YAML into Git effect: write questions: - How do I move an inline environment definition into a Git repository? - Can I commit a moved environment YAML to a new branch? instructions: - text: Move environment {environment} config using move type {moveConfigType}. slots: environment: path.environmentIdentifier moveConfigType: query.moveConfigType - text: Move environment {environment} to {filePath} in repo {repoName} on branch {branch} with move type {moveConfigType}. slots: environment: path.environmentIdentifier filePath: query.filePath repoName: query.repoName branch: query.branch moveConfigType: query.moveConfigType method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/{environmentIdentifier}/update-git-metadata'].put update: x-apievangelist-phrasing: intent: Update Git metadata on a remote environment effect: write questions: - How do I point a remote environment at a different Git file path or repo? - Can I change the connector used by a Git-stored environment? instructions: - text: Update environment {environment}'s Git file path to {filePath}. slots: environment: path.environmentIdentifier filePath: query.filePath - text: Point remote environment {environment} at repo {repoName} via connector {connectorRef}. slots: environment: path.environmentIdentifier repoName: query.repoName connectorRef: query.connectorRef method: generated generated: '2026-09-26' - target: $.paths['/ng/api/environmentsV2/upsert'].put update: x-apievangelist-phrasing: intent: Create or update an environment in one call effect: write questions: - Can I create an environment if it doesn't exist and update it if it does? - Is there an idempotent way to save an environment definition? instructions: - text: Upsert environment {identifier} as type {type}. slots: identifier: requestBody.identifier type: requestBody.type - text: Create or update environment {identifier} from YAML {yaml}. slots: identifier: requestBody.identifier yaml: requestBody.yaml method: generated generated: '2026-09-26'