Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Pipeline API

17 actions 17 updates phrasing extends openapi/harness-pipeline-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 17 · first 16 shown; the file carries all of them

$.info
$.paths['/pipeline/api/input-file/download-file'].get
$.paths['/pipeline/api/input-file/file/{planExecutionId}'].get
$.paths['/pipeline/api/pipelines/annotations'].post
$.paths['/pipeline/api/pipelines/{pipelineIdentifier}/convert-to-dag'].post
$.paths['/pipeline/api/pipelines'].post
$.paths['/pipeline/api/pipelines/v2'].post
$.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].get
$.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].put
$.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].delete
$.paths['/pipeline/api/pipelines/list'].post
$.paths['/pipeline/api/pipelines/summary/{pipelineIdentifier}'].get
$.paths['/pipeline/api/pipelines/import'].post
$.paths['/pipeline/api/pipelines/import/{pipelineIdentifier}'].post
$.paths['/pipeline/api/pipelines/refresh-and-get/{pipelineIdentifier}'].get
$.paths['/pipeline/api/pipelines/{pipelineIdentifier}/update-git-metadata'].put

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 Pipeline API
  version: 1.0.0
extends: openapi/harness-pipeline-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: 16
- target: $.paths['/pipeline/api/input-file/download-file'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a pipeline input file by its storage path
      effect: read
      questions:
      - Can I download a file a pipeline stored in cloud storage if I know its file path?
      - Where do I fetch an uploaded pipeline input file by path?
      instructions:
      - text: Download the pipeline input file at path {file_path}.
        slots:
          file_path: query.filePath
      - text: Fetch stored file {file_path} for account {account}.
        slots:
          file_path: query.filePath
          account: query.accountIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/input-file/file/{planExecutionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a file uploaded during a pipeline execution step
      effect: read
      questions:
      - How do I retrieve a file that was uploaded in one step of a pipeline execution?
      - Can I get a file by name from a specific node of a running pipeline?
      instructions:
      - text: Get file {file_name} from node {node_execution} in pipeline execution {plan_execution}.
        slots:
          file_name: query.fileName
          node_execution: query.nodeExecutionId
          plan_execution: path.planExecutionId
      - text: Fetch the uploaded input file {file_name} for execution {plan_execution}, node {node_execution}.
        slots:
          file_name: query.fileName
          plan_execution: path.planExecutionId
          node_execution: query.nodeExecutionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/annotations'].post
  update:
    x-apievangelist-phrasing:
      intent: Add or update annotations on a pipeline execution
      effect: write
      questions:
      - Can I attach annotations to a pipeline execution after a step finishes?
      - What does a step need to send to annotate its stage execution?
      instructions:
      - text: Annotate stage execution {stage_execution} of pipeline {pipeline} run {plan_execution} with {annotations}.
        slots:
          stage_execution: requestBody.stageExecutionId
          pipeline: requestBody.pipelineId
          plan_execution: query.planExecutionId
          annotations: requestBody.annotations
      - text: Write annotations {annotations} to execution {plan_execution} in project {project}.
        slots:
          annotations: requestBody.annotations
          plan_execution: query.planExecutionId
          project: requestBody.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/{pipelineIdentifier}/convert-to-dag'].post
  update:
    x-apievangelist-phrasing:
      intent: Convert a sequential pipeline to DAG format
      effect: write
      questions:
      - How do I turn an existing sequential pipeline into a DAG with stage dependencies?
      - Can my pipeline's stages be rewired with depends_on automatically?
      instructions:
      - text: Convert pipeline {pipeline} to DAG format.
        slots:
          pipeline: path.pipelineIdentifier
      - text: Add depends_on fields to the stages of pipeline {pipeline} in project {project}.
        slots:
          pipeline: path.pipelineIdentifier
          project: query.projectIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a pipeline
      effect: write
      questions:
      - How do I create a new CI/CD pipeline in a project?
      - Can a new pipeline be stored remotely in a git repo on its own branch?
      instructions:
      - text: Create a pipeline in project {project}.
        slots:
          project: query.projectIdentifier
      - text: Create a pipeline saved to repo {repo} on branch {branch} at {file_path}.
        slots:
          repo: query.repoName
          branch: query.branch
          file_path: query.filePath
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/v2'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a pipeline with the v2 endpoint
      effect: write
      questions:
      - Which create endpoint lets me allow dynamic executions on a new pipeline?
      - Can I make a newly created pipeline public?
      instructions:
      - text: Create a v2 pipeline in project {project} with dynamic executions set to {dynamic}.
        slots:
          project: query.projectIdentifier
          dynamic: query.allowDynamicExecutions
      - text: Create a public pipeline via v2 (public={public}) in project {project}.
        slots:
          public: query.public
          project: query.projectIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a pipeline's YAML definition
      effect: read
      questions:
      - What does the full YAML of a pipeline look like?
      - Can I fetch a pipeline with its templates resolved?
      instructions:
      - text: Get pipeline {pipeline} from project {project}.
        slots:
          pipeline: path.pipelineIdentifier
          project: query.projectIdentifier
      - text: Fetch pipeline {pipeline} from git branch {branch}.
        slots:
          pipeline: path.pipelineIdentifier
          branch: query.branch
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a pipeline
      effect: write
      questions:
      - How do I save changes to an existing pipeline?
      - Can I commit a pipeline edit to a remote git branch with a message?
      instructions:
      - text: Update pipeline {pipeline} in project {project}.
        slots:
          pipeline: path.pipelineIdentifier
          project: query.projectIdentifier
      - text: Save pipeline {pipeline} changes to branch {branch} with commit message {message}.
        slots:
          pipeline: path.pipelineIdentifier
          branch: query.branch
          message: query.commitMsg
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/{pipelineIdentifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a pipeline
      effect: destructive
      questions:
      - How do I delete a pipeline I no longer need?
      - Does removing a remote pipeline also commit the deletion to git?
      instructions:
      - text: Delete pipeline {pipeline}.
        slots:
          pipeline: path.pipelineIdentifier
      - text: Remove pipeline {pipeline} from project {project} with commit message {message}.
        slots:
          pipeline: path.pipelineIdentifier
          project: query.projectIdentifier
          message: query.commitMsg
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/list'].post
  update:
    x-apievangelist-phrasing:
      intent: List pipelines in a project
      effect: read
      questions:
      - Which pipelines exist in my project?
      - Can I filter the pipeline list by tag or search term?
      instructions:
      - text: List pipelines in project {project}.
        slots:
          project: query.projectIdentifier
      - text: List pipelines matching {search} with filter type {filter_type}.
        slots:
          search: query.searchTerm
          filter_type: requestBody.filterType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/summary/{pipelineIdentifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a pipeline's summary
      effect: read
      questions:
      - Can I get a lightweight summary of a pipeline without its full YAML?
      - What are the headline details of a given pipeline?
      instructions:
      - text: Get the summary of pipeline {pipeline}.
        slots:
          pipeline: path.pipelineIdentifier
      - text: Show summary info for pipeline {pipeline} in project {project}.
        slots:
          pipeline: path.pipelineIdentifier
          project: query.projectIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/import'].post
  update:
    x-apievangelist-phrasing:
      intent: Import a pipeline from a git repository
      effect: write
      questions:
      - How do I bring a pipeline YAML that already lives in git into a project?
      - Can I force-import a pipeline file from a repo branch?
      instructions:
      - text: Import the pipeline at {file_path} in repo {repo} on branch {branch}.
        slots:
          file_path: query.filePath
          repo: query.repoName
          branch: query.branch
      - text: Import a new pipeline named {name} from {file_path} in {repo}, branch {branch}.
        slots:
          name: requestBody.pipelineName
          file_path: query.filePath
          repo: query.repoName
          branch: query.branch
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/import/{pipelineIdentifier}'].post
  update:
    x-apievangelist-phrasing:
      intent: Import a git pipeline under a chosen identifier
      effect: write
      questions:
      - Can I import a pipeline from git and give it a specific pipeline identifier?
      - Which import call lets me set the pipeline ID up front?
      instructions:
      - text: Import pipeline {pipeline} from {file_path} in repo {repo} on branch {branch}.
        slots:
          pipeline: path.pipelineIdentifier
          file_path: query.filePath
          repo: query.repoName
          branch: query.branch
      - text: Create pipeline identifier {pipeline} by importing git file {file_path} on {branch} of {repo}.
        slots:
          pipeline: path.pipelineIdentifier
          file_path: query.filePath
          branch: query.branch
          repo: query.repoName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/refresh-and-get/{pipelineIdentifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Refresh a remote pipeline's git cache and fetch it
      effect: read
      questions:
      - My remote pipeline shows stale YAML - can I force it to reload from git?
      - Is there a way to bypass the git file cache when fetching a pipeline?
      instructions:
      - text: Refresh the git cache and get pipeline {pipeline} from branch {branch}.
        slots:
          pipeline: path.pipelineIdentifier
          branch: query.branch
      - text: Force reload remote pipeline {pipeline} on {branch} in project {project}.
        slots:
          pipeline: path.pipelineIdentifier
          branch: query.branch
          project: query.projectIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/{pipelineIdentifier}/update-git-metadata'].put
  update:
    x-apievangelist-phrasing:
      intent: Update the git metadata of a remote pipeline
      effect: write
      questions:
      - I moved my pipeline YAML to a new repo - how do I point the pipeline at it?
      - Can I change the connector or file path a remote pipeline is linked to?
      instructions:
      - text: Point pipeline {pipeline} at repo {repo} and file {file_path}.
        slots:
          pipeline: path.pipelineIdentifier
          repo: query.repoName
          file_path: query.filePath
      - text: Change the git connector of remote pipeline {pipeline} to {connector}.
        slots:
          pipeline: path.pipelineIdentifier
          connector: query.connectorRef
      method: generated
      generated: '2026-09-26'
- target: $.paths['/pipeline/api/pipelines/v2/{pipelineIdentifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a pipeline with the v2 endpoint
      effect: write
      questions:
      - Which update call lets me turn dynamic executions on for an existing pipeline?
      - Can I make an existing pipeline public?
      instructions:
      - text: Update pipeline {pipeline} via v2 with dynamic executions set to {dynamic}.
        slots:
          pipeline: path.pipelineIdentifier
          dynamic: query.allowDynamicExecutions
      - text: Make existing pipeline {pipeline} public={public} using the v2 update.
        slots:
          pipeline: path.pipelineIdentifier
          public: query.public
      method: generated
      generated: '2026-09-26'