> 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/registry-v3-versions.md).

# Registry V3 Versions

V3 versions endpoints

## List versions of packages

> Lists versions of packages

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions":{"get":{"description":"Lists versions of packages","operationId":"ListVersionsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/OrgIdentifierV3"},{"$ref":"#/components/parameters/ProjectIdentifierV3"},{"$ref":"#/components/parameters/RegistryIdListOptionalParamV3"},{"$ref":"#/components/parameters/PackageIdListOptionalParamV3"},{"$ref":"#/components/parameters/PackageTypeListParamV3"},{"$ref":"#/components/parameters/DeleteFilterParamV3"},{"$ref":"#/components/parameters/MetadataFilterListParamV3"},{"$ref":"#/components/parameters/PageNumberV3"},{"$ref":"#/components/parameters/PageSizeV3"},{"$ref":"#/components/parameters/SortV3"},{"$ref":"#/components/parameters/SearchTermV3"},{"$ref":"#/components/parameters/IncludeMetaParamV3"},{"$ref":"#/components/parameters/UploadedByParamV3"}],"responses":{"200":{"$ref":"#/components/responses/ListVersionResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"List versions of packages","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"OrgIdentifierV3":{"description":"Unique identifier for the organization within the account.\n\nExample: `default` or `engineering_org`\n","in":"query","name":"org_identifier","schema":{"type":"string"}},"ProjectIdentifierV3":{"description":"Unique identifier for the project within the organization.\n\nExample: `my_project` or `frontend_services`\n","in":"query","name":"project_identifier","schema":{"type":"string"}},"RegistryIdListOptionalParamV3":{"description":"Unique id for the registry.\nNote: This parameter should have one id if package query param is provided\n","in":"query","name":"registry_ids","schema":{"items":{"format":"uuid","type":"string"},"type":"array"}},"PackageIdListOptionalParamV3":{"description":"Unique id for the package.\n","in":"query","name":"package_ids","schema":{"items":{"format":"uuid","type":"string"},"type":"array"}},"PackageTypeListParamV3":{"description":"Registry Package Type","in":"query","name":"package_types","schema":{"items":{"type":"string"},"type":"array"}},"DeleteFilterParamV3":{"in":"query","name":"deleted","schema":{"default":"exclude","enum":["exclude","include","only"],"type":"string"}},"MetadataFilterListParamV3":{"description":"Filter by metadata using key:value format","in":"query","name":"metadata","schema":{"items":{"type":"string"},"type":"array"}},"PageNumberV3":{"description":"The page number for pagination (0-indexed).\n\nUsed to navigate through large result sets. Combined with `size` parameter\nto control which subset of results to return.\n\nExample: `page=0` returns the first page, `page=1` returns the second page\n","in":"query","name":"page","schema":{"default":0,"format":"int64","type":"integer"}},"PageSizeV3":{"description":"The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n","in":"query","name":"size","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}},"SortV3":{"description":"The sort for the results.\nAccepted pattern: `sort_field:sort_order` where sort_field is the field name\nand sort_order is either `asc` or `desc`.\n\nExamples: `name:asc`, `modifiedAt:desc`\n","in":"query","name":"sort","schema":{"type":"string"}},"SearchTermV3":{"description":"Search term for filtering results.\n\nExample: `search_term=prod` might match keys like \"production\", \"prod-env\", etc.\n","in":"query","name":"search_term","schema":{"type":"string"}},"IncludeMetaParamV3":{"description":"When `true`, include the `meta` object (e.g. active/deleted counts)\nin the response.\n","in":"query","name":"include_meta","schema":{"default":false,"type":"boolean"}},"UploadedByParamV3":{"description":"Filter by uploaded by user ID.\n\nExample: `uploaded_by=123`\n","in":"query","name":"uploaded_by","schema":{"items":{"format":"int64","type":"integer"},"type":"array"}}},"responses":{"ListVersionResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListVersionsResponseBodyV3"}}},"description":"response for list versions"}},"schemas":{"ListVersionsResponseBodyV3":{"allOf":[{"$ref":"#/components/schemas/PageInfoV3"},{"properties":{"items":{"items":{"$ref":"#/components/schemas/VersionV3"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaV3"}},"required":["items"],"type":"object"}]},"PageInfoV3":{"description":"Pagination metadata.\n- `page` selects which page of results to return (0 = first page).\n- `size` controls how many items are returned per page.\n- `hasMore` is true if more results exist after this page.\n","properties":{"hasMore":{"description":"True if more results exist after this page.","type":"boolean"},"page":{"description":"The current page (0-indexed)","format":"int64","type":"integer"},"size":{"description":"Number of items per page","format":"int64","type":"integer"}},"required":["page","size","hasMore"],"type":"object"},"VersionV3":{"description":"Version metadata","properties":{"artifactKey":{"additionalProperties":true,"type":"object"},"createdAt":{"$ref":"#/components/schemas/ModifiedAtMsV3"},"createdBy":{"$ref":"#/components/schemas/UserInfoV3"},"deletedAt":{"$ref":"#/components/schemas/DeletedAtMsV3"},"deletedBy":{"$ref":"#/components/schemas/UserInfoV3"},"id":{"format":"uuid","type":"string"},"isQuarantined":{"type":"boolean"},"metadata":{"$ref":"#/components/schemas/ResourceMetadataV3"},"modifiedAt":{"$ref":"#/components/schemas/ModifiedAtMsV3"},"modifiedBy":{"$ref":"#/components/schemas/UserInfoV3"},"name":{"type":"string"},"orgIdentifier":{"$ref":"#/components/schemas/orgIdentifier"},"packageId":{"format":"uuid","type":"string"},"packageKind":{"$ref":"#/components/schemas/PackageKindV3"},"packageName":{"type":"string"},"packageType":{"$ref":"#/components/schemas/PackageTypeV3"},"projectIdentifier":{"$ref":"#/components/schemas/projectIdentifier"},"pullCommand":{"type":"string"},"pushedBy":{"$ref":"#/components/schemas/UserInfoV3"},"quarantineReason":{"type":"string"},"registryId":{"format":"uuid","type":"string"},"registryName":{"type":"string"},"registryType":{"$ref":"#/components/schemas/RegistryTypeV3"}},"required":["id","name","packageType","registryId","registryName","packageId","packageName","registryType"],"type":"object"},"ModifiedAtMsV3":{"description":"Unix timestamp in milliseconds when the resource was last modified","format":"int64","nullable":true,"type":"integer"},"UserInfoV3":{"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"},"DeletedAtMsV3":{"description":"Unix timestamp in milliseconds when the resource was soft-deleted","format":"int64","nullable":true,"type":"integer"},"ResourceMetadataV3":{"additionalProperties":true,"description":"Resource Metadata","type":"object"},"orgIdentifier":{"type":"string"},"PackageKindV3":{"description":"refers to package kind which is being used in huggingface packages for model, dataset and terraform packages for module, provider","type":"string"},"PackageTypeV3":{"description":"Package type. Known values include: DOCKER, MAVEN, PYTHON, GENERIC, HELM, HELM_HTTP, NUGET, NPM, RPM, CARGO, COMPOSER, GO, HUGGINGFACE, CONDA, DART, SWIFT, PUPPET, RUBY, RAW, DEBIAN, CONAN, TERRAFORM, CRAN, WOLFI, ALPINE. This field is extensible; clients must handle unknown values.\n","type":"string"},"projectIdentifier":{"type":"string"},"RegistryTypeV3":{"description":"refers to type of registry i.e virtual or upstream","enum":["VIRTUAL","UPSTREAM"],"type":"string"},"MetaV3":{"description":"Metadata about the list response","properties":{"activeCount":{"description":"Count of active (non-deleted) entities","format":"int64","type":"integer"},"deletedCount":{"description":"Count of soft-deleted entities","format":"int64","type":"integer"}},"required":["activeCount","deletedCount"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## List Conan Recipe Revisions

