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.
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['/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

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