Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Templates API
17 actions
17 updates
phrasing
extends
openapi/harness-templates-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['/template/api/refresh-template/refreshed-yaml'].post
$.paths['/template/api/refresh-template/validate-template-inputs'].get
$.paths['/template/api/templates/v2/applyTemplates'].post
$.paths['/template/api/templates'].post
$.paths['/template/api/templates/{templateIdentifier}/{versionLabel}'].delete
$.paths['/template/api/templates/{templateIdentifier}'].get
$.paths['/template/api/templates/templateInputs/{templateIdentifier}'].get
$.paths['/template/api/templates/{templateIdentifier}/labels'].get
$.paths['/template/api/templates/entitySetupUsage/{templateIdentifier}'].get
$.paths['/template/api/templates/list-metadata'].post
$.paths['/template/api/templates/move-config/{templateIdentifier}'].post
$.paths['/template/api/templates/refresh-and-get/{templateIdentifier}'].get
$.paths['/template/api/templates/{templateIdentifier}/labels/replace'].post
$.paths['/template/api/templates/update/{templateIdentifier}/{versionLabel}'].put
$.paths['/template/api/templates/update/git-metadata/{templateIdentifier}/{versionLabel}'].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 Templates API
version: 1.0.0
extends: openapi/harness-templates-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['/template/api/refresh-template/refreshed-yaml'].post
update:
x-apievangelist-phrasing:
intent: Refresh template inputs inside a YAML
effect: read
questions:
- My pipeline YAML has stale template inputs — can Harness give me a version with them refreshed?
- What does a YAML look like after its template inputs are brought up to date?
instructions:
- text: 'Return this YAML with its template inputs refreshed: {yaml}.'
slots:
yaml: requestBody.yaml
- text: Refresh the template inputs in {yaml} using branch {branch}.
slots:
yaml: requestBody.yaml
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/refresh-template/validate-template-inputs'].get
update:
x-apievangelist-phrasing:
intent: Validate the inputs of a template version
effect: read
questions:
- Are the template inputs in my pipeline still valid for this template version?
- Can I get an error summary when a template's inputs no longer line up?
instructions:
- text: Validate the template inputs for template {templateIdentifier} version {versionLabel}.
slots:
templateIdentifier: query.templateIdentifier
versionLabel: query.versionLabel
- text: Check whether version {versionLabel} of template {templateIdentifier} has invalid inputs on branch {branch}.
slots:
versionLabel: query.versionLabel
templateIdentifier: query.templateIdentifier
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/v2/applyTemplates'].post
update:
x-apievangelist-phrasing:
intent: Resolve all template references in a YAML
effect: read
questions:
- How can I see a pipeline's full YAML with every template reference expanded?
- Can I get the merged YAML of an entity with its templateRefs resolved inline?
instructions:
- text: 'Expand every template reference in this YAML: {originalEntityYaml}.'
slots:
originalEntityYaml: requestBody.originalEntityYaml
- text: Resolve the templates in {originalEntityYaml} from branch {branch} and give me the complete YAML.
slots:
originalEntityYaml: requestBody.originalEntityYaml
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates'].post
update:
x-apievangelist-phrasing:
intent: Create a pipeline template
effect: write
questions:
- How do I create a new reusable template in Harness?
- Can a new template be stored in a Git repo instead of inline?
instructions:
- text: Create a new template labelled {label} in project {projectIdentifier}.
slots:
label: query.label
projectIdentifier: query.projectIdentifier
- text: Create a template stored remotely in repo {repoName} at {filePath} on branch {branch}.
slots:
repoName: query.repoName
filePath: query.filePath
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/{templateIdentifier}/{versionLabel}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a version of a template
effect: destructive
questions:
- Can I delete one version of a template while keeping the others?
- Is there a force option when a template version is still referenced?
instructions:
- text: Delete version {versionLabel} of template {templateIdentifier}.
slots:
versionLabel: path.versionLabel
templateIdentifier: path.templateIdentifier
- text: Force-delete template {templateIdentifier} version {versionLabel} even if it is in use ({forceDelete}).
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
forceDelete: query.forceDelete
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/{templateIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a template
effect: read
questions:
- Where can I view the YAML of a template and its current stable version?
- Can I retrieve a specific version of a template by its label?
instructions:
- text: Get template {templateIdentifier}.
slots:
templateIdentifier: path.templateIdentifier
- text: Show version {versionLabel} of template {templateIdentifier}.
slots:
versionLabel: query.versionLabel
templateIdentifier: path.templateIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/templateInputs/{templateIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Get the runtime inputs YAML of a template
effect: read
questions:
- Which runtime inputs does a template expect when I use it?
- What input set YAML does a given template version generate?
instructions:
- text: Show the input set YAML for template {templateIdentifier}.
slots:
templateIdentifier: path.templateIdentifier
- text: Get the runtime inputs of template {templateIdentifier} at version {versionLabel}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: query.versionLabel
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/{templateIdentifier}/labels'].get
update:
x-apievangelist-phrasing:
intent: List custom labels on template versions
effect: read
questions:
- What custom labels are attached to each version of a template?
- Can I see the labels on just one template version?
instructions:
- text: List the custom labels on every version of template {templateIdentifier}.
slots:
templateIdentifier: path.templateIdentifier
- text: Show the labels on template {templateIdentifier} version {versionLabel}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: query.versionLabel
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/entitySetupUsage/{templateIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Find entities that use a template
effect: read
questions:
- Which pipelines and other entities reference this template?
- Before changing a template, how can I check where it's being used?
instructions:
- text: List everything that references template {templateIdentifier}.
slots:
templateIdentifier: path.templateIdentifier
- text: Show which entities use version {versionLabel} of template {templateIdentifier}.
slots:
versionLabel: query.versionLabel
templateIdentifier: path.templateIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/list-metadata'].post
update:
x-apievangelist-phrasing:
intent: Browse and filter the template list
effect: read
questions:
- What templates are available in my project, and can I filter them by type or tag?
- Can I list only the stable versions of templates at this scope?
instructions:
- text: List {templateListType} templates matching {searchTerm}, using filter type {filterType}.
slots:
templateListType: query.templateListType
searchTerm: query.searchTerm
filterType: requestBody.filterType
- text: Show {templateListType} templates of entity types {templateEntityTypes} with filter type {filterType}.
slots:
templateListType: query.templateListType
templateEntityTypes: requestBody.templateEntityTypes
filterType: requestBody.filterType
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/move-config/{templateIdentifier}'].post
update:
x-apievangelist-phrasing:
intent: Move a template between inline and Git
effect: write
questions:
- Can I move a template stored inline in Harness into a Git repository?
- What details are needed to convert an inline template to remote storage?
instructions:
- text: Move template {templateIdentifier} version {versionLabel} to repo {repoName} at {filePath}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: query.versionLabel
repoName: query.repoName
filePath: query.filePath
- text: Change the storage of template {templateIdentifier} {versionLabel} using move type {moveConfigType}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: query.versionLabel
moveConfigType: query.moveConfigType
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/refresh-and-get/{templateIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Refetch a remote template from Git
effect: read
questions:
- My remote template changed in Git — how do I bypass the cache and fetch it fresh?
- Does refreshing a remote template require naming the branch?
instructions:
- text: Refresh the Git cache and fetch template {templateIdentifier} from branch {branch}.
slots:
templateIdentifier: path.templateIdentifier
branch: query.branch
- text: Pull the latest copy of remote template {templateIdentifier} version {versionLabel} from {branch}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: query.versionLabel
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/{templateIdentifier}/labels/replace'].post
update:
x-apievangelist-phrasing:
intent: Replace labels on a template version
effect: write
questions:
- Can I overwrite the custom labels on a single template version?
- What happens if I send an invalid label to a template version?
instructions:
- text: Replace the labels on template {templateIdentifier} version {versionLabel} with {labels}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: requestBody.versionLabel
labels: requestBody.labels
- text: Set labels {labels} on version {versionLabel} of {templateIdentifier}, removing any others.
slots:
labels: requestBody.labels
versionLabel: requestBody.versionLabel
templateIdentifier: path.templateIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/update/{templateIdentifier}/{versionLabel}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing template version
effect: write
questions:
- How do I save changes to a version of a template I already created?
- Can I commit a template version update to a new Git branch?
instructions:
- text: Update template {templateIdentifier} version {versionLabel} with my changes.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
- text: Save edits to {templateIdentifier} {versionLabel} with commit message {commitMsg} on branch {branch}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
commitMsg: query.commitMsg
branch: query.branch
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/update/git-metadata/{templateIdentifier}/{versionLabel}'].post
update:
x-apievangelist-phrasing:
intent: Change Git location of a remote template
effect: write
questions:
- The Git repo for my remote template moved — can I update where Harness looks for it?
- Can I change the file path or connector a remote template is read from?
instructions:
- text: Point template {templateIdentifier} version {versionLabel} at file {filePath} in repo {repoName}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
filePath: requestBody.filePath
repoName: requestBody.repoName
- text: Update the Git connector for remote template {templateIdentifier} {versionLabel} to {connectorRef}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
connectorRef: requestBody.connectorRef
method: generated
generated: '2026-09-26'
- target: $.paths['/template/api/templates/updateStableTemplate/{templateIdentifier}/{versionLabel}'].put
update:
x-apievangelist-phrasing:
intent: Mark a template version as stable
effect: write
questions:
- Which template version do pipelines get by default, and can I change it?
- How can I promote a newer template version to be the stable one?
instructions:
- text: Make version {versionLabel} the stable version of template {templateIdentifier}.
slots:
versionLabel: path.versionLabel
templateIdentifier: path.templateIdentifier
- text: Promote {templateIdentifier} {versionLabel} to stable with comment {comments}.
slots:
templateIdentifier: path.templateIdentifier
versionLabel: path.versionLabel
comments: query.comments
method: generated
generated: '2026-09-26'