> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/api-reference/ar/artifacts.md).

# Artifacts

APIs to get, list artifacts

## Redirect to Harness Artifact Page

> Redirect to Harness Artifact Page

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_identifier}/artifact/{artifact}/redirect":{"get":{"description":"Redirect to Harness Artifact Page","operationId":"RedirectHarnessArtifact","parameters":[{"$ref":"#/components/parameters/RegistryIdentifierPathParam"},{"$ref":"#/components/parameters/AccountIdentifierParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/versionParam"}],"responses":{"302":{"$ref":"#/components/responses/Redirect"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Redirect to Harness Artifact Page","tags":["Artifacts"]}}},"components":{"parameters":{"RegistryIdentifierPathParam":{"description":"Unique registry Identifier in a account.","in":"path","name":"registry_identifier","required":true,"schema":{"type":"string"}},"AccountIdentifierParam":{"description":"Account Identifier","in":"query","name":"accountIdentifier","schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"versionParam":{"description":"Version","in":"query","name":"version","schema":{"type":"string"}}},"responses":{"Redirect":{"description":"Temporary Redirect","headers":{"Location":{"description":"The URL of the redirected resource","schema":{"format":"uri","type":"string"}}}},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Delete Artifact

> Delete Artifact.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}":{"delete":{"description":"Delete Artifact.","operationId":"DeleteArtifact","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Delete Artifact","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}}},"responses":{"Success":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/Status"}},"required":["status"],"type":"object"}}},"description":"Generic success response"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Update Artifact Labels

> Update Artifact Labels.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/labels":{"put":{"description":"Update Artifact Labels.","operationId":"UpdateArtifactLabels","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"}],"requestBody":{"$ref":"#/components/requestBodies/ArtifactLabelRequest"},"responses":{"200":{"$ref":"#/components/responses/ArtifactLabelResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Update Artifact Labels","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}}},"requestBodies":{"ArtifactLabelRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactLabelRequest"}}},"description":"request to update artifact labels"}},"schemas":{"ArtifactLabelRequest":{"properties":{"labels":{"items":{"type":"string"},"type":"array"}},"required":["labels"],"type":"object"},"ArtifactSummary":{"description":"Harness Artifact Summary","properties":{"artifactType":{"$ref":"#/components/schemas/ArtifactType"},"createdAt":{"type":"string"},"deletedAt":{"description":"Timestamp in milliseconds when the registry was soft-deleted","type":"string"},"downloadsCount":{"format":"int64","type":"integer"},"imageName":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"},"modifiedAt":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageType"},"registryUUID":{"type":"string"},"uuid":{"type":"string"}},"required":["imageName","packageType","uuid","registryUUID"],"type":"object"},"ArtifactType":{"description":"refers to artifact type","enum":["model","dataset","module","provider"],"type":"string"},"PackageType":{"description":"refers to package","enum":["DOCKER","MAVEN","PYTHON","GENERIC","HELM","NUGET","NPM","RPM","CARGO","COMPOSER","GO","HUGGINGFACE","CONDA","DART","SWIFT","PUPPET","RUBY","CRAN","WOLFI","ALPINE","RAW","HELM_HTTP","DEBIAN","CONAN","TERRAFORM"],"type":"string"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"ArtifactLabelResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactSummary"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact label response"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}}}}
```

## Get Artifact Stats

> Get Artifact Stats.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/stats":{"get":{"description":"Get Artifact Stats.","operationId":"GetArtifactStats","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/fromDateParam"},{"$ref":"#/components/parameters/toDateParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactStatsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Get Artifact Stats","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"fromDateParam":{"description":"Date. Format - MM/DD/YYYY","in":"query","name":"from","schema":{"type":"string"}},"toDateParam":{"description":"Date. Format - MM/DD/YYYY","in":"query","name":"to","schema":{"type":"string"}}},"responses":{"ArtifactStatsResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactStats"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact stats response"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactStats":{"description":"Harness Artifact Stats","properties":{"downloadCount":{"format":"int64","type":"integer"},"downloadSize":{"format":"int64","type":"integer"},"totalStorageSize":{"format":"int64","type":"integer"},"uploadSize":{"format":"int64","type":"integer"}},"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Get Artifact Summary

> Get Artifact Summary.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/summary":{"get":{"description":"Get Artifact Summary.","operationId":"GetArtifactSummary","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactSummaryResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Get Artifact Summary","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}}},"responses":{"ArtifactSummaryResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactSummary"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact summary"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactSummary":{"description":"Harness Artifact Summary","properties":{"artifactType":{"$ref":"#/components/schemas/ArtifactType"},"createdAt":{"type":"string"},"deletedAt":{"description":"Timestamp in milliseconds when the registry was soft-deleted","type":"string"},"downloadsCount":{"format":"int64","type":"integer"},"imageName":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"},"modifiedAt":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageType"},"registryUUID":{"type":"string"},"uuid":{"type":"string"}},"required":["imageName","packageType","uuid","registryUUID"],"type":"object"},"ArtifactType":{"description":"refers to artifact type","enum":["model","dataset","module","provider"],"type":"string"},"PackageType":{"description":"refers to package","enum":["DOCKER","MAVEN","PYTHON","GENERIC","HELM","NUGET","NPM","RPM","CARGO","COMPOSER","GO","HUGGINGFACE","CONDA","DART","SWIFT","PUPPET","RUBY","CRAN","WOLFI","ALPINE","RAW","HELM_HTTP","DEBIAN","CONAN","TERRAFORM"],"type":"string"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## List OCI Artifact tags

> Lists OCI Artifact Tags.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/tags":{"get":{"description":"Lists OCI Artifact Tags.","operationId":"GetOciArtifactTags","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/searchTerm"}],"responses":{"200":{"$ref":"#/components/responses/ListOciArtifactTagsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"List OCI Artifact tags","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"pageNumber":{"description":"Current page number","in":"query","name":"page","schema":{"default":1,"format":"int64","type":"integer"}},"pageSize":{"description":"Number of items per page","in":"query","name":"size","schema":{"default":20,"format":"int64","type":"integer"}},"searchTerm":{"description":"search Term.","in":"query","name":"search_term","schema":{"type":"string"}}},"responses":{"ListOciArtifactTagsResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ListOciArtifactTags"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response for list tags info of an OCI artifact"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ListOciArtifactTags":{"description":"A list of Artifact versions","properties":{"itemCount":{"description":"The total number of items","format":"int64","type":"integer"},"ociArtifactTags":{"description":"A list of OCI Artifact tags","items":{"$ref":"#/components/schemas/OciArtifactTag"},"type":"array"},"pageCount":{"description":"The total number of pages","format":"int64","type":"integer"},"pageIndex":{"description":"The current page","format":"int64","type":"integer"},"pageSize":{"description":"The number of items per page","type":"integer"}},"required":["ociArtifactTags"],"type":"object"},"OciArtifactTag":{"description":"OCI Artifact Tag info","properties":{"digest":{"type":"string"},"name":{"type":"string"}},"required":["name","digest"],"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Delete an Artifact Version

> Delete Artifact Version.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}":{"delete":{"description":"Delete Artifact Version.","operationId":"DeleteArtifactVersion","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/filtersParam"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Delete an Artifact Version","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"filtersParam":{"description":"Key-value filters for artifact version. Repeat the parameter once per filter.\nFormat per entry: key:value\nExample: ?filters=architecture:amd64&filters=distribution:ubuntu\n","explode":true,"in":"query","name":"filters","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}},"responses":{"Success":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/Status"}},"required":["status"],"type":"object"}}},"description":"Generic success response"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Create a bulk download request

> Create a bulk download request

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/bulk-download":{"get":{"description":"Create a bulk download request","operationId":"CreateBulkDownloadRequestV1","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/versionPathParam"}],"responses":{"200":{"$ref":"#/components/responses/CreateBulkDownloadRequestResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Create a bulk download request","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}}},"responses":{"CreateBulkDownloadRequestResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/CreateBulkDownloadRequestResponseOutput"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"Response containing status of bulk download operation"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"CreateBulkDownloadRequestResponseOutput":{"properties":{"downloadId":{"description":"Unique identifier for the download request","type":"string"}},"required":["downloadId"],"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Describe Artifact Deployments

> Get Artifact Deployments

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/deploymentdetails":{"get":{"description":"Get Artifact Deployments","operationId":"GetArtifactDeployments","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/envType"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/sortOrder"},{"$ref":"#/components/parameters/sortField"},{"$ref":"#/components/parameters/searchTerm"},{"$ref":"#/components/parameters/versionTypeParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactDeploymentsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Describe Artifact Deployments","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"envType":{"description":"env type","in":"query","name":"env_type","schema":{"description":"Environment Type","enum":["PreProduction","Production"],"type":"string"}},"pageNumber":{"description":"Current page number","in":"query","name":"page","schema":{"default":1,"format":"int64","type":"integer"}},"pageSize":{"description":"Number of items per page","in":"query","name":"size","schema":{"default":20,"format":"int64","type":"integer"}},"sortOrder":{"description":"sortOrder","in":"query","name":"sort_order","schema":{"type":"string"}},"sortField":{"description":"sortField","in":"query","name":"sort_field","schema":{"type":"string"}},"searchTerm":{"description":"search Term.","in":"query","name":"search_term","schema":{"type":"string"}},"versionTypeParam":{"description":"Version Type.","in":"query","name":"version_type","schema":{"enum":["DIGEST","TAG"],"type":"string"}}},"responses":{"ArtifactDeploymentsResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactDeploymentsDetails"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get docker artifact deployments details"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactDeploymentsDetails":{"description":"Docker Artifact deployments Details","properties":{"deployments":{"$ref":"#/components/schemas/ArtifactDeploymentsList"},"deploymentsStats":{"$ref":"#/components/schemas/DeploymentStats"}},"required":["deployments"],"type":"object"},"ArtifactDeploymentsList":{"description":"A list of Artifact Deployments","properties":{"deployments":{"description":"A list of Artifact","items":{"$ref":"#/components/schemas/ArtifactDeploymentsDetail"},"type":"array"},"itemCount":{"description":"The total number of items","format":"int64","type":"integer"},"pageCount":{"description":"The total number of pages","format":"int64","type":"integer"},"pageIndex":{"description":"The current page","format":"int64","type":"integer"},"pageSize":{"description":"The number of items per page","type":"integer"}},"required":["artifacts"],"type":"object"},"ArtifactDeploymentsDetail":{"description":"Artifact deployments Detail","properties":{"count":{"type":"integer"},"envIdentifier":{"type":"string"},"envName":{"type":"string"},"envType":{"$ref":"#/components/schemas/EnvironmentType"},"infraIdentifier":{"type":"string"},"infraName":{"type":"string"},"lastDeployedAt":{"type":"string"},"lastDeployedById":{"type":"string"},"lastDeployedByName":{"type":"string"},"lastPipelineExecutionId":{"type":"string"},"lastPipelineExecutionName":{"type":"string"},"orgIdentifier":{"type":"string"},"pipelineId":{"type":"string"},"projectIdentifier":{"type":"string"},"serviceIdentifier":{"type":"string"},"serviceName":{"type":"string"}},"type":"object"},"EnvironmentType":{"description":"Environment Type","enum":["PreProduction","Production"],"type":"string"},"DeploymentStats":{"description":"DeploymentStats","properties":{"PreProduction":{"type":"integer"},"Production":{"type":"integer"}},"required":["Production","PreProduction"],"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Describe Artifact Details

> Get Artifact Details

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/details":{"get":{"description":"Get Artifact Details","operationId":"GetArtifactDetails","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/childVersionParam"},{"$ref":"#/components/parameters/filtersParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactDetailResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Describe Artifact Details","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"childVersionParam":{"description":"Child version incase of Docker artifacts.","in":"query","name":"childVersion","schema":{"type":"string"}},"filtersParam":{"description":"Key-value filters for artifact version. Repeat the parameter once per filter.\nFormat per entry: key:value\nExample: ?filters=architecture:amd64&filters=distribution:ubuntu\n","explode":true,"in":"query","name":"filters","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}},"responses":{"ArtifactDetailResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactDetail"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact details"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactDetail":{"description":"Artifact Detail","discriminator":{"mapping":{"ALPINE":"#/components/schemas/AlpineArtifactDetailConfig","CARGO":"#/components/schemas/CargoArtifactDetailConfig","COMPOSER":"#/components/schemas/ComposerArtifactDetailConfig","CONAN":"#/components/schemas/ConanArtifactDetailConfig","CONDA":"#/components/schemas/CondaArtifactDetailConfig","CRAN":"#/components/schemas/CRANArtifactDetailConfig","DART":"#/components/schemas/DartArtifactDetailConfig","DEBIAN":"#/components/schemas/DebianArtifactDetailConfig","DOCKER":"#/components/schemas/DockerArtifactDetailConfig","GENERIC":"#/components/schemas/GenericArtifactDetailConfig","GO":"#/components/schemas/GoArtifactDetailConfig","HELM":"#/components/schemas/HelmArtifactDetailConfig","HELM_HTTP":"#/components/schemas/HelmHttpArtifactDetailConfig","HUGGINGFACE":"#/components/schemas/HuggingFaceArtifactDetailConfig","MAVEN":"#/components/schemas/MavenArtifactDetailConfig","NPM":"#/components/schemas/NpmArtifactDetailConfig","NUGET":"#/components/schemas/NugetArtifactDetailConfig","PUPPET":"#/components/schemas/PuppetArtifactDetailConfig","PYTHON":"#/components/schemas/PythonArtifactDetailConfig","RPM":"#/components/schemas/RpmArtifactDetailConfig","RUBY":"#/components/schemas/RubyArtifactDetailConfig","SWIFT":"#/components/schemas/SwiftArtifactDetailConfig","TERRAFORM":"#/components/schemas/TerraformArtifactDetailConfig","WOLFI":"#/components/schemas/WolfiArtifactDetailConfig"},"propertyName":"packageType"},"oneOf":[{"$ref":"#/components/schemas/DockerArtifactDetailConfig"},{"$ref":"#/components/schemas/HelmArtifactDetailConfig"},{"$ref":"#/components/schemas/GenericArtifactDetailConfig"},{"$ref":"#/components/schemas/MavenArtifactDetailConfig"},{"$ref":"#/components/schemas/PythonArtifactDetailConfig"},{"$ref":"#/components/schemas/NpmArtifactDetailConfig"},{"$ref":"#/components/schemas/RpmArtifactDetailConfig"},{"$ref":"#/components/schemas/NugetArtifactDetailConfig"},{"$ref":"#/components/schemas/CargoArtifactDetailConfig"},{"$ref":"#/components/schemas/GoArtifactDetailConfig"},{"$ref":"#/components/schemas/HuggingFaceArtifactDetailConfig"},{"$ref":"#/components/schemas/CondaArtifactDetailConfig"},{"$ref":"#/components/schemas/DartArtifactDetailConfig"},{"$ref":"#/components/schemas/ComposerArtifactDetailConfig"},{"$ref":"#/components/schemas/SwiftArtifactDetailConfig"},{"$ref":"#/components/schemas/PuppetArtifactDetailConfig"},{"$ref":"#/components/schemas/HelmHttpArtifactDetailConfig"},{"$ref":"#/components/schemas/DebianArtifactDetailConfig"},{"$ref":"#/components/schemas/ConanArtifactDetailConfig"},{"$ref":"#/components/schemas/RubyArtifactDetailConfig"},{"$ref":"#/components/schemas/CRANArtifactDetailConfig"},{"$ref":"#/components/schemas/TerraformArtifactDetailConfig"},{"$ref":"#/components/schemas/WolfiArtifactDetailConfig"},{"$ref":"#/components/schemas/AlpineArtifactDetailConfig"}],"properties":{"artifactKey":{"additionalProperties":{"type":"string"},"type":"object"},"artifactType":{"$ref":"#/components/schemas/ArtifactType"},"createdAt":{"type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"deletedAt":{"description":"Timestamp in milliseconds when the registry was soft-deleted","type":"string"},"downloadCount":{"format":"int64","type":"integer"},"isQuarantined":{"type":"boolean"},"modifiedAt":{"type":"string"},"name":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageType"},"quarantineReason":{"type":"string"},"size":{"type":"string"},"version":{"type":"string"}},"required":["imageName","version","registryPath","url","packageType"],"type":"object"},"DockerArtifactDetailConfig":{"description":"Config for docker artifact details","properties":{"pullCommand":{"type":"string"}},"type":"object"},"HelmArtifactDetailConfig":{"description":"Config for helm artifact details","properties":{"pullCommand":{"type":"string"}},"type":"object"},"GenericArtifactDetailConfig":{"description":"Config for generic artifact details","properties":{"description":{"type":"string"}},"type":"object"},"MavenArtifactDetailConfig":{"description":"Config for maven artifact details","properties":{"artifactId":{"type":"string"},"groupId":{"type":"string"}},"type":"object"},"PythonArtifactDetailConfig":{"description":"Config for python artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"NpmArtifactDetailConfig":{"description":"Config for npm artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"RpmArtifactDetailConfig":{"description":"Config for RPM artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"NugetArtifactDetailConfig":{"description":"Config for nuget artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"CargoArtifactDetailConfig":{"description":"Config for Cargo artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"GoArtifactDetailConfig":{"description":"Config for Go artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"HuggingFaceArtifactDetailConfig":{"description":"Config for huggingface artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"CondaArtifactDetailConfig":{"description":"Config for conda artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"DartArtifactDetailConfig":{"description":"Config for dart artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"ComposerArtifactDetailConfig":{"description":"Config for composer artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"SwiftArtifactDetailConfig":{"description":"Config for swift artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"PuppetArtifactDetailConfig":{"description":"Config for puppet artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"HelmHttpArtifactDetailConfig":{"description":"Config for Helm HTTP artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"DebianArtifactDetailConfig":{"description":"Config for debian artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"ConanArtifactDetailConfig":{"description":"Config for Conan artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"RubyArtifactDetailConfig":{"description":"Config for RubyGems artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"CRANArtifactDetailConfig":{"description":"Config for CRAN artifact details.","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"TerraformArtifactDetailConfig":{"description":"Config for Terraform artifact details","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"WolfiArtifactDetailConfig":{"description":"Config for Wolfi (APK) artifact details.","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"AlpineArtifactDetailConfig":{"description":"Config for Alpine (APK) artifact details.","properties":{"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"ArtifactType":{"description":"refers to artifact type","enum":["model","dataset","module","provider"],"type":"string"},"UserInfo":{"description":"Structured user information for a principal","properties":{"display_name":{"description":"Human-readable display name","type":"string"},"email":{"description":"Email address","type":"string"},"type":{"description":"Principal type (user, service, service_account)","type":"string"},"uid":{"description":"Principal unique identifier (username)","type":"string"}},"type":"object"},"PackageType":{"description":"refers to package","enum":["DOCKER","MAVEN","PYTHON","GENERIC","HELM","NUGET","NPM","RPM","CARGO","COMPOSER","GO","HUGGINGFACE","CONDA","DART","SWIFT","PUPPET","RUBY","CRAN","WOLFI","ALPINE","RAW","HELM_HTTP","DEBIAN","CONAN","TERRAFORM"],"type":"string"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Get Artifact file

> just validate existence of Artifact file

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/file/{file_name}":{"get":{"description":"just validate existence of Artifact file","operationId":"GetArtifactFile","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/fileNamePathParam"},{"$ref":"#/components/parameters/filtersParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactFileResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Get Artifact file","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"fileNamePathParam":{"description":"Name of Artifact File.","in":"path","name":"file_name","required":true,"schema":{"type":"string"}},"filtersParam":{"description":"Key-value filters for artifact version. Repeat the parameter once per filter.\nFormat per entry: key:value\nExample: ?filters=architecture:amd64&filters=distribution:ubuntu\n","explode":true,"in":"query","name":"filters","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}},"responses":{"ArtifactFileResponse":{"content":{"application/json":{"schema":{"properties":{"downloadUrl":{"description":"download url of artifact","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","downloadUrl"],"type":"object"}}},"description":"response to head artifact file"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Describe Artifact files

> Get Artifact files

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/files":{"get":{"description":"Get Artifact files","operationId":"GetArtifactFiles","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/sortOrder"},{"$ref":"#/components/parameters/sortField"},{"$ref":"#/components/parameters/searchTerm"},{"$ref":"#/components/parameters/filtersParam"}],"responses":{"200":{"$ref":"#/components/responses/FileDetailResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Describe Artifact files","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"pageNumber":{"description":"Current page number","in":"query","name":"page","schema":{"default":1,"format":"int64","type":"integer"}},"pageSize":{"description":"Number of items per page","in":"query","name":"size","schema":{"default":20,"format":"int64","type":"integer"}},"sortOrder":{"description":"sortOrder","in":"query","name":"sort_order","schema":{"type":"string"}},"sortField":{"description":"sortField","in":"query","name":"sort_field","schema":{"type":"string"}},"searchTerm":{"description":"search Term.","in":"query","name":"search_term","schema":{"type":"string"}},"filtersParam":{"description":"Key-value filters for artifact version. Repeat the parameter once per filter.\nFormat per entry: key:value\nExample: ?filters=architecture:amd64&filters=distribution:ubuntu\n","explode":true,"in":"query","name":"filters","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}},"responses":{"FileDetailResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ListFileDetail"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact files"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ListFileDetail":{"description":"A list of Harness Artifact Files","properties":{"files":{"description":"A list of Harness Artifact Files","items":{"$ref":"#/components/schemas/FileDetail"},"type":"array"},"itemCount":{"description":"The total number of items","format":"int64","type":"integer"},"pageCount":{"description":"The total number of pages","format":"int64","type":"integer"},"pageIndex":{"description":"The current page","format":"int64","type":"integer"},"pageSize":{"description":"The number of items per page","type":"integer"}},"required":["files"],"type":"object"},"FileDetail":{"description":"File Detail","properties":{"checksums":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"downloadCommand":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"size":{"type":"string"}},"required":["name","size","checksums","downloadCommand","createdAt","path"],"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Get Artifact Version Summary

> Get Artifact Version Summary.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/summary":{"get":{"description":"Get Artifact Version Summary.","operationId":"GetArtifactVersionSummary","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/versionPathParam"},{"$ref":"#/components/parameters/digestOptParam"},{"$ref":"#/components/parameters/filtersParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactVersionSummaryResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Get Artifact Version Summary","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"versionPathParam":{"description":"Name of Artifact Version.","in":"path","name":"version","required":true,"schema":{"type":"string"}},"digestOptParam":{"description":"Digest.","in":"query","name":"digest","schema":{"type":"string"}},"filtersParam":{"description":"Key-value filters for artifact version. Repeat the parameter once per filter.\nFormat per entry: key:value\nExample: ?filters=architecture:amd64&filters=distribution:ubuntu\n","explode":true,"in":"query","name":"filters","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}},"responses":{"ArtifactVersionSummaryResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactVersionSummary"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get docker artifact version summary"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactVersionSummary":{"description":"Docker Artifact Version Summary","properties":{"artifactKey":{"additionalProperties":{"type":"string"},"type":"object"},"artifactType":{"$ref":"#/components/schemas/ArtifactType"},"deletedAt":{"description":"Timestamp in milliseconds when the artifact was soft deleted. Null if not deleted.","type":"string"},"firewallMode":{"enum":["ENABLED","QUARANTINE","ALLOW"],"type":"string"},"imageName":{"type":"string"},"imageUUID":{"type":"string"},"isQuarantined":{"type":"boolean"},"lastScannedAt":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageType"},"purl":{"type":"string"},"quarantineReason":{"type":"string"},"registryType":{"$ref":"#/components/schemas/RegistryType"},"registryUUID":{"type":"string"},"scanId":{"type":"string"},"scanStatus":{"enum":["WARN","BLOCKED","ALLOWED"],"type":"string"},"sscaArtifactId":{"type":"string"},"sscaArtifactSourceId":{"type":"string"},"stoExecutionId":{"type":"string"},"stoPipelineId":{"type":"string"},"uuid":{"type":"string"},"version":{"type":"string"}},"required":["imageName","version","packageType","uuid","registryUUID","imageUUID"],"type":"object"},"ArtifactType":{"description":"refers to artifact type","enum":["model","dataset","module","provider"],"type":"string"},"PackageType":{"description":"refers to package","enum":["DOCKER","MAVEN","PYTHON","GENERIC","HELM","NUGET","NPM","RPM","CARGO","COMPOSER","GO","HUGGINGFACE","CONDA","DART","SWIFT","PUPPET","RUBY","CRAN","WOLFI","ALPINE","RAW","HELM_HTTP","DEBIAN","CONAN","TERRAFORM"],"type":"string"},"RegistryType":{"description":"refers to type of registry i.e virtual or upstream","discriminator":{"propertyName":"type"},"enum":["VIRTUAL","UPSTREAM"],"type":"string"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## List Artifact Versions

> Lists all the Artifact Versions.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/{artifact}/versions":{"get":{"description":"Lists all the Artifact Versions.","operationId":"GetAllArtifactVersions","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/artifactPathParam"},{"$ref":"#/components/parameters/artifactTypeParam"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/sortOrder"},{"$ref":"#/components/parameters/sortField"},{"$ref":"#/components/parameters/searchTerm"},{"$ref":"#/components/parameters/deleteFilterParam"}],"responses":{"200":{"$ref":"#/components/responses/ListArtifactVersionResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"List Artifact Versions","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"artifactPathParam":{"description":"Name of the artifact.\n\nThe value depends on whether the name contains a slash (`/`):\n\n- If the artifact name **contains `/`**, append a trailing `/+` at the end.\n  - Example: `mygroup/myartifact/+`\n- If the artifact name **does not contain `/`**, use the plain name.\n  - Example: `myartifact`\n\nThis is used internally to distinguish between namespaced and flat artifact names.\n","in":"path","name":"artifact","required":true,"schema":{"type":"string"}},"artifactTypeParam":{"description":"artifact type.","in":"query","name":"artifact_type","schema":{"enum":["model","dataset","module","provider"],"type":"string"}},"pageNumber":{"description":"Current page number","in":"query","name":"page","schema":{"default":1,"format":"int64","type":"integer"}},"pageSize":{"description":"Number of items per page","in":"query","name":"size","schema":{"default":20,"format":"int64","type":"integer"}},"sortOrder":{"description":"sortOrder","in":"query","name":"sort_order","schema":{"type":"string"}},"sortField":{"description":"sortField","in":"query","name":"sort_field","schema":{"type":"string"}},"searchTerm":{"description":"search Term.","in":"query","name":"search_term","schema":{"type":"string"}},"deleteFilterParam":{"description":"Filter for soft-deleted entities","in":"query","name":"deleted","schema":{"default":"exclude","enum":["exclude","include","only"],"type":"string"}}},"responses":{"ListArtifactVersionResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ListArtifactVersion"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response for list versions of artifact"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ListArtifactVersion":{"description":"A list of Artifact versions","properties":{"artifactVersions":{"description":"A list of Artifact versions","items":{"$ref":"#/components/schemas/ArtifactVersionMetadata"},"type":"array"},"itemCount":{"description":"The total number of items","format":"int64","type":"integer"},"pageCount":{"description":"The total number of pages","format":"int64","type":"integer"},"pageIndex":{"description":"The current page","format":"int64","type":"integer"},"pageSize":{"description":"The number of items per page","type":"integer"}},"required":["artifacts"],"type":"object"},"ArtifactVersionMetadata":{"description":"Artifact Version Metadata","properties":{"artifactKey":{"additionalProperties":{"type":"string"},"type":"object"},"artifactType":{"$ref":"#/components/schemas/ArtifactType"},"deletedAt":{"description":"Timestamp in milliseconds when the artifact was soft deleted. Null if not deleted.","type":"string"},"deploymentMetadata":{"$ref":"#/components/schemas/DeploymentMetadata"},"digestCount":{"format":"int64","type":"integer"},"downloadsCount":{"format":"int64","type":"integer"},"fileCount":{"format":"int64","type":"integer"},"firewallMode":{"enum":["ENABLED","QUARANTINE","ALLOW"],"type":"string"},"isQuarantined":{"type":"boolean"},"lastModified":{"type":"string"},"lastScannedAt":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ArtifactEntityMetadata"},"name":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageType"},"pullCommand":{"type":"string"},"quarantineReason":{"type":"string"},"registryIdentifier":{"type":"string"},"registryPath":{"type":"string"},"registryType":{"$ref":"#/components/schemas/RegistryType"},"registryUUID":{"type":"string"},"scanId":{"type":"string"},"scanStatus":{"enum":["WARN","BLOCKED","ALLOWED"],"type":"string"},"size":{"type":"string"},"uuid":{"type":"string"}},"required":["name","registryIdentifier","latestVersion","registryPath","packageType","uuid","registryUUID"],"type":"object"},"ArtifactType":{"description":"refers to artifact type","enum":["model","dataset","module","provider"],"type":"string"},"DeploymentMetadata":{"properties":{"nonProdEnvCount":{"type":"integer"},"prodEnvCount":{"type":"integer"}},"required":["prodEnvCount","nonProdEnvCount"],"type":"object"},"ArtifactEntityMetadata":{"additionalProperties":true,"description":"Artifact Entity Metadata","type":"object"},"PackageType":{"description":"refers to package","enum":["DOCKER","MAVEN","PYTHON","GENERIC","HELM","NUGET","NPM","RPM","CARGO","COMPOSER","GO","HUGGINGFACE","CONDA","DART","SWIFT","PUPPET","RUBY","CRAN","WOLFI","ALPINE","RAW","HELM_HTTP","DEBIAN","CONAN","TERRAFORM"],"type":"string"},"RegistryType":{"description":"refers to type of registry i.e virtual or upstream","discriminator":{"propertyName":"type"},"enum":["VIRTUAL","UPSTREAM"],"type":"string"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## List Artifact Labels

> List Artifact Labels.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/labels":{"get":{"description":"List Artifact Labels.","operationId":"ListArtifactLabels","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/searchTerm"}],"responses":{"200":{"$ref":"#/components/responses/ListArtifactLabelResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"List Artifact Labels","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"pageNumber":{"description":"Current page number","in":"query","name":"page","schema":{"default":1,"format":"int64","type":"integer"}},"pageSize":{"description":"Number of items per page","in":"query","name":"size","schema":{"default":20,"format":"int64","type":"integer"}},"searchTerm":{"description":"search Term.","in":"query","name":"search_term","schema":{"type":"string"}}},"responses":{"ListArtifactLabelResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ListArtifactLabel"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response for list artifact labels"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ListArtifactLabel":{"description":"A list of Harness Artifact Labels","properties":{"itemCount":{"description":"The total number of items","format":"int64","type":"integer"},"labels":{"items":{"type":"string"},"type":"array"},"pageCount":{"description":"The total number of pages","format":"int64","type":"integer"},"pageIndex":{"description":"The current page","format":"int64","type":"integer"},"pageSize":{"description":"The number of items per page","type":"integer"}},"required":["labels"],"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## Get Artifact Stats

> Get Artifact Stats.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"APIs to get, list artifacts","name":"Artifacts"}],"servers":[{"url":"/api"}],"paths":{"/v1/registry/{registry_ref}/artifact/stats":{"get":{"description":"Get Artifact Stats.","operationId":"GetArtifactStatsForRegistry","parameters":[{"$ref":"#/components/parameters/registryRefPathParam"},{"$ref":"#/components/parameters/fromDateParam"},{"$ref":"#/components/parameters/toDateParam"}],"responses":{"200":{"$ref":"#/components/responses/ArtifactStatsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Get Artifact Stats","tags":["Artifacts"]}}},"components":{"parameters":{"registryRefPathParam":{"description":"Reference to the scope in which the registry exists.\n\nFormat depends on the scope:\n\n- **Account-level**: `account_id/registry_name/+`\n- **Organization-level**: `account_id/org_id/registry_name/+`\n- **Project-level**: `account_id/org_id/project_id/registry_name/+`\n\nThe `/+` suffix is used internally to route scoped requests.\nIt must be included **exactly as shown** in the URL.\n","in":"path","name":"registry_ref","required":true,"schema":{"type":"string"}},"fromDateParam":{"description":"Date. Format - MM/DD/YYYY","in":"query","name":"from","schema":{"type":"string"}},"toDateParam":{"description":"Date. Format - MM/DD/YYYY","in":"query","name":"to","schema":{"type":"string"}}},"responses":{"ArtifactStatsResponse":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ArtifactStats"},"status":{"$ref":"#/components/schemas/Status"}},"required":["status","data"],"type":"object"}}},"description":"response to get artifact stats response"},"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was invalid or malformed"},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Authentication failed or missing credentials"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Access denied due to insufficient permissions"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The requested resource was not found"},"InternalServerError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"An unexpected server error occurred"}},"schemas":{"ArtifactStats":{"description":"Harness Artifact Stats","properties":{"downloadCount":{"format":"int64","type":"integer"},"downloadSize":{"format":"int64","type":"integer"},"totalStorageSize":{"format":"int64","type":"integer"},"uploadSize":{"format":"int64","type":"integer"}},"type":"object"},"Status":{"description":"Request processing status indicator","enum":["SUCCESS","FAILURE","ERROR"],"type":"string"},"Error":{"description":"Standard error response with code, message and optional details","properties":{"code":{"description":"The HTTP error code","type":"string"},"details":{"description":"Additional context and details about the error.\nMay include field-specific validation errors or debugging information.\n","type":"object"},"message":{"description":"Human-readable error message explaining what went wrong","type":"string"}},"required":["code","message"],"type":"object"}}}}
```
