Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Provider Registry API
25 actions
25 updates
phrasing
extends
openapi/harness-provider-registry-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 25 · first 16 shown; the file carries all of them
$.info
$.paths['/iacm/api/providers'].get
$.paths['/iacm/api/providers/{id}'].get
$.paths['/iacm/api/providers/{id}'].delete
$.paths['/iacm/api/providers/{id}/lifecycle'].get
$.paths['/iacm/api/providers/{id}/lifecycle'].put
$.paths['/iacm/api/providers/{id}/lifecycle'].delete
$.paths['/iacm/api/providers/{id}/lifecycle/versions/{version}'].get
$.paths['/iacm/api/providers/{id}/version'].post
$.paths['/iacm/api/providers/{id}/version/{version}'].get
$.paths['/iacm/api/providers/{id}/version/{version}'].put
$.paths['/iacm/api/providers/{id}/version/{version}'].delete
$.paths['/iacm/api/providers/{id}/version/{version}/file/{filename}'].delete
$.paths['/iacm/api/providers/{id}/version/{version}/files'].post
$.paths['/iacm/api/providers/{id}/version/{version}/publish'].post
$.paths['/iacm/api/providers/{type}'].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 Provider Registry API
version: 1.0.0
extends: openapi/harness-provider-registry-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: 24
- target: $.paths['/iacm/api/providers'].get
update:
x-apievangelist-phrasing:
intent: List Terraform providers in the registry
effect: read
questions:
- Which Terraform providers have we published to the Harness IaCM provider registry?
- Can I search the private provider registry by name and page through the results?
instructions:
- text: List all providers in our IaCM provider registry.
- text: Search the provider registry for providers matching {term}.
slots:
term: query.searchTerm
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a registry provider by ID
effect: read
questions:
- What details does the registry hold for a single Terraform provider I own?
- Can I look up one private provider by its ID to see its type and description?
instructions:
- text: Show me the registry provider {id}.
slots:
id: path.id
- text: Fetch the details of provider {id} from the IaCM registry.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a provider from the registry
effect: destructive
questions:
- How do I remove a whole Terraform provider from our private registry?
- Is there a way to delete a provider we no longer maintain, not just one version?
instructions:
- text: Delete provider {id} from the provider registry entirely.
slots:
id: path.id
- text: Remove the registry provider {id} and stop offering it.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/lifecycle'].get
update:
x-apievangelist-phrasing:
intent: Get a provider's lifecycle rule
effect: read
questions:
- What lifecycle rule is set on a provider — how many versions stay supported before warnings?
- Can I see the deprecation and warning actions configured for a registry provider?
instructions:
- text: Show the lifecycle rule configured for provider {id}.
slots:
id: path.id
- text: Get the supported, warning and deprecated settings for provider {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/lifecycle'].put
update:
x-apievangelist-phrasing:
intent: Set a provider's version lifecycle rule
effect: write
questions:
- How do I define how many provider versions stay supported before they are flagged as warning?
- Can I set what action happens when a team uses a deprecated provider version?
- Does saving a lifecycle rule replace all the existing per-version overrides?
instructions:
- text: Set provider {id} to keep {supported} versions supported and {warning} in warning.
slots:
id: path.id
supported: requestBody.supported_count
warning: requestBody.warning_count
- text: Make deprecated versions of provider {id} trigger the {action} action.
slots:
id: path.id
action: requestBody.deprecated_action
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/lifecycle'].delete
update:
x-apievangelist-phrasing:
intent: Remove a provider's lifecycle rule
effect: destructive
questions:
- How do I clear the lifecycle rule on a provider so every version counts as supported again?
- What happens to lifecycle overrides when I delete a provider's lifecycle rule?
instructions:
- text: Delete the lifecycle rule and all overrides for provider {id}.
slots:
id: path.id
- text: Revert every version of provider {id} to supported by removing its lifecycle rule.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/lifecycle/versions/{version}'].get
update:
x-apievangelist-phrasing:
intent: Check the lifecycle tier of a provider version
effect: read
questions:
- Is a specific provider version still supported, in warning, or deprecated?
- What enforcement action would apply if a workspace pinned this exact provider version?
instructions:
- text: Check the lifecycle status of version {version} of provider {id}.
slots:
version: path.version
id: path.id
- text: Tell me the enforcement action for provider {id} at version {version}.
slots:
id: path.id
version: path.version
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version'].post
update:
x-apievangelist-phrasing:
intent: Create a new provider version
effect: write
questions:
- How do I register a new version of a Terraform provider in the Harness registry?
- Which GPG key and protocol do I need when adding a provider version?
instructions:
- text: Create version {version} of provider {id} signed with GPG key {gpg_key}.
slots:
version: requestBody.version
id: path.id
gpg_key: requestBody.gpg_key_id
- text: Add provider version {version} to {id} using protocol {protocol} and key {gpg_key}.
slots:
version: requestBody.version
id: path.id
protocol: requestBody.protocol
gpg_key: requestBody.gpg_key_id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}'].get
update:
x-apievangelist-phrasing:
intent: Get one version of a provider
effect: read
questions:
- What signing key and protocol are recorded for one version of my provider?
- Can I inspect a single provider version before publishing it?
instructions:
- text: Show version {version} of registry provider {id}.
slots:
version: path.version
id: path.id
- text: Get the details recorded for provider {id} release {version}.
slots:
id: path.id
version: path.version
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}'].put
update:
x-apievangelist-phrasing:
intent: Update a provider version's key or protocol
effect: write
questions:
- Can I change the GPG key on a provider version that already exists?
- How do I update the protocol listed for an existing provider version?
instructions:
- text: Switch provider {id} version {version} to GPG key {gpg_key}.
slots:
id: path.id
version: path.version
gpg_key: requestBody.gpg_key_id
- text: Update version {version} of provider {id} to protocol {protocol} with key {gpg_key}.
slots:
version: path.version
id: path.id
protocol: requestBody.protocol
gpg_key: requestBody.gpg_key_id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a provider version
effect: destructive
questions:
- How do I remove one bad release of a provider without deleting the provider itself?
- Can I delete a single version from the private provider registry?
instructions:
- text: Delete version {version} of provider {id}.
slots:
version: path.version
id: path.id
- text: Remove the {version} release of registry provider {id}.
slots:
version: path.version
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}/file/{filename}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a file from an unsynced provider version
effect: destructive
questions:
- Can I remove one uploaded binary from a provider version that hasn't been synced yet?
- How do I fix a wrong file I uploaded to a provider version?
instructions:
- text: Delete file {filename} from version {version} of provider {id}.
slots:
filename: path.filename
version: path.version
id: path.id
- text: Remove the uploaded {filename} from provider {id} release {version}.
slots:
filename: path.filename
id: path.id
version: path.version
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}/files'].post
update:
x-apievangelist-phrasing:
intent: Upload files to a provider version
effect: write
questions:
- How do I upload provider binaries, checksums and signatures to a version in the registry?
- What header do I need to set when uploading files to a provider version?
instructions:
- text: Upload the build files for provider {id} version {version}.
slots:
id: path.id
version: path.version
- text: Upload {disposition} to provider {id} version {version}.
slots:
disposition: header.Content-Disposition
id: path.id
version: path.version
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{id}/version/{version}/publish'].post
update:
x-apievangelist-phrasing:
intent: Publish a provider version
effect: write
questions:
- How do I make a provider version available to Terraform once its files are uploaded?
- Can I publish a provider release so workspaces can start using it?
instructions:
- text: Publish version {version} of provider {id}.
slots:
version: path.version
id: path.id
- text: Release provider {id} {version} to the registry now.
slots:
id: path.id
version: path.version
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/{type}'].post
update:
x-apievangelist-phrasing:
intent: Create a provider in the registry
effect: write
questions:
- How do I add a new custom Terraform provider to the Harness IaCM registry?
- Can I give a new registry provider a description when creating it?
instructions:
- text: Create a new registry provider of type {type}.
slots:
type: path.type
- text: Register provider {type} with the description {description}.
slots:
type: path.type
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/get-provider-domain'].get
update:
x-apievangelist-phrasing:
intent: Get the provider registry domain
effect: read
questions:
- What hostname should Terraform use as the source domain for our private providers?
- Where is our account's provider registry domain shown?
instructions:
- text: Get the provider registry domain for Harness account {account}.
slots:
account: header.Harness-Account
- text: Tell me which domain to reference in Terraform provider source addresses.
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/keys'].get
update:
x-apievangelist-phrasing:
intent: List GPG signing keys
effect: read
questions:
- Which GPG signing keys are uploaded for signing our providers?
- Can I search our account's provider signing keys by name?
instructions:
- text: List every GPG signing key on the account.
- text: Find provider signing keys matching {term}.
slots:
term: query.searchTerm
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/keys'].post
update:
x-apievangelist-phrasing:
intent: Upload a GPG signing key
effect: write
questions:
- How do I add a GPG public key so provider versions can be signed?
- What fields does the registry need to store a new signing key?
instructions:
- text: Upload signing key {key_name} with key ID {key_id} for {user}.
slots:
key_name: requestBody.key_name
key_id: requestBody.key_id
user: requestBody.user
- text: Add the ASCII-armored key {armor} as {key_name}, key ID {key_id}, owned by {user}.
slots:
armor: requestBody.ascii_armor
key_name: requestBody.key_name
key_id: requestBody.key_id
user: requestBody.user
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/keys/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a stored GPG signing key
effect: write
questions:
- Can I replace the armored public key on a signing key already in the registry?
- How do I rename or reassign an existing provider signing key?
instructions:
- text: Update signing key {id} to name {key_name} and key ID {key_id} for {user}.
slots:
id: path.id
key_name: requestBody.key_name
key_id: requestBody.key_id
user: requestBody.user
- text: Replace the armored key on signing key {id} with {armor}, keeping name {key_name}, ID {key_id}, user {user}.
slots:
id: path.id
armor: requestBody.ascii_armor
key_name: requestBody.key_name
key_id: requestBody.key_id
user: requestBody.user
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/keys/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a GPG signing key
effect: destructive
questions:
- How do I remove a compromised GPG key from the provider registry?
- Can I delete a signing key we no longer sign providers with?
instructions:
- text: Delete signing key {id} from the provider registry.
slots:
id: path.id
- text: Remove the GPG key {id} so it can no longer sign providers.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/api/providers/lifecycle/batch-check'].post
update:
x-apievangelist-phrasing:
intent: Batch-check providers for lifecycle violations
effect: read
questions:
- Which providers resolved during terraform init are using deprecated or warning versions?
- Can I check a whole list of providers at once and get only the lifecycle violations back?
instructions:
- text: 'Check these providers from terraform init for lifecycle violations: {items}.'
slots:
items: requestBody.items
- text: Return only the lifecycle violations for the provider list {items}.
slots:
items: requestBody.items
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/provider/account/{account}/{type}/{version}/download/{os}/{arch}'].get
update:
x-apievangelist-phrasing:
intent: Get download info for a provider build
effect: read
questions:
- Where does Terraform get the download URL for a provider build on my OS and CPU architecture?
- What download information does the registry return for a provider version on linux amd64?
instructions:
- text: Get download info for provider {type} {version} on {os}/{arch} in account {account}.
slots:
type: path.type
version: path.version
os: path.os
arch: path.arch
account: path.account
- text: Show where to download {type} version {version} for {os} {arch} from account {account}.
slots:
type: path.type
version: path.version
os: path.os
arch: path.arch
account: path.account
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/provider/account/{account}/{type}/{version}/download/{os}/{arch}/{filetype}'].get
update:
x-apievangelist-phrasing:
intent: Download a provider binary, checksum or signature
effect: read
questions:
- How do I download the actual provider binary, SHA checksums or signature file?
- Does downloading a provider file need a token?
instructions:
- text: Download the {filetype} file for {type} {version} on {os}/{arch} in account {account} with token {token}.
slots:
filetype: path.filetype
type: path.type
version: path.version
os: path.os
arch: path.arch
account: path.account
token: query.token
- text: Fetch the checksums file for provider {type} {version} {os} {arch}, account {account}, token {token}.
slots:
type: path.type
version: path.version
os: path.os
arch: path.arch
account: path.account
token: query.token
method: generated
generated: '2026-09-26'
- target: $.paths['/iacm/provider/account/{account}/{type}/versions'].get
update:
x-apievangelist-phrasing:
intent: List available versions of a provider
effect: read
questions:
- Which versions of a provider can Terraform install from our account's registry?
- What releases of a given provider type are available to download?
instructions:
- text: List available versions of provider {type} in account {account}.
slots:
type: path.type
account: path.account
- text: Show every downloadable release of {type} for account {account}.
slots:
type: path.type
account: path.account
method: generated
generated: '2026-09-26'