Harness Module Registry API
The module-registry service is a private registry for Terraform/Opentofu modules
Operations 35
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Ask an LLM
“What Terraform modules are published in our Harness module registry?”
“Can I search the module registry by name and narrow it to one provider?”
Tell an agent
List every module in our module registry.
Search the module registry for modules matching {searchTerm} that target {provider}.
Ask an LLM
“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?”
Tell an agent
Register a new module named {name} for the {system} provider in the module registry.
Create module {name} for {system} sourced from repository {repository} on branch {repository_branch}.
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Delete module {id} from the module registry entirely.
Remove the registry module with ID {id}.
Ask an LLM
“Where can I see the full details of a single module in the registry?”
“What repository and settings does a particular registry module use?”
Tell an agent
Show me the registry module with ID {id}.
Fetch the details of module {id} from the module registry.
Ask an LLM
“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?”
Tell an agent
Update module {id} so its name is {name} and its system is {system}.
Change the description of registry module {id} to {description}, keeping name {name} and system {system}.
DELETE
/iacm/api/modules/{id}/lifecycle
Remove a module's lifecycle rule · Delete module lifecycle rule
#
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Delete the lifecycle rule and all overrides on module {id}.
Revert every version of module {id} to supported by removing its lifecycle rule.
Ask an LLM
“Which lifecycle rule controls when versions of a module become deprecated?”
“How many supported and warning versions does this module's lifecycle rule allow?”
Tell an agent
Show the lifecycle rule configured for module {id}.
Get the supported, warning and deprecated settings for module {id}.
PUT
/iacm/api/modules/{id}/lifecycle
Set a module's version lifecycle rule · Upsert module lifecycle rule
#
Ask an LLM
“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?”
Tell an agent
Set the lifecycle rule on module {id} to keep {supported_count} versions supported and {warning_count} in warning.
Make deprecated versions of module {id} trigger action {deprecated_action}.
GET
/iacm/api/modules/{id}/lifecycle/versions/{version}
Check a module version's lifecycle status · Get module version lifecycle status
#
Ask an LLM
“Is a specific version of our module still supported or already deprecated?”
“What enforcement action applies if a pipeline uses an older module version?”
Tell an agent
Tell me the lifecycle tier of version {version} of module {id}.
Check what enforcement action applies to module {id} at version {version}.
POST
/iacm/api/modules/{id}/pipeline
Create a testing pipeline for a module · Create testing pipeline
#
Ask an LLM
“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?”
Tell an agent
Create a testing pipeline for module {id} in org {pipeline_org} and project {pipeline_project}.
Generate a {type} pipeline for module {id} under project {pipeline_project} in org {pipeline_org}.
Ask an LLM
“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?”
Tell an agent
Sync the metadata for module {id} now.
Refresh registry module {id} so it picks up the latest source.
Ask an LLM
“Which Git tags has the registry picked up for a given module?”
“What tags exist on this module in the registry?”
Tell an agent
List the tags recorded for module {id}.
Show every Git tag the registry holds for module {id}.
Ask an LLM
“Can I stop running tests against a registry module?”
“What's the way to disable module testing I set up earlier?”
Tell an agent destructive · confirm first
Disable testing for module {id}.
Switch off the automated tests on registry module {id}.
Ask an LLM
“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?”
Tell an agent
Enable testing on module {id} with provisioner {provisioner_type} {provisioner_version}.
Turn on module testing for {id}, running in org {pipeline_org} project {pipeline_project}.
PUT
/iacm/api/modules/{id}/testing
Change a module's testing configuration · Update module testing
#
Ask an LLM
“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?”
Tell an agent
Update testing for module {id} to use provisioner {provisioner_type} version {provisioner_version}.
Point module {id}'s existing tests at pipeline {pipeline_id} in org {pipeline_org} and project {pipeline_project}.
DELETE
/iacm/api/modules/{id}/versions/{version}
Delete one version of a module · Delete module version
#
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Delete version {version} of module {id}.
Remove the {version} release from registry module {id}, keeping the rest.
GET
/iacm/api/modules/{module_id}/examples/file
Download a file from a module's examples · Get module example file
#
Ask an LLM
“Can I pull a single example file out of a module version?”
“Does the example file path have to start with examples/?”
Tell an agent
Download example file {path} from module {module_id} version {version}.
Get the contents of {path} in the examples of module {module_id} at {version}.
GET
/iacm/api/modules/{module_id}/examples/tree
Browse a module's examples folder · List module example tree
#
Ask an LLM
“What example directories and files ship with a module version?”
“Can I list the subfolders inside a module's examples tree?”
Tell an agent
List the files and folders at {path} in the examples tree of module {module_id} version {version}.
Browse the examples directory of module {module_id} {version} starting at {path}.
GET
/iacm/api/modules/{module_id}/metadata
Get parsed metadata for a module version · List module metadata
#
Ask an LLM
“What inputs, outputs and resources does a module version declare?”
“Can I read metadata for a submodule rather than the root module?”
Tell an agent
Show the parsed metadata of module {module_id} at version {version}.
Get metadata for submodule {submodule} of module {module_id} version {version}.
Ask an LLM
“Where do I read the README for a particular module version?”
“Can I see the README of a submodule inside a registry module?”
Tell an agent
Show the README for module {module_id} version {version}.
Fetch the README of submodule {submodule} in module {module_id} at {version}.
POST
/iacm/api/modules/{moduleId}/events
Send an event from a module execution · Send an event related with a module execution
#
Ask an LLM
“Can a pipeline report an event back to the registry while a module runs?”
“What event types can I post for a module execution?”
Tell an agent
Send a {eventType} event for module {moduleId} in org {org} project {project} of account {account}.
Record event {eventType} against module {moduleId} for account {account}, org {org}, project {project}.
GET
/iacm/api/modules/{moduleId}/executions
List executions of a module · List executions for a specific module
#
Ask an LLM
“Which pipeline runs have used this module, and did they succeed?”
“Can I filter a module's executions by status or time window?”
Tell an agent
List recent executions of module {moduleId}.
Show executions of module {moduleId} with status {status} since {start_time}.
POST
/iacm/api/modules/{moduleId}/executions
Record a new module execution · Create a new module execution
#
Ask an LLM
“How do I log that a pipeline stage executed a registry module?”
“What pipeline details are needed to record a module execution?”
Tell an agent
Record an execution of module {moduleId} from pipeline {pipeline} run {pipelineExecutionId} stage {pipelineStageId}.
Create a module execution for {moduleId} in account {account}, pipeline org {pipeline_org}, project {pipeline_project}.
POST
/iacm/api/modules/{name}/{system}/{version}/examples
Upload an example to a module version · Create module example
#
Ask an LLM
“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?”
Tell an agent
Upload the example at {path} for module {name} ({system}) version {version}.
Publish example directory {path} to module {name} for {system} at {version}.
POST
/iacm/api/modules/{name}/{system}/{version}/metadata
Store parsed data for a module version · Create module data
#
Ask an LLM
“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?”
Tell an agent
Save parsed metadata for module {name} ({system}) version {version} from Git tag {git_tag} with download URL {download_url}.
Store module data for {name}/{system} {version}, tagged {git_tag}.
POST
/iacm/api/modules/{name}/{system}/{version}/readme
Push the README for a module version · Create module readme
#
Ask an LLM
“How do I upload a README for a module version I just published?”
“Can I push a README for a submodule specifically?”
Tell an agent
Push the README for module {name} ({system}) version {version}.
Upload the README of submodule {submoduleName} in {name}/{system} at {version}.
POST
/iacm/api/modules/{name}/{system}/{version}/upload
Upload a module version's artifact · Upload module artifact files
#
Ask an LLM
“How do I upload the packaged files for a new module version?”
“Which header names the file when uploading a module artifact?”
Tell an agent
Upload the artifact for module {name} ({system}) version {version}.
Upload {filename} as the package for {name}/{system} at {version}.
Ask an LLM
“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?”
Tell an agent
Save tags {tags} for module {name} targeting {system}.
Record tag error {error} for module {name} on {system}.
Ask an LLM
“Which Git connectors can the module registry use in my account?”
“Can I see the registry's connectors for one org and project?”
Tell an agent
List the connectors the module registry can use.
Show module registry connectors in org {org} and project {project}.
POST
/iacm/api/modules/lifecycle/batch-check
Check many modules for lifecycle violations · Batch check module lifecycle status
#
Ask an LLM
“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?”
Tell an agent
Batch-check these modules for lifecycle violations: {items}.
Tell me which of the resolved modules {items} are deprecated or in warning.
POST
/iacm/api/modules/pipeline/onboarding
Create the registry onboarding pipeline · Create onboarding pipeline
#
Ask an LLM
“How do I set up the pipeline that onboards new modules into the registry?”
“Which project does the module onboarding pipeline get created in?”
Tell an agent
Create a module onboarding pipeline in org {org} and project {project}.
Set up the registry onboarding pipeline under project {project} of org {org}.
Ask an LLM
“Which providers or systems do our registry modules target?”
“What distinct module systems exist in a given org or project?”
Tell an agent
List the distinct providers our registry modules target.
Show module providers in the registry for org {scope_org}.
GET
/iacm/registry/account/{namespace}/{name}/{system}/{version}/download
Get the download location for a module version · Download module
#
Ask an LLM
“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?”
Tell an agent
Get the download link for {namespace}/{name}/{system} version {version}.
Resolve where to download module {name} for {system} at {version} in namespace {namespace}.
GET
/iacm/registry/account/{namespace}/{name}/{system}/{version}/download/file
Download a module version's tarball · Download module file tarball
#
Ask an LLM
“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?”
Tell an agent
Download the tarball for {namespace}/{name}/{system} {version} using token {token}.
Fetch the file archive of module {name} ({system}) version {version} from namespace {namespace} with token {token}.
GET
/iacm/registry/account/{namespace}/{name}/{system}/versions
List available versions of a module · List module versions
#
Ask an LLM
“What versions of a module can Terraform pull from the registry?”
“Which is the newest published version of our module?”
Tell an agent
List all versions of {namespace}/{name}/{system}.
Show the published versions of module {name} for {system} in namespace {namespace}.
Documentation
📖
Documentation
https://apidocs.harness.io
📖
APIReference
https://apidocs.harness.io
📖
GettingStarted
https://developer.harness.io/docs/platform/automation/api/api-quickstart/
📖
Authentication
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/authentication/harness-authentication.yml
📖
RateLimits
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/rate-limits/harness-rate-limits.yml
Specifications
Other Resources
🔗
OAuthScopes
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/scopes/harness-scopes.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/errors/harness-error-codes.yml
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/conventions/harness-conventions.yml
🔗
Idempotency
https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/conventions/harness-conventions.yml