> List finalized Conan recipe revisions for a version.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions":{"get":{"description":"List finalized Conan recipe revisions for a version.","operationId":"ListConanRecipeRevisionsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/PageNumberV3"},{"$ref":"#/components/parameters/PageSizeV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanRecipeRevisionsResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"List Conan Recipe Revisions","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"PageNumberV3":{"description":"The page number for pagination (0-indexed).\n\nUsed to navigate through large result sets. Combined with `size` parameter\nto control which subset of results to return.\n\nExample: `page=0` returns the first page, `page=1` returns the second page\n","in":"query","name":"page","schema":{"default":0,"format":"int64","type":"integer"}},"PageSizeV3":{"description":"The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n","in":"query","name":"size","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}},"responses":{"ConanRecipeRevisionsResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConanRecipeRevisionsResponseBodyV3"}}},"description":"Response to list Conan recipe revisions for a version"}},"schemas":{"ListConanRecipeRevisionsResponseBodyV3":{"allOf":[{"$ref":"#/components/schemas/PageInfoV3"},{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConanRecipeRevisionDetailV3"},"type":"array"}},"required":["items"],"type":"object"}],"description":"The recipe revisions (RREVs) of a Conan version."},"PageInfoV3":{"description":"Pagination metadata.\n- `page` selects which page of results to return (0 = first page).\n- `size` controls how many items are returned per page.\n- `hasMore` is true if more results exist after this page.\n","properties":{"hasMore":{"description":"True if more results exist after this page.","type":"boolean"},"page":{"description":"The current page (0-indexed)","format":"int64","type":"integer"},"size":{"description":"Number of items per page","format":"int64","type":"integer"}},"required":["page","size","hasMore"],"type":"object"},"ConanRecipeRevisionDetailV3":{"description":"A Conan recipe revision (RREV).","properties":{"downloadCount":{"description":"Total downloads across every finalized package revision under this revision.","format":"int64","type":"integer"},"id":{"description":"The stable UUID of the recipe revision row.","format":"uuid","type":"string"},"lastDownloadedAt":{"description":"Most recent download time (Unix milliseconds), if any.","format":"int64","nullable":true,"type":"integer"},"lastPushedAt":{"description":"Finalization time (Unix milliseconds).","format":"int64","nullable":true,"type":"integer"},"packageCount":{"description":"Number of packages with at least one finalized package revision.","format":"int64","type":"integer"},"recipeRevision":{"description":"The recipe revision (RREV) hash.","type":"string"},"size":{"description":"Recipe files plus all package binaries under this revision.","type":"string"}},"required":["id","recipeRevision"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Get Conan Recipe Revision Detail

