Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Environments API
16 actions
16 updates
phrasing
extends
openapi/harness-environments-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Harness's API. It is a proposal applied on top of the contract, not a document Harness publishes.
What the actions change
x-apievangelist-phrasing
Targets 16
$.info
$.paths['/ng/api/environmentsV2/check-allowed-values'].post
$.paths['/ng/api/environmentsV2'].get
$.paths['/ng/api/environmentsV2'].put
$.paths['/ng/api/environmentsV2'].post
$.paths['/ng/api/environmentsV2/batch'].post
$.paths['/ng/api/environmentsV2/{environmentIdentifier}'].get
$.paths['/ng/api/environmentsV2/{environmentIdentifier}'].delete
$.paths['/ng/api/environmentsV2/serviceOverrides'].get
$.paths['/ng/api/environmentsV2/serviceOverrides'].post
$.paths['/ng/api/environmentsV2/serviceOverrides'].delete
$.paths['/ng/api/environmentsV2/import'].post
$.paths['/ng/api/environmentsV2/list/access'].get
$.paths['/ng/api/environmentsV2/move-config/{environmentIdentifier}'].post
$.paths['/ng/api/environmentsV2/{environmentIdentifier}/update-git-metadata'].put
$.paths['/ng/api/environmentsV2/upsert'].put
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 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'