# 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'