> Get a Conan recipe revision (RREV) detail.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions/{recipe_revision_id}/details":{"get":{"description":"Get a Conan recipe revision (RREV) detail.","operationId":"GetConanRecipeRevisionDetailV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/ConanRecipeRevisionPathParamV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanRecipeRevisionDetailResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Get Conan Recipe Revision Detail","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"ConanRecipeRevisionPathParamV3":{"description":"The stable UUID of the recipe revision (RREV) row.","in":"path","name":"recipe_revision_id","required":true,"schema":{"type":"string"}}},"responses":{"ConanRecipeRevisionDetailResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ConanRecipeRevisionDetailV3"}},"required":["data"],"type":"object"}}},"description":"Response to get a Conan recipe revision detail"}},"schemas":{"ConanRecipeRevisionDetailV3":{"description":"A Conan recipe revision (RREV).","properties":{"downloadCount":{"description":"Total downloads across every finalized package revision under this revision.","format":"int64","type":"integer"},"id":{"description":"The stable UUID of the recipe revision row.","format":"uuid","type":"string"},"lastDownloadedAt":{"description":"Most recent download time (Unix milliseconds), if any.","format":"int64","nullable":true,"type":"integer"},"lastPushedAt":{"description":"Finalization time (Unix milliseconds).","format":"int64","nullable":true,"type":"integer"},"packageCount":{"description":"Number of packages with at least one finalized package revision.","format":"int64","type":"integer"},"recipeRevision":{"description":"The recipe revision (RREV) hash.","type":"string"},"size":{"description":"Recipe files plus all package binaries under this revision.","type":"string"}},"required":["id","recipeRevision"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## List Conan Packages of a Recipe Revision

> List the packages (PKGIDs) under a Conan recipe revision.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions/{recipe_revision_id}/packages":{"get":{"description":"List the packages (PKGIDs) under a Conan recipe revision.","operationId":"ListConanPackagesV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/ConanRecipeRevisionPathParamV3"},{"$ref":"#/components/parameters/PageNumberV3"},{"$ref":"#/components/parameters/PageSizeV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanPackagesResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"List Conan Packages of a Recipe Revision","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"ConanRecipeRevisionPathParamV3":{"description":"The stable UUID of the recipe revision (RREV) row.","in":"path","name":"recipe_revision_id","required":true,"schema":{"type":"string"}},"PageNumberV3":{"description":"The page number for pagination (0-indexed).\n\nUsed to navigate through large result sets. Combined with `size` parameter\nto control which subset of results to return.\n\nExample: `page=0` returns the first page, `page=1` returns the second page\n","in":"query","name":"page","schema":{"default":0,"format":"int64","type":"integer"}},"PageSizeV3":{"description":"The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n","in":"query","name":"size","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}},"responses":{"ConanPackagesResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConanPackagesResponseBodyV3"}}},"description":"Response to list Conan packages of a recipe revision"}},"schemas":{"ListConanPackagesResponseBodyV3":{"allOf":[{"$ref":"#/components/schemas/PageInfoV3"},{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConanPackageMetadataV3"},"type":"array"}},"required":["items"],"type":"object"}],"description":"The packages (PKGIDs) of a Conan recipe revision."},"PageInfoV3":{"description":"Pagination metadata.\n- `page` selects which page of results to return (0 = first page).\n- `size` controls how many items are returned per page.\n- `hasMore` is true if more results exist after this page.\n","properties":{"hasMore":{"description":"True if more results exist after this page.","type":"boolean"},"page":{"description":"The current page (0-indexed)","format":"int64","type":"integer"},"size":{"description":"Number of items per page","format":"int64","type":"integer"}},"required":["page","size","hasMore"],"type":"object"},"ConanPackageMetadataV3":{"description":"A Conan package (PKGID).","properties":{"id":{"description":"The stable UUID of the package row.","format":"uuid","type":"string"},"latestPackageRevision":{"description":"The newest finalized package revision hash.","type":"string"},"options":{"additionalProperties":true,"description":"Build options parsed from conaninfo.txt.","type":"object"},"packageId":{"description":"The package id hash.","type":"string"},"settings":{"additionalProperties":true,"description":"Build settings parsed from conaninfo.txt.","type":"object"},"size":{"description":"Size of the latest finalized package revision.","type":"string"}},"required":["id","packageId"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Get Conan Package Detail

> Get a Conan package (PKGID) detail with its package revisions.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions/{recipe_revision_id}/packages/{package_id}/details":{"get":{"description":"Get a Conan package (PKGID) detail with its package revisions.","operationId":"GetConanPackageDetailV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/ConanRecipeRevisionPathParamV3"},{"$ref":"#/components/parameters/ConanPackageIdPathParamV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanPackageDetailResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Get Conan Package Detail","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"ConanRecipeRevisionPathParamV3":{"description":"The stable UUID of the recipe revision (RREV) row.","in":"path","name":"recipe_revision_id","required":true,"schema":{"type":"string"}},"ConanPackageIdPathParamV3":{"description":"The stable UUID of the package (PKGID) row.","in":"path","name":"package_id","required":true,"schema":{"type":"string"}}},"responses":{"ConanPackageDetailResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ConanPackageDetailV3"}},"required":["data"],"type":"object"}}},"description":"Response to get a Conan package detail"}},"schemas":{"ConanPackageDetailV3":{"description":"A Conan package (PKGID) detail. The package revisions are listed via the package-revisions endpoint.","properties":{"downloadCount":{"description":"Total downloads across every finalized package revision of this package.","format":"int64","type":"integer"},"id":{"description":"The stable UUID of the package row.","format":"uuid","type":"string"},"lastDownloadedAt":{"description":"Most recent download time (Unix milliseconds), if any.","format":"int64","nullable":true,"type":"integer"},"options":{"additionalProperties":true,"description":"Build options parsed from conaninfo.txt.","type":"object"},"packageId":{"type":"string"},"packageRevisionCount":{"description":"Number of finalized package revisions (PREVs) of this package.","format":"int64","type":"integer"},"recipeRevision":{"type":"string"},"settings":{"additionalProperties":true,"description":"Build settings parsed from conaninfo.txt.","type":"object"},"size":{"type":"string"}},"required":["id","packageId"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## List Conan Package Revisions of a Package

> List the package revisions (PREVs) under a Conan package.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions/{recipe_revision_id}/packages/{package_id}/package-revisions":{"get":{"description":"List the package revisions (PREVs) under a Conan package.","operationId":"ListConanPackageRevisionsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/ConanRecipeRevisionPathParamV3"},{"$ref":"#/components/parameters/ConanPackageIdPathParamV3"},{"$ref":"#/components/parameters/PageNumberV3"},{"$ref":"#/components/parameters/PageSizeV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanPackageRevisionsResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"List Conan Package Revisions of a Package","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"ConanRecipeRevisionPathParamV3":{"description":"The stable UUID of the recipe revision (RREV) row.","in":"path","name":"recipe_revision_id","required":true,"schema":{"type":"string"}},"ConanPackageIdPathParamV3":{"description":"The stable UUID of the package (PKGID) row.","in":"path","name":"package_id","required":true,"schema":{"type":"string"}},"PageNumberV3":{"description":"The page number for pagination (0-indexed).\n\nUsed to navigate through large result sets. Combined with `size` parameter\nto control which subset of results to return.\n\nExample: `page=0` returns the first page, `page=1` returns the second page\n","in":"query","name":"page","schema":{"default":0,"format":"int64","type":"integer"}},"PageSizeV3":{"description":"The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n","in":"query","name":"size","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}},"responses":{"ConanPackageRevisionsResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConanPackageRevisionsResponseBodyV3"}}},"description":"Response to list Conan package revisions of a package"}},"schemas":{"ListConanPackageRevisionsResponseBodyV3":{"allOf":[{"$ref":"#/components/schemas/PageInfoV3"},{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConanPackageRevisionDetailV3"},"type":"array"}},"required":["items"],"type":"object"}],"description":"The package revisions (PREVs) of a Conan package."},"PageInfoV3":{"description":"Pagination metadata.\n- `page` selects which page of results to return (0 = first page).\n- `size` controls how many items are returned per page.\n- `hasMore` is true if more results exist after this page.\n","properties":{"hasMore":{"description":"True if more results exist after this page.","type":"boolean"},"page":{"description":"The current page (0-indexed)","format":"int64","type":"integer"},"size":{"description":"Number of items per page","format":"int64","type":"integer"}},"required":["page","size","hasMore"],"type":"object"},"ConanPackageRevisionDetailV3":{"description":"A Conan package revision (PREV).","properties":{"createdAt":{"$ref":"#/components/schemas/CreatedAtMsV3"},"downloadCount":{"format":"int64","type":"integer"},"id":{"description":"The stable UUID of the package revision row.","format":"uuid","type":"string"},"lastDownloadedAt":{"description":"Last-downloaded time (Unix milliseconds), if any.","format":"int64","nullable":true,"type":"integer"},"packageRevision":{"description":"The package revision (PREV) hash.","type":"string"},"size":{"type":"string"}},"required":["id","packageRevision"],"type":"object"},"CreatedAtMsV3":{"description":"Unix timestamp in milliseconds when the resource was created","format":"int64","nullable":true,"type":"integer"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Get Conan Package Revision Detail

> Get a Conan package revision (PREV) detail.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/conan/recipe-revisions/{recipe_revision_id}/packages/{package_id}/package-revisions/{package_revision_id}/details":{"get":{"description":"Get a Conan package revision (PREV) detail.","operationId":"GetConanPackageRevisionDetailV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"$ref":"#/components/parameters/ConanRecipeRevisionPathParamV3"},{"$ref":"#/components/parameters/ConanPackageIdPathParamV3"},{"$ref":"#/components/parameters/ConanPackageRevisionPathParamV3"}],"responses":{"200":{"$ref":"#/components/responses/ConanPackageRevisionDetailResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Get Conan Package Revision Detail","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"ConanRecipeRevisionPathParamV3":{"description":"The stable UUID of the recipe revision (RREV) row.","in":"path","name":"recipe_revision_id","required":true,"schema":{"type":"string"}},"ConanPackageIdPathParamV3":{"description":"The stable UUID of the package (PKGID) row.","in":"path","name":"package_id","required":true,"schema":{"type":"string"}},"ConanPackageRevisionPathParamV3":{"description":"The stable UUID of the package revision (PREV) row.","in":"path","name":"package_revision_id","required":true,"schema":{"type":"string"}}},"responses":{"ConanPackageRevisionDetailResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/ConanPackageRevisionDetailV3"}},"required":["data"],"type":"object"}}},"description":"Response to get a Conan package revision detail"}},"schemas":{"ConanPackageRevisionDetailV3":{"description":"A Conan package revision (PREV).","properties":{"createdAt":{"$ref":"#/components/schemas/CreatedAtMsV3"},"downloadCount":{"format":"int64","type":"integer"},"id":{"description":"The stable UUID of the package revision row.","format":"uuid","type":"string"},"lastDownloadedAt":{"description":"Last-downloaded time (Unix milliseconds), if any.","format":"int64","nullable":true,"type":"integer"},"packageRevision":{"description":"The package revision (PREV) hash.","type":"string"},"size":{"type":"string"}},"required":["id","packageRevision"],"type":"object"},"CreatedAtMsV3":{"description":"Unix timestamp in milliseconds when the resource was created","format":"int64","nullable":true,"type":"integer"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## List deployments for a version

> List Harness CD deployments for a specific version. Returns the environments and services that are actively running this version, together with aggregate prod/non-prod counts in \`meta\`. For OCI-based package types (DOCKER, HELM) the artifact is identified by \`image:tag\` — supply \`package\_tag\` or an empty response is returned. For all other package types the artifact is identified by \`package\_name/version\_name\`.<br>

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/deployments":{"get":{"description":"List Harness CD deployments for a specific version. Returns the environments and services that are actively running this version, together with aggregate prod/non-prod counts in `meta`. For OCI-based package types (DOCKER, HELM) the artifact is identified by `image:tag` — supply `package_tag` or an empty response is returned. For all other package types the artifact is identified by `package_name/version_name`.\n","operationId":"ListVersionDeploymentsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"},{"description":"Filter by environment type. Allowed values: `PRODUCTION`, `PRE_PRODUCTION`.\n","in":"query","name":"env_type","schema":{"enum":["PRODUCTION","PRE_PRODUCTION"],"type":"string"}},{"$ref":"#/components/parameters/PageNumberV3"},{"$ref":"#/components/parameters/PageSizeV3"},{"$ref":"#/components/parameters/SortV3"},{"$ref":"#/components/parameters/SearchTermV3"},{"description":"Tag to use when identifying the artifact in CD. Currently used for Docker images: provide the tag (e.g. `latest`) so the artifact is resolved as `image:tag`. For OCI-based package types (DOCKER, HELM), if this parameter is omitted no deployment data is returned.\n","in":"query","name":"package_tag","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/ListVersionDeploymentsResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"List deployments for a version","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}},"PageNumberV3":{"description":"The page number for pagination (0-indexed).\n\nUsed to navigate through large result sets. Combined with `size` parameter\nto control which subset of results to return.\n\nExample: `page=0` returns the first page, `page=1` returns the second page\n","in":"query","name":"page","schema":{"default":0,"format":"int64","type":"integer"}},"PageSizeV3":{"description":"The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n","in":"query","name":"size","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}},"SortV3":{"description":"The sort for the results.\nAccepted pattern: `sort_field:sort_order` where sort_field is the field name\nand sort_order is either `asc` or `desc`.\n\nExamples: `name:asc`, `modifiedAt:desc`\n","in":"query","name":"sort","schema":{"type":"string"}},"SearchTermV3":{"description":"Search term for filtering results.\n\nExample: `search_term=prod` might match keys like \"production\", \"prod-env\", etc.\n","in":"query","name":"search_term","schema":{"type":"string"}}},"responses":{"ListVersionDeploymentsResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListVersionDeploymentsResponseBodyV3"}}},"description":"Paginated list of Harness CD deployments for a version"}},"schemas":{"ListVersionDeploymentsResponseBodyV3":{"allOf":[{"$ref":"#/components/schemas/PageInfoV3"},{"properties":{"items":{"description":"List of deployment records.","items":{"$ref":"#/components/schemas/VersionDeploymentV3"},"type":"array"},"meta":{"$ref":"#/components/schemas/DeploymentMetadataV3"}},"required":["items"],"type":"object"}]},"PageInfoV3":{"description":"Pagination metadata.\n- `page` selects which page of results to return (0 = first page).\n- `size` controls how many items are returned per page.\n- `hasMore` is true if more results exist after this page.\n","properties":{"hasMore":{"description":"True if more results exist after this page.","type":"boolean"},"page":{"description":"The current page (0-indexed)","format":"int64","type":"integer"},"size":{"description":"Number of items per page","format":"int64","type":"integer"}},"required":["page","size","hasMore"],"type":"object"},"VersionDeploymentV3":{"description":"A single Harness CD deployment record for a version.","properties":{"envIdentifier":{"type":"string"},"envName":{"type":"string"},"envType":{"description":"Environment type. Allowed values: `PRODUCTION`, `PRE_PRODUCTION`.\n","enum":["PRODUCTION","PRE_PRODUCTION"],"type":"string"},"infraIdentifier":{"type":"string"},"infraName":{"type":"string"},"instanceCount":{"description":"Number of running instances for this service + environment combination.","format":"int32","type":"integer"},"lastDeployedAt":{"description":"Unix timestamp in milliseconds of the last deployment.","format":"int64","nullable":true,"type":"integer"},"lastDeployedBy":{"$ref":"#/components/schemas/UserInfoV3"},"orgIdentifier":{"type":"string"},"pipelineExecutionId":{"type":"string"},"pipelineExecutionName":{"type":"string"},"projectIdentifier":{"type":"string"},"serviceIdentifier":{"type":"string"},"serviceName":{"type":"string"}},"required":["orgIdentifier","projectIdentifier","serviceIdentifier","serviceName","envIdentifier","envName","envType","instanceCount"],"type":"object"},"UserInfoV3":{"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"},"DeploymentMetadataV3":{"properties":{"nonProdEnvCount":{"type":"integer"},"prodEnvCount":{"type":"integer"}},"required":["prodEnvCount","nonProdEnvCount"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Get Version Metadata

> Retrieves all metadata for a version.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/metadata":{"get":{"description":"Retrieves all metadata for a version.","operationId":"GetVersionMetadataV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"}],"responses":{"200":{"$ref":"#/components/responses/MetadataResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Get Version Metadata","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}}},"responses":{"MetadataResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Array of metadata entries","items":{"$ref":"#/components/schemas/MetadataV3"},"type":"array"}},"required":["data"],"type":"object"}}},"description":"Response containing all metadata entries for the requested entity"}},"schemas":{"MetadataV3":{"description":"Metadata entry","properties":{"id":{"description":"Unique identifier for this metadata entry","format":"uuid","type":"string"},"key":{"description":"The metadata key name","type":"string"},"type":{"$ref":"#/components/schemas/MetadataTypeV3"},"value":{"description":"The metadata value","type":"string"}},"required":["id","key","value","type"],"type":"object"},"MetadataTypeV3":{"description":"Indicates if metadata was manually added (MANUAL) or system-generated (AUTO)","enum":["MANUAL","AUTO"],"type":"string"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Upsert Version Metadata

> Creates or overwrites metadata for a version.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/metadata":{"post":{"description":"Creates or overwrites metadata for a version.","operationId":"UpsertVersionMetadataV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"}],"requestBody":{"$ref":"#/components/requestBodies/MetadataRequestV3"},"responses":{"200":{"$ref":"#/components/responses/MetadataResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Upsert Version Metadata","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}}},"requestBodies":{"MetadataRequestV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataInputV3"}}},"description":"Request body containing metadata key-value pairs to add or update"}},"schemas":{"MetadataInputV3":{"description":"Request payload containing metadata key-value pairs to add or update.\n","properties":{"metadata":{"description":"Array of metadata key-value pairs","items":{"$ref":"#/components/schemas/MetadataItemInputV3"},"maxItems":50,"minItems":1,"type":"array"}},"required":["metadata"],"type":"object"},"MetadataItemInputV3":{"description":"Metadata key-value pair for create/update operations","properties":{"key":{"description":"The metadata key name (case-sensitive)","maxLength":128,"minLength":1,"type":"string"},"value":{"description":"The metadata value","maxLength":256,"minLength":1,"type":"string"}},"required":["key","value"],"type":"object"},"MetadataV3":{"description":"Metadata entry","properties":{"id":{"description":"Unique identifier for this metadata entry","format":"uuid","type":"string"},"key":{"description":"The metadata key name","type":"string"},"type":{"$ref":"#/components/schemas/MetadataTypeV3"},"value":{"description":"The metadata value","type":"string"}},"required":["id","key","value","type"],"type":"object"},"MetadataTypeV3":{"description":"Indicates if metadata was manually added (MANUAL) or system-generated (AUTO)","enum":["MANUAL","AUTO"],"type":"string"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}},"responses":{"MetadataResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Array of metadata entries","items":{"$ref":"#/components/schemas/MetadataV3"},"type":"array"}},"required":["data"],"type":"object"}}},"description":"Response containing all metadata entries for the requested entity"}}}}
```

## Replace Version Metadata

> Replaces all metadata for a version.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/metadata":{"put":{"description":"Replaces all metadata for a version.","operationId":"SaveVersionMetadataV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"}],"requestBody":{"$ref":"#/components/requestBodies/MetadataRequestV3"},"responses":{"200":{"$ref":"#/components/responses/MetadataResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Replace Version Metadata","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}}},"requestBodies":{"MetadataRequestV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataInputV3"}}},"description":"Request body containing metadata key-value pairs to add or update"}},"schemas":{"MetadataInputV3":{"description":"Request payload containing metadata key-value pairs to add or update.\n","properties":{"metadata":{"description":"Array of metadata key-value pairs","items":{"$ref":"#/components/schemas/MetadataItemInputV3"},"maxItems":50,"minItems":1,"type":"array"}},"required":["metadata"],"type":"object"},"MetadataItemInputV3":{"description":"Metadata key-value pair for create/update operations","properties":{"key":{"description":"The metadata key name (case-sensitive)","maxLength":128,"minLength":1,"type":"string"},"value":{"description":"The metadata value","maxLength":256,"minLength":1,"type":"string"}},"required":["key","value"],"type":"object"},"MetadataV3":{"description":"Metadata entry","properties":{"id":{"description":"Unique identifier for this metadata entry","format":"uuid","type":"string"},"key":{"description":"The metadata key name","type":"string"},"type":{"$ref":"#/components/schemas/MetadataTypeV3"},"value":{"description":"The metadata value","type":"string"}},"required":["id","key","value","type"],"type":"object"},"MetadataTypeV3":{"description":"Indicates if metadata was manually added (MANUAL) or system-generated (AUTO)","enum":["MANUAL","AUTO"],"type":"string"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}},"responses":{"MetadataResponseV3":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Array of metadata entries","items":{"$ref":"#/components/schemas/MetadataV3"},"type":"array"}},"required":["data"],"type":"object"}}},"description":"Response containing all metadata entries for the requested entity"}}}}
```

## Add tags to version of package

> Add tags to version of package. Currently supported for only OCI package.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/{id}/tags":{"post":{"description":"Add tags to version of package. Currently supported for only OCI package.","operationId":"AddVersionTagsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/IdPathParamV3"}],"requestBody":{"$ref":"#/components/requestBodies/AddTagsRequestV3"},"responses":{"204":{"description":"Tags added successfully"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Add tags to version of package","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"IdPathParamV3":{"in":"path","name":"id","required":true,"schema":{"type":"string"}}},"requestBodies":{"AddTagsRequestV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTagsV3"}}},"description":"request to add tags to a version of package"}},"schemas":{"AddTagsV3":{"properties":{"tags":{"items":{"type":"string"},"type":"array"}},"required":["tags"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}}}}
```

## Rebuild metadata for all versions in a registry

> Trigger metadata rebuild for all versions in a registry

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/rebuild-metadata":{"post":{"description":"Trigger metadata rebuild for all versions in a registry","operationId":"RebuildVersionMetadataV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RebuildVersionMetadataRequestV3"}}},"description":"Request body containing registry ID to rebuild metadata","required":true},"responses":{"202":{"$ref":"#/components/responses/RebuildVersionMetadataAcceptedV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Rebuild metadata for all versions in a registry","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}}},"schemas":{"RebuildVersionMetadataRequestV3":{"description":"Request to rebuild metadata for all versions in a registry","properties":{"registryId":{"description":"UUID of the registry to rebuild metadata for","type":"string"}},"required":["registryId"],"type":"object"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}},"responses":{"RebuildVersionMetadataAcceptedV3":{"description":"Rebuild metadata request accepted for processing"}}}}
```

## Get statistics for multiple versions

> Get statistics (deploymentMetadata, downloadCount, fileCount, scanStatus, scanID, size, artifactKey) for a list of versions by their UUIDs.

```json
{"openapi":"3.0.0","info":{"title":"Harness Artifact Registry API","version":"1.0.0"},"tags":[{"description":"V3 versions endpoints","name":"Registry V3 - Versions"}],"servers":[{"url":"/api"}],"paths":{"/v3/versions/stats":{"post":{"description":"Get statistics (deploymentMetadata, downloadCount, fileCount, scanStatus, scanID, size, artifactKey) for a list of versions by their UUIDs.","operationId":"GetVersionsStatsV3","parameters":[{"$ref":"#/components/parameters/AccountIdentifierV3"},{"$ref":"#/components/parameters/OrgIdentifierV3"},{"$ref":"#/components/parameters/ProjectIdentifierV3"}],"requestBody":{"$ref":"#/components/requestBodies/VersionsStatsRequestV3"},"responses":{"200":{"$ref":"#/components/responses/VersionsStatsResponseV3"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorV3"}}},"description":"Error response."}},"summary":"Get statistics for multiple versions","tags":["Registry V3 - Versions"]}}},"components":{"parameters":{"AccountIdentifierV3":{"description":"Unique identifier for the Harness account.\n","in":"query","name":"account_identifier","required":true,"schema":{"type":"string"}},"OrgIdentifierV3":{"description":"Unique identifier for the organization within the account.\n\nExample: `default` or `engineering_org`\n","in":"query","name":"org_identifier","schema":{"type":"string"}},"ProjectIdentifierV3":{"description":"Unique identifier for the project within the organization.\n\nExample: `my_project` or `frontend_services`\n","in":"query","name":"project_identifier","schema":{"type":"string"}}},"requestBodies":{"VersionsStatsRequestV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionsStatsRequestInputV3"}}},"description":"Request body containing list of version UUIDs to fetch stats for","required":true}},"schemas":{"VersionsStatsRequestInputV3":{"description":"Request input for fetching version statistics","properties":{"versionIds":{"description":"List of version UUIDs to fetch statistics for","items":{"format":"uuid","type":"string"},"maxItems":100,"type":"array"}},"required":["versionIds"],"type":"object"},"VersionsStatsResponseBodyV3":{"description":"Response body containing version statistics","properties":{"items":{"description":"List of version statistics","items":{"$ref":"#/components/schemas/VersionStatsV3"},"type":"array"}},"required":["items"],"type":"object"},"VersionStatsV3":{"description":"Statistics for a single version","properties":{"deploymentMetadata":{"$ref":"#/components/schemas/DeploymentMetadataV3"},"digestCount":{"description":"Number of digests/manifests in the version (for OCI artifacts with manifest lists)","type":"integer"},"downloadCount":{"description":"Total download count for the version","format":"int64","type":"integer"},"fileCount":{"description":"Number of files in the version","type":"integer"},"firewallMode":{"$ref":"#/components/schemas/FirewallModeV3"},"id":{"description":"Version UUID","format":"uuid","type":"string"},"lastScannedAt":{"type":"string"},"scanID":{"description":"Scan ID for the version","format":"uuid","type":"string"},"scanStatus":{"$ref":"#/components/schemas/ScanStatusV3"},"size":{"description":"Total size of the version (human-readable format)","type":"string"}},"required":["id"],"type":"object"},"DeploymentMetadataV3":{"properties":{"nonProdEnvCount":{"type":"integer"},"prodEnvCount":{"type":"integer"}},"required":["prodEnvCount","nonProdEnvCount"],"type":"object"},"FirewallModeV3":{"description":"Firewall mode","enum":["ENABLED","QUARANTINE","ALLOW"],"type":"string"},"ScanStatusV3":{"description":"Status of an artifact scan evaluation.","enum":["ALLOWED","BLOCKED","WARN","UNKNOWN"],"type":"string"},"ErrorV3":{"description":"An error response","properties":{"error":{"$ref":"#/components/schemas/ApiErrorsV3"}},"required":["error"],"type":"object"},"ApiErrorsV3":{"properties":{"code":{"description":"For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.","maxLength":5000,"type":"string"},"message":{"description":"A human-readable message providing more details about the error. These messages can be shown to users.","maxLength":40000,"type":"string"},"param":{"description":"If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field.","maxLength":5000,"type":"string"},"type":{"description":"The type of error returned.","enum":["INVALID_REQUEST_ERROR","AUTHENTICATION_ERROR","PERMISSION_ERROR","API_ERROR"],"type":"string"}},"required":["type"],"title":"APIErrors","type":"object"}},"responses":{"VersionsStatsResponseV3":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionsStatsResponseBodyV3"}}},"description":"Response containing statistics for the requested versions"}}}}
```
