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.
View Overlay File View on GitHub Overlay Specification

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

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