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.
View Overlay File View on GitHub Overlay Specification

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

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