Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Services API
18 actions
18 updates
phrasing
extends
openapi/harness-services-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 18 · first 16 shown; the file carries all of them
$.info
$.paths['/ng/api/servicesV2/check-allowed-values'].post
$.paths['/ng/api/servicesV2'].get
$.paths['/ng/api/servicesV2'].put
$.paths['/ng/api/servicesV2'].post
$.paths['/ng/api/servicesV2/batch'].post
$.paths['/ng/api/servicesV2/batch/partial'].post
$.paths['/ng/api/servicesV2/{serviceIdentifier}'].get
$.paths['/ng/api/servicesV2/{serviceIdentifier}'].delete
$.paths['/ng/api/servicesV2/k8s/command-flags'].get
$.paths['/ng/api/servicesV2/kustomize/command-flags'].get
$.paths['/ng/api/servicesV2/plugin-info'].get
$.paths['/ng/api/servicesV2/hooks/actions'].get
$.paths['/ng/api/servicesV2/import'].post
$.paths['/ng/api/servicesV2/list/access'].get
$.paths['/ng/api/servicesV2/move-config/{serviceIdentifier}'].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 Harness Services API
version: 1.0.0
extends: openapi/harness-services-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: 17
- target: $.paths['/ng/api/servicesV2/check-allowed-values'].post
update:
x-apievangelist-phrasing:
intent: Check services for allowed-values usage
effect: read
questions:
- Do any of my Harness services use allowed-values in their inputs?
- Can I check services for allowed-values constraints across an account?
instructions:
- text: Check the services in account {accountIdentifier} for allowed-values.
slots:
accountIdentifier: query.accountIdentifier
- text: Scan services for allowed-values usage in account {accountIdentifier}.
slots:
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2'].get
update:
x-apievangelist-phrasing:
intent: List deployment services
effect: read
questions:
- What deployment services are defined in my project?
- Can I filter services by deployment type, tags or GitOps enabled?
instructions:
- text: List the services in project {projectIdentifier} of account {accountIdentifier}.
slots:
projectIdentifier: query.projectIdentifier
accountIdentifier: query.accountIdentifier
- text: Find services named like {searchTerm} with deployment type {type}.
slots:
searchTerm: query.searchTerm
type: query.type
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2'].put
update:
x-apievangelist-phrasing:
intent: Update an existing service
effect: write
questions:
- How do I change the YAML or description of an existing service?
- Can I commit a service update to a Git branch at the same time?
instructions:
- text: 'Update service {identifier} with this YAML: {yaml}'
slots:
identifier: requestBody.identifier
yaml: requestBody.yaml
- text: Rename existing service {identifier} to {name} in account {accountIdentifier}.
slots:
identifier: requestBody.identifier
name: requestBody.name
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2'].post
update:
x-apievangelist-phrasing:
intent: Create a single service
effect: write
questions:
- How do I create a new deployment service in a Harness project?
- What do I need to define a service from YAML?
instructions:
- text: Create a new service {name} with identifier {identifier} in project {projectIdentifier}.
slots:
name: requestBody.name
identifier: requestBody.identifier
projectIdentifier: requestBody.projectIdentifier
- text: Define one new service in account {accountIdentifier} from YAML {yaml}.
slots:
accountIdentifier: query.accountIdentifier
yaml: requestBody.yaml
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/batch'].post
update:
x-apievangelist-phrasing:
intent: Create several services in one batch
effect: write
questions:
- Can I create many services in a single request?
- Is there a bulk endpoint for adding services all at once?
instructions:
- text: Batch-create these services in account {accountIdentifier}.
slots:
accountIdentifier: query.accountIdentifier
- text: Add all of the following services together to account {accountIdentifier}.
slots:
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/batch/partial'].post
update:
x-apievangelist-phrasing:
intent: Batch-create services allowing partial success
effect: write
questions:
- What happens if some services in a batch fail to create?
- Can I get back both the created and the failed services from a bulk create?
instructions:
- text: Create these services in account {accountIdentifier} and report which ones failed.
slots:
accountIdentifier: query.accountIdentifier
- text: Run a partial-success service batch in account {accountIdentifier}.
slots:
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/{serviceIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a service by identifier
effect: read
questions:
- What is the definition of one specific service?
- Can I look up a deleted service by its identifier?
instructions:
- text: Get service {serviceIdentifier} in account {accountIdentifier}.
slots:
serviceIdentifier: path.serviceIdentifier
accountIdentifier: query.accountIdentifier
- text: Show the YAML of service {serviceIdentifier} in project {projectIdentifier}.
slots:
serviceIdentifier: path.serviceIdentifier
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/{serviceIdentifier}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a service
effect: destructive
questions:
- How do I delete a service I no longer deploy?
- Can I force-delete a service that is still referenced?
instructions:
- text: Delete service {serviceIdentifier} from account {accountIdentifier}.
slots:
serviceIdentifier: path.serviceIdentifier
accountIdentifier: query.accountIdentifier
- text: Force-delete service {serviceIdentifier} in project {projectIdentifier}.
slots:
serviceIdentifier: path.serviceIdentifier
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/k8s/command-flags'].get
update:
x-apievangelist-phrasing:
intent: List Kubernetes command flag options
effect: read
questions:
- Which Kubernetes command flags can I set on a service step?
- What kubectl command options are supported for a given step type?
instructions:
- text: List the Kubernetes command flags for service spec type {serviceSpecType}.
slots:
serviceSpecType: query.serviceSpecType
- text: Show K8s command options for step type {stepType} on spec type {serviceSpecType}.
slots:
stepType: query.stepType
serviceSpecType: query.serviceSpecType
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/kustomize/command-flags'].get
update:
x-apievangelist-phrasing:
intent: List Kustomize command flags
effect: read
questions:
- Which Kustomize command flags does Harness support for services?
- What Kustomize build options can I pass in a service?
instructions:
- text: List the available Kustomize command flags.
- text: Show me the supported Kustomize build options for services.
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/plugin-info'].get
update:
x-apievangelist-phrasing:
intent: Get plugin info for services
effect: read
questions:
- What plugin information is available at the service level?
- Which plugins can a service use?
instructions:
- text: Get the service-level plugin info.
- text: Show me plugin details for services.
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/hooks/actions'].get
update:
x-apievangelist-phrasing:
intent: List actions available for service hooks
effect: read
questions:
- What actions can a service hook run on?
- Which hook actions apply to a given service spec type?
instructions:
- text: List service hook actions for spec type {serviceSpecType}.
slots:
serviceSpecType: query.serviceSpecType
- text: Show which hook actions are available to {serviceSpecType} services.
slots:
serviceSpecType: query.serviceSpecType
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/import'].post
update:
x-apievangelist-phrasing:
intent: Import a service YAML from a Git repository
effect: write
questions:
- How do I import a service definition that lives in Git?
- Can I force an import of a service YAML from a repo branch?
instructions:
- text: Import the service at {filePath} on branch {branch} of repo {repoName}.
slots:
filePath: query.filePath
branch: query.branch
repoName: query.repoName
- text: Pull service YAML from {repoName} branch {branch} file {filePath} into account {accountIdentifier}.
slots:
repoName: query.repoName
branch: query.branch
filePath: query.filePath
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/list/access'].get
update:
x-apievangelist-phrasing:
intent: List services I have access to
effect: read
questions:
- Which services do I have access permissions for?
- Can I get the service access list including services accessible at a scope?
instructions:
- text: Get the service access list for account {accountIdentifier}.
slots:
accountIdentifier: query.accountIdentifier
- text: Show accessible services matching {searchTerm} in project {projectIdentifier}.
slots:
searchTerm: query.searchTerm
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/move-config/{serviceIdentifier}'].post
update:
x-apievangelist-phrasing:
intent: Move a service YAML from inline to Git
effect: write
questions:
- How do I move an inline service definition into a Git repo?
- Can I store a service's YAML remotely on a new branch?
instructions:
- text: Move service {serviceIdentifier} to Git repo {repoName} at {filePath}.
slots:
serviceIdentifier: path.serviceIdentifier
repoName: query.repoName
filePath: query.filePath
- text: Convert inline service {serviceIdentifier} to remote on branch {branch}.
slots:
serviceIdentifier: path.serviceIdentifier
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/{serviceIdentifier}/update-git-metadata'].put
update:
x-apievangelist-phrasing:
intent: Update Git metadata of a remote service
effect: write
questions:
- How do I repoint a remote service to a different repo or file path?
- Can I change the connector used by a Git-stored service?
instructions:
- text: Update the git metadata of service {serviceIdentifier} to file {filePath} in repo {repoName}.
slots:
serviceIdentifier: path.serviceIdentifier
filePath: query.filePath
repoName: query.repoName
- text: Switch remote service {serviceIdentifier} to connector {connectorRef}.
slots:
serviceIdentifier: path.serviceIdentifier
connectorRef: query.connectorRef
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/servicesV2/upsert'].put
update:
x-apievangelist-phrasing:
intent: Create or update a service
effect: write
questions:
- Can I create a service if it doesn't exist and update it if it does?
- Is there an upsert for services so I don't have to check first?
instructions:
- text: Upsert service {identifier} with YAML {yaml}.
slots:
identifier: requestBody.identifier
yaml: requestBody.yaml
- text: Create or update service {identifier} named {name} in account {accountIdentifier}.
slots:
identifier: requestBody.identifier
name: requestBody.name
accountIdentifier: query.accountIdentifier
method: generated
generated: '2026-09-26'