# List modules

List all modules from the module registry

Endpoint: GET /iacm/api/modules
Version: 1.0
Security: x-api-key

## Query parameters:

  - `limit` (integer)
    Limit is the number of records to return for a page.
    Example: 30

  - `page` (integer)
    Page is the page number to return relative to the page 'limit'.
    Example: 1

  - `searchTerm` (string)
    Filter results by partial name or provider match
    Example: "mymod"

  - `sort` (string)
    Sort order for results
    Enum: "name,ASC", "name,DESC", "updated,ASC", "updated,DESC"

  - `scope_org` (string)
    org name
    Example: "Sed dolor blanditiis omnis nihil porro."

  - `scope_project` (string)
    project name
    Example: "Nemo consectetur est molestiae sit."

## Header parameters:

  - `Harness-Account` (string, required)
    account name
    Example: "Sit ut magnam."

## Response 200 fields (application/json):

  - `account` (string, required)
    Harness account ID that owns the module.
    Example: "abc123DEFghiJKL"

  - `created` (integer, required)
    Created is the unix timestamp at which the resource was originally created in milliseconds.
    Example: 3646214877823762400

  - `description` (string)
    Free-form text describing the purpose and usage of the module.
    Example: "Provisions a VPC with public and private subnets."

  - `domain_prefix` (string)
    Domain prefix for the module
    Example: "Est tenetur animi et est inventore."

  - `git_tag_style` (string)
    Pattern used to match Git tags for module versioning. Use 'module-name-*' to match tags like 'my-vpc-module-v1.0.0'.
    Example: "module-name-*"

  - `id` (string, required)
    module id
    Example: "aaaaaaaa-bbbb-cccc-eeee-ffffffffffff"

  - `module_error` (string)
    error while retrieving the module
    Example: "Hic eveniet tempore voluptatum et."

  - `name` (string, required)
    Human-readable name of the module. Must be unique within the same scope and system.
    Example: "my-vpc-module"

  - `namespace` (string)
    Namespace derived from account, org and project for use with the Terraform module registry
    Example: "Esse ea minus voluptas molestiae."

  - `onboarding_pipeline` (string)
    Identifier of the Harness pipeline used for module onboarding and metadata sync.
    Example: "Module_Onboarding_Pipeline"

  - `onboarding_pipeline_org` (string)
    Organization where the onboarding pipeline is defined. Defaults to scope_org if not provided.
    Example: "my_org"

  - `onboarding_pipeline_project` (string)
    Project where the onboarding pipeline is defined. Defaults to scope_project if not provided.
    Example: "my_project"

  - `onboarding_pipeline_sync` (boolean)
    When true, module metadata is automatically synced via the onboarding pipeline when new Git tags are pushed.
    Example: true

  - `org` (string)
    Organization identifier where the Git connector is defined. Defaults to scope_org if not provided.
    Example: "my_org"

  - `project` (string)
    Project identifier where the Git connector is defined. Defaults to scope_project if not provided.
    Example: "my_project"

  - `repository` (string)
    Name of the Git repository that contains the module source code.
    Example: "my-terraform-modules"

  - `repository_branch` (string)
    Repository Branch in which the code should be accessed.
    Example: "main"

  - `repository_commit` (string)
    Repository Commit/Tag in which the code should be accessed.
    Example: "abc10ed"

  - `repository_connector` (string)
    Harness Git connector identifier used to access the Git repository. Must reference a valid Git connector in your account. Leave empty when using Harness Code as the repository source.
    Example: "my_github_connector"

  - `repository_path` (string)
    Repository Path is the path in which the infra code resides.

  - `repository_url` (string)
    Repository url.
    Example: "Necessitatibus eos architecto fuga quis nobis."

  - `scope_org` (string)
    Organization identifier where the module is scoped.
    Example: "my_org"

  - `scope_project` (string)
    Project identifier where the module is scoped.
    Example: "my_project"

  - `storage_type` (string)
    Defines how module versions are stored. 'git_reference' resolves versions from Git tags; 'artifact' stores uploaded archive files.
    Enum: "git_reference", "artifact"

  - `synced` (integer, required)
    Synced is the unix timestamp at which the resource was synced for the last time in milliseconds.
    Example: 8922409263279233000

  - `system` (string, required)
    Provider or system the module targets. Lowercase letters only (e.g. aws, gcp, azure, kubernetes).
    Example: "aws"

  - `tags` (string)
    Comma-separated list of tags to categorize the module (e.g. networking,vpc,aws).
    Example: "Et aut itaque porro dignissimos."

  - `testing_enabled` (boolean)
    testing enabled

  - `testing_metadata` (object)
    ModuleTestingMetadata result type (default view)
    Example: {"account":"h1z","org":"t","pipelines":["Ex quo dolor voluptate distinctio maiores.","Veniam sint et ipsam et dolore ut.","Corrupti quod iure dolorum."],"project":"g1k","provider_connector":"Ipsa odit veritatis voluptatum.","provisioner_type":"Quae est.","provisioner_version":"Ea mollitia velit quidem omnis totam.","release_pipeline":"Non officiis ut odio corrupti."}

  - `testing_metadata.account` (string, required)
    Account is the internal customer account ID.
    Example: "h1z"

  - `testing_metadata.org` (string, required)
    Org is the organisation identifier.
    Example: "t"

  - `testing_metadata.pipelines` (array, required)
    pipelines where the testing is enabled
    Example: ["Ex quo dolor voluptate distinctio maiores.","Veniam sint et ipsam et dolore ut.","Corrupti quod iure dolorum."]

  - `testing_metadata.project` (string, required)
    Project is the project identifier.
    Example: "g1k"

  - `testing_metadata.provider_connector` (string, required)
    provider connector for testing purposes
    Example: "Ipsa odit veritatis voluptatum."

  - `testing_metadata.provisioner_type` (string, required)
    provisioner type for testing purposes
    Example: "Quae est."

  - `testing_metadata.provisioner_version` (string, required)
    provisioner version for testing purposes
    Example: "Ea mollitia velit quidem omnis totam."

  - `testing_metadata.release_pipeline` (string)
    release pipeline
    Example: "Non officiis ut odio corrupti."

  - `updated` (integer, required)
    Modified is the unix timestamp at which the resource was last modified in milliseconds.
    Example: 145005147908692900

  - `version_statuses` (object)
    Map of module version to lifecycle status (supported, warning, deprecated). Populated only when the lifecycle feature flag is enabled.
    Example: {"Enim vel dolores.":"Unde quo reprehenderit aut aut doloremque."}

  - `versions` (array)
    versions
    Example: ["Consequatur quia temporibus sint.","Deleniti rem omnis nihil repellendus.","Sapiente non recusandae.","Dicta iure rerum ducimus."]

## Response 400 fields (application/vnd.goa.error):

  - `fault` (boolean, required)
    Is the error a server-side fault?
    Example: true

  - `id` (string, required)
    ID is a unique identifier for this particular occurrence of the problem.
    Example: "123abc"

  - `message` (string, required)
    Message is a human-readable explanation specific to this occurrence of the problem.
    Example: "parameter 'p' must be an integer"

  - `name` (string, required)
    Name is the name of this class of errors.
    Example: "bad_request"

  - `temporary` (boolean, required)
    Is the error temporary?
    Example: true

  - `timeout` (boolean, required)
    Is the error a timeout?
    Example: true


