Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Module Registry API

36 actions 36 updates phrasing extends openapi/harness-module-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 36 · first 16 shown; the file carries all of them

$.info
$.paths['/iacm/api/modules'].get
$.paths['/iacm/api/modules'].post
$.paths['/iacm/api/modules/{id}'].get
$.paths['/iacm/api/modules/{id}'].put
$.paths['/iacm/api/modules/{id}'].delete
$.paths['/iacm/api/modules/{id}/lifecycle'].get
$.paths['/iacm/api/modules/{id}/lifecycle'].put
$.paths['/iacm/api/modules/{id}/lifecycle'].delete
$.paths['/iacm/api/modules/{id}/lifecycle/versions/{version}'].get
$.paths['/iacm/api/modules/{id}/pipeline'].post
$.paths['/iacm/api/modules/{id}/sync'].post
$.paths['/iacm/api/modules/{id}/tags'].get
$.paths['/iacm/api/modules/{id}/testing'].put
$.paths['/iacm/api/modules/{id}/testing'].post
$.paths['/iacm/api/modules/{id}/testing'].delete

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 Module Registry API
  version: 1.0.0
extends: openapi/harness-module-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: 35
- target: $.paths['/iacm/api/modules'].get
  update:
    x-apievangelist-phrasing:
      intent: List modules in the module registry
      effect: read
      questions:
      - What Terraform modules are published in our Harness module registry?
      - Can I search the module registry by name and narrow it to one provider?
      instructions:
      - text: List every module in our module registry.
      - text: Search the module registry for modules matching {searchTerm} that target {provider}.
        slots:
          searchTerm: query.searchTerm
          provider: query.provider
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a new module in the registry
      effect: write
      questions:
      - How do I add a new infrastructure module to the module registry?
      - Can a new registry module point at a Git repository path and branch?
      instructions:
      - text: Register a new module named {name} for the {system} provider in the module registry.
        slots:
          name: requestBody.name
          system: requestBody.system
      - text: Create module {name} for {system} sourced from repository {repository} on branch {repository_branch}.
        slots:
          name: requestBody.name
          system: requestBody.system
          repository: requestBody.repository
          repository_branch: requestBody.repository_branch
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one registry module by ID
      effect: read
      questions:
      - Where can I see the full details of a single module in the registry?
      - What repository and settings does a particular registry module use?
      instructions:
      - text: Show me the registry module with ID {id}.
        slots:
          id: path.id
      - text: Fetch the details of module {id} from the module registry.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a registry module's settings
      effect: write
      questions:
      - Can I change the repository or description of a module that's already registered?
      - How do I edit an existing module in the module registry?
      instructions:
      - text: Update module {id} so its name is {name} and its system is {system}.
        slots:
          id: path.id
          name: requestBody.name
          system: requestBody.system
      - text: Change the description of registry module {id} to {description}, keeping name {name} and system {system}.
        slots:
          id: path.id
          description: requestBody.description
          name: requestBody.name
          system: requestBody.system
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a module from the registry
      effect: destructive
      questions:
      - Is it possible to remove a whole module from the module registry?
      - What happens to a module's listing when I delete it from the registry?
      instructions:
      - text: Delete module {id} from the module registry entirely.
        slots:
          id: path.id
      - text: Remove the registry module with ID {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/lifecycle'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a module's lifecycle rule
      effect: read
      questions:
      - Which lifecycle rule controls when versions of a module become deprecated?
      - How many supported and warning versions does this module's lifecycle rule allow?
      instructions:
      - text: Show the lifecycle rule configured for module {id}.
        slots:
          id: path.id
      - text: Get the supported, warning and deprecated settings for module {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/lifecycle'].put
  update:
    x-apievangelist-phrasing:
      intent: Set a module's version lifecycle rule
      effect: write
      questions:
      - Can I define how many module versions stay supported before they are warned or deprecated?
      - Does saving a lifecycle rule replace the existing overrides for that module?
      instructions:
      - text: Set the lifecycle rule on module {id} to keep {supported_count} versions supported and {warning_count} in warning.
        slots:
          id: path.id
          supported_count: requestBody.supported_count
          warning_count: requestBody.warning_count
      - text: Make deprecated versions of module {id} trigger action {deprecated_action}.
        slots:
          id: path.id
          deprecated_action: requestBody.deprecated_action
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/lifecycle'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a module's lifecycle rule
      effect: destructive
      questions:
      - How do I drop the lifecycle rule so every version of a module counts as supported again?
      - Does removing a lifecycle rule also clear its per-version overrides?
      instructions:
      - text: Delete the lifecycle rule and all overrides on module {id}.
        slots:
          id: path.id
      - text: Revert every version of module {id} to supported by removing its lifecycle rule.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/lifecycle/versions/{version}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a module version's lifecycle status
      effect: read
      questions:
      - Is a specific version of our module still supported or already deprecated?
      - What enforcement action applies if a pipeline uses an older module version?
      instructions:
      - text: Tell me the lifecycle tier of version {version} of module {id}.
        slots:
          version: path.version
          id: path.id
      - text: Check what enforcement action applies to module {id} at version {version}.
        slots:
          id: path.id
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/pipeline'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a testing pipeline for a module
      effect: write
      questions:
      - Can Harness generate a pipeline that tests a registry module for me?
      - Which org and project does a module's new testing pipeline get created in?
      instructions:
      - text: Create a testing pipeline for module {id} in org {pipeline_org} and project {pipeline_project}.
        slots:
          id: path.id
          pipeline_org: requestBody.pipeline_org
          pipeline_project: requestBody.pipeline_project
      - text: Generate a {type} pipeline for module {id} under project {pipeline_project} in org {pipeline_org}.
        slots:
          type: requestBody.type
          id: path.id
          pipeline_project: requestBody.pipeline_project
          pipeline_org: requestBody.pipeline_org
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/sync'].post
  update:
    x-apievangelist-phrasing:
      intent: Resync a module's metadata
      effect: write
      questions:
      - How can I refresh a module's metadata after pushing changes to its repo?
      - Can I force the registry to re-read a module's source?
      instructions:
      - text: Sync the metadata for module {id} now.
        slots:
          id: path.id
      - text: Refresh registry module {id} so it picks up the latest source.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/tags'].get
  update:
    x-apievangelist-phrasing:
      intent: List a module's Git tags
      effect: read
      questions:
      - Which Git tags has the registry picked up for a given module?
      - What tags exist on this module in the registry?
      instructions:
      - text: List the tags recorded for module {id}.
        slots:
          id: path.id
      - text: Show every Git tag the registry holds for module {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/testing'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a module's testing configuration
      effect: write
      questions:
      - Can I switch the provisioner version a module's tests run with?
      - How do I change which pipeline tests a module after testing is already on?
      instructions:
      - text: Update testing for module {id} to use provisioner {provisioner_type} version {provisioner_version}.
        slots:
          id: path.id
          provisioner_type: requestBody.provisioner_type
          provisioner_version: requestBody.provisioner_version
      - text: Point module {id}'s existing tests at pipeline {pipeline_id} in org {pipeline_org} and project {pipeline_project}.
        slots:
          id: path.id
          pipeline_id: requestBody.pipeline_id
          pipeline_org: requestBody.pipeline_org
          pipeline_project: requestBody.pipeline_project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/testing'].post
  update:
    x-apievangelist-phrasing:
      intent: Turn on testing for a module
      effect: write
      questions:
      - How do I switch on automated testing for a module that has none yet?
      - What do I need to provide to enable module testing — pipeline, provisioner, version?
      instructions:
      - text: Enable testing on module {id} with provisioner {provisioner_type} {provisioner_version}.
        slots:
          id: path.id
          provisioner_type: requestBody.provisioner_type
          provisioner_version: requestBody.provisioner_version
      - text: Turn on module testing for {id}, running in org {pipeline_org} project {pipeline_project}.
        slots:
          id: path.id
          pipeline_org: requestBody.pipeline_org
          pipeline_project: requestBody.pipeline_project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/testing'].delete
  update:
    x-apievangelist-phrasing:
      intent: Turn off testing for a module
      effect: destructive
      questions:
      - Can I stop running tests against a registry module?
      - What's the way to disable module testing I set up earlier?
      instructions:
      - text: Disable testing for module {id}.
        slots:
          id: path.id
      - text: Switch off the automated tests on registry module {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{id}/versions/{version}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete one version of a module
      effect: destructive
      questions:
      - Can I remove just one bad version of a module without deleting the module?
      - How do I unpublish a specific module version from the registry?
      instructions:
      - text: Delete version {version} of module {id}.
        slots:
          version: path.version
          id: path.id
      - text: Remove the {version} release from registry module {id}, keeping the rest.
        slots:
          version: path.version
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{module_id}/examples/file'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a file from a module's examples
      effect: read
      questions:
      - Can I pull a single example file out of a module version?
      - Does the example file path have to start with examples/?
      instructions:
      - text: Download example file {path} from module {module_id} version {version}.
        slots:
          path: query.path
          module_id: path.module_id
          version: query.version
      - text: Get the contents of {path} in the examples of module {module_id} at {version}.
        slots:
          path: query.path
          module_id: path.module_id
          version: query.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{module_id}/examples/tree'].get
  update:
    x-apievangelist-phrasing:
      intent: Browse a module's examples folder
      effect: read
      questions:
      - What example directories and files ship with a module version?
      - Can I list the subfolders inside a module's examples tree?
      instructions:
      - text: List the files and folders at {path} in the examples tree of module {module_id} version {version}.
        slots:
          path: query.path
          module_id: path.module_id
          version: query.version
      - text: Browse the examples directory of module {module_id} {version} starting at {path}.
        slots:
          module_id: path.module_id
          version: query.version
          path: query.path
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{module_id}/metadata'].get
  update:
    x-apievangelist-phrasing:
      intent: Get parsed metadata for a module version
      effect: read
      questions:
      - What inputs, outputs and resources does a module version declare?
      - Can I read metadata for a submodule rather than the root module?
      instructions:
      - text: Show the parsed metadata of module {module_id} at version {version}.
        slots:
          module_id: path.module_id
          version: query.version
      - text: Get metadata for submodule {submodule} of module {module_id} version {version}.
        slots:
          submodule: query.submodule
          module_id: path.module_id
          version: query.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{module_id}/readme'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a module version's README
      effect: read
      questions:
      - Where do I read the README for a particular module version?
      - Can I see the README of a submodule inside a registry module?
      instructions:
      - text: Show the README for module {module_id} version {version}.
        slots:
          module_id: path.module_id
          version: query.version
      - text: Fetch the README of submodule {submodule} in module {module_id} at {version}.
        slots:
          submodule: query.submodule
          module_id: path.module_id
          version: query.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{moduleId}/events'].post
  update:
    x-apievangelist-phrasing:
      intent: Send an event from a module execution
      effect: write
      questions:
      - Can a pipeline report an event back to the registry while a module runs?
      - What event types can I post for a module execution?
      instructions:
      - text: Send a {eventType} event for module {moduleId} in org {org} project {project} of account {account}.
        slots:
          eventType: requestBody.eventType
          moduleId: path.moduleId
          org: requestBody.org
          project: requestBody.project
          account: requestBody.account
      - text: Record event {eventType} against module {moduleId} for account {account}, org {org}, project {project}.
        slots:
          eventType: requestBody.eventType
          moduleId: path.moduleId
          account: requestBody.account
          org: requestBody.org
          project: requestBody.project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{moduleId}/executions'].get
  update:
    x-apievangelist-phrasing:
      intent: List executions of a module
      effect: read
      questions:
      - Which pipeline runs have used this module, and did they succeed?
      - Can I filter a module's executions by status or time window?
      instructions:
      - text: List recent executions of module {moduleId}.
        slots:
          moduleId: path.moduleId
      - text: Show executions of module {moduleId} with status {status} since {start_time}.
        slots:
          moduleId: path.moduleId
          status: query.status
          start_time: query.start_time
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{moduleId}/executions'].post
  update:
    x-apievangelist-phrasing:
      intent: Record a new module execution
      effect: write
      questions:
      - How do I log that a pipeline stage executed a registry module?
      - What pipeline details are needed to record a module execution?
      instructions:
      - text: Record an execution of module {moduleId} from pipeline {pipeline} run {pipelineExecutionId} stage {pipelineStageId}.
        slots:
          moduleId: path.moduleId
          pipeline: requestBody.pipeline
          pipelineExecutionId: requestBody.pipelineExecutionId
          pipelineStageId: requestBody.pipelineStageId
      - text: Create a module execution for {moduleId} in account {account}, pipeline org {pipeline_org}, project {pipeline_project}.
        slots:
          moduleId: path.moduleId
          account: requestBody.account
          pipeline_org: requestBody.pipeline_org
          pipeline_project: requestBody.pipeline_project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{name}/{system}/{version}/examples'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload an example to a module version
      effect: write
      questions:
      - Can I push README and Terraform files for one example directory of a module?
      - What's needed to publish usage examples alongside a module version?
      instructions:
      - text: Upload the example at {path} for module {name} ({system}) version {version}.
        slots:
          path: query.path
          name: path.name
          system: path.system
          version: path.version
      - text: Publish example directory {path} to module {name} for {system} at {version}.
        slots:
          path: query.path
          name: path.name
          system: path.system
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{name}/{system}/{version}/metadata'].post
  update:
    x-apievangelist-phrasing:
      intent: Store parsed data for a module version
      effect: write
      questions:
      - How are a module version's parsed metadata and download URL saved into the registry?
      - Can I attach submodule paths and example paths to a module version's data?
      instructions:
      - text: Save parsed metadata for module {name} ({system}) version {version} from Git tag {git_tag} with download URL {download_url}.
        slots:
          name: path.name
          system: path.system
          version: path.version
          git_tag: requestBody.git_tag
          download_url: requestBody.download_url
      - text: Store module data for {name}/{system} {version}, tagged {git_tag}.
        slots:
          name: path.name
          system: path.system
          version: path.version
          git_tag: requestBody.git_tag
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{name}/{system}/{version}/readme'].post
  update:
    x-apievangelist-phrasing:
      intent: Push the README for a module version
      effect: write
      questions:
      - How do I upload a README for a module version I just published?
      - Can I push a README for a submodule specifically?
      instructions:
      - text: Push the README for module {name} ({system}) version {version}.
        slots:
          name: path.name
          system: path.system
          version: path.version
      - text: Upload the README of submodule {submoduleName} in {name}/{system} at {version}.
        slots:
          submoduleName: query.submoduleName
          name: path.name
          system: path.system
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{name}/{system}/{version}/upload'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a module version's artifact
      effect: write
      questions:
      - How do I upload the packaged files for a new module version?
      - Which header names the file when uploading a module artifact?
      instructions:
      - text: Upload the artifact for module {name} ({system}) version {version}.
        slots:
          name: path.name
          system: path.system
          version: path.version
      - text: Upload {filename} as the package for {name}/{system} at {version}.
        slots:
          filename: header.Content-Disposition
          name: path.name
          system: path.system
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/{name}/{system}/tags'].post
  update:
    x-apievangelist-phrasing:
      intent: Save the tag list for a module
      effect: write
      questions:
      - Can I push the list of Git tags found for a module into the registry?
      - Is there a way to report a tag discovery error for a module?
      instructions:
      - text: Save tags {tags} for module {name} targeting {system}.
        slots:
          tags: requestBody.tags
          name: path.name
          system: path.system
      - text: Record tag error {error} for module {name} on {system}.
        slots:
          error: requestBody.error
          name: path.name
          system: path.system
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/connectors'].get
  update:
    x-apievangelist-phrasing:
      intent: List connectors available to the registry
      effect: read
      questions:
      - Which Git connectors can the module registry use in my account?
      - Can I see the registry's connectors for one org and project?
      instructions:
      - text: List the connectors the module registry can use.
      - text: Show module registry connectors in org {org} and project {project}.
        slots:
          org: query.org
          project: query.project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/lifecycle/batch-check'].post
  update:
    x-apievangelist-phrasing:
      intent: Check many modules for lifecycle violations
      effect: read
      questions:
      - Can I check all the modules a terraform init resolved for deprecated versions at once?
      - Does the batch lifecycle check return only the modules that violate a rule?
      instructions:
      - text: 'Batch-check these modules for lifecycle violations: {items}.'
        slots:
          items: requestBody.items
      - text: Tell me which of the resolved modules {items} are deprecated or in warning.
        slots:
          items: requestBody.items
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/pipeline/onboarding'].post
  update:
    x-apievangelist-phrasing:
      intent: Create the registry onboarding pipeline
      effect: write
      questions:
      - How do I set up the pipeline that onboards new modules into the registry?
      - Which project does the module onboarding pipeline get created in?
      instructions:
      - text: Create a module onboarding pipeline in org {org} and project {project}.
        slots:
          org: requestBody.org
          project: requestBody.project
      - text: Set up the registry onboarding pipeline under project {project} of org {org}.
        slots:
          project: requestBody.project
          org: requestBody.org
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/modules/providers'].get
  update:
    x-apievangelist-phrasing:
      intent: List providers used by registry modules
      effect: read
      questions:
      - Which providers or systems do our registry modules target?
      - What distinct module systems exist in a given org or project?
      instructions:
      - text: List the distinct providers our registry modules target.
      - text: Show module providers in the registry for org {scope_org}.
        slots:
          scope_org: query.scope_org
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/registry/account/{namespace}/{name}/{system}/{version}/download'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the download location for a module version
      effect: read
      questions:
      - What does Terraform call to find where to download a module version?
      - Can I fetch a specific version of a module through the registry protocol?
      instructions:
      - text: Get the download link for {namespace}/{name}/{system} version {version}.
        slots:
          namespace: path.namespace
          name: path.name
          system: path.system
          version: path.version
      - text: Resolve where to download module {name} for {system} at {version} in namespace {namespace}.
        slots:
          name: path.name
          system: path.system
          version: path.version
          namespace: path.namespace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/registry/account/{namespace}/{name}/{system}/{version}/download/file'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a module version's tarball
      effect: read
      questions:
      - How do I grab the actual tarball of a module version with a download token?
      - Is a token required to download a module's file archive?
      instructions:
      - text: Download the tarball for {namespace}/{name}/{system} {version} using token {token}.
        slots:
          namespace: path.namespace
          name: path.name
          system: path.system
          version: path.version
          token: query.token
      - text: Fetch the file archive of module {name} ({system}) version {version} from namespace {namespace} with token {token}.
        slots:
          name: path.name
          system: path.system
          version: path.version
          namespace: path.namespace
          token: query.token
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/registry/account/{namespace}/{name}/{system}/versions'].get
  update:
    x-apievangelist-phrasing:
      intent: List available versions of a module
      effect: read
      questions:
      - What versions of a module can Terraform pull from the registry?
      - Which is the newest published version of our module?
      instructions:
      - text: List all versions of {namespace}/{name}/{system}.
        slots:
          namespace: path.namespace
          name: path.name
          system: path.system
      - text: Show the published versions of module {name} for {system} in namespace {namespace}.
        slots:
          name: path.name
          system: path.system
          namespace: path.namespace
      method: generated
      generated: '2026-09-26'