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