Artifacts
APIs to get, list artifacts
Redirect to Harness Artifact Page
Unique registry Identifier in a account.
Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Account Identifier
Version
Temporary Redirect
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_identifier}/artifact/{artifact}/redirect HTTP/1.1
Accept: */*
No content
Delete Artifact.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}artifact type.
Generic success response
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
DELETE /api/v1/registry/{registry_ref}/artifact/{artifact} HTTP/1.1
Accept: */*
{
"status": "SUCCESS"
}Update Artifact Labels.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}artifact type.
response to get artifact label response
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
PUT /api/v1/registry/{registry_ref}/artifact/{artifact}/labels HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 19
{
"labels": [
"text"
]
}{
"data": {
"artifactType": "model",
"createdAt": "text",
"deletedAt": "text",
"downloadsCount": 1,
"imageName": "text",
"labels": [
"text"
],
"modifiedAt": "text",
"packageType": "DOCKER",
"registryUUID": "text",
"uuid": "text"
},
"status": "SUCCESS"
}Get Artifact Stats.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Date. Format - MM/DD/YYYY
Date. Format - MM/DD/YYYY
response to get artifact stats response
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/stats HTTP/1.1
Accept: */*
{
"data": {
"downloadCount": 1,
"downloadSize": 1,
"totalStorageSize": 1,
"uploadSize": 1
},
"status": "SUCCESS"
}Get Artifact Summary.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}artifact type.
response to get artifact summary
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/summary HTTP/1.1
Accept: */*
{
"data": {
"artifactType": "model",
"createdAt": "text",
"deletedAt": "text",
"downloadsCount": 1,
"imageName": "text",
"labels": [
"text"
],
"modifiedAt": "text",
"packageType": "DOCKER",
"registryUUID": "text",
"uuid": "text"
},
"status": "SUCCESS"
}Lists OCI Artifact Tags.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Current page number
1Number of items per page
20search Term.
response for list tags info of an OCI artifact
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/tags HTTP/1.1
Accept: */*
{
"data": {
"itemCount": 1,
"ociArtifactTags": [
{
"digest": "text",
"name": "text"
}
],
"pageCount": 100,
"pageIndex": 0,
"pageSize": 1
},
"status": "SUCCESS"
}Delete Artifact Version.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
artifact type.
Key-value filters for artifact version. Repeat the parameter once per filter. Format per entry: key:value Example: ?filters=architecture:amd64&filters=distribution:ubuntu
architecture:amd64Generic success response
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
DELETE /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version} HTTP/1.1
Accept: */*
{
"status": "SUCCESS"
}Create a bulk download request
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
Response containing status of bulk download operation
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/bulk-download HTTP/1.1
Accept: */*
{
"data": {
"downloadId": "12345678-1234-1234-1234-123456789012"
},
"status": "SUCCESS"
}Get Artifact Deployments
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
Environment Type
Current page number
1Number of items per page
20sortOrder
sortField
search Term.
Version Type.
response to get docker artifact deployments details
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/deploymentdetails HTTP/1.1
Accept: */*
{
"data": {
"deployments": {
"deployments": [
{
"count": 1,
"envIdentifier": "text",
"envName": "text",
"envType": "PreProduction",
"infraIdentifier": "text",
"infraName": "text",
"lastDeployedAt": "text",
"lastDeployedById": "text",
"lastDeployedByName": "text",
"lastPipelineExecutionId": "text",
"lastPipelineExecutionName": "text",
"orgIdentifier": "text",
"pipelineId": "text",
"projectIdentifier": "text",
"serviceIdentifier": "text",
"serviceName": "text"
}
],
"itemCount": 1,
"pageCount": 100,
"pageIndex": 0,
"pageSize": 1
},
"deploymentsStats": {
"PreProduction": 1,
"Production": 1
}
},
"status": "SUCCESS"
}Get Artifact Details
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
artifact type.
Child version incase of Docker artifacts.
Key-value filters for artifact version. Repeat the parameter once per filter. Format per entry: key:value Example: ?filters=architecture:amd64&filters=distribution:ubuntu
architecture:amd64response to get artifact details
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/details HTTP/1.1
Accept: */*
{
"data": {
"artifactKey": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"artifactType": "model",
"createdAt": "text",
"createdBy": {
"display_name": "text",
"email": "text",
"type": "text",
"uid": "text"
},
"deletedAt": "text",
"downloadCount": 1,
"isQuarantined": true,
"modifiedAt": "text",
"name": "text",
"packageType": "DOCKER",
"quarantineReason": "text",
"size": "text",
"version": "text",
"pullCommand": "text"
},
"status": "SUCCESS"
}just validate existence of Artifact file
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
Name of Artifact File.
artifact type.
Key-value filters for artifact version. Repeat the parameter once per filter. Format per entry: key:value Example: ?filters=architecture:amd64&filters=distribution:ubuntu
architecture:amd64response to head artifact file
download url of artifact
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/file/{file_name} HTTP/1.1
Accept: */*
{
"downloadUrl": "text",
"status": "SUCCESS"
}Get Artifact files
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
artifact type.
Current page number
1Number of items per page
20sortOrder
sortField
search Term.
Key-value filters for artifact version. Repeat the parameter once per filter. Format per entry: key:value Example: ?filters=architecture:amd64&filters=distribution:ubuntu
architecture:amd64response to get artifact files
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/files HTTP/1.1
Accept: */*
{
"data": {
"files": [
{
"checksums": [
"text"
],
"createdAt": "text",
"downloadCommand": "text",
"name": "text",
"path": "text",
"size": "text"
}
],
"itemCount": 1,
"pageCount": 100,
"pageIndex": 0,
"pageSize": 1
},
"status": "SUCCESS"
}Get Artifact Version Summary.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}Name of Artifact Version.
artifact type.
Digest.
Key-value filters for artifact version. Repeat the parameter once per filter. Format per entry: key:value Example: ?filters=architecture:amd64&filters=distribution:ubuntu
architecture:amd64response to get docker artifact version summary
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/version/{version}/summary HTTP/1.1
Accept: */*
{
"data": {
"artifactKey": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"artifactType": "model",
"deletedAt": "text",
"firewallMode": "ENABLED",
"imageName": "text",
"imageUUID": "text",
"isQuarantined": true,
"lastScannedAt": "text",
"packageType": "DOCKER",
"purl": "text",
"quarantineReason": "text",
"registryType": "VIRTUAL",
"registryUUID": "text",
"scanId": "text",
"scanStatus": "WARN",
"sscaArtifactId": "text",
"sscaArtifactSourceId": "text",
"stoExecutionId": "text",
"stoPipelineId": "text",
"uuid": "text",
"version": "text"
},
"status": "SUCCESS"
}Lists all the Artifact Versions.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Name of the artifact.
The value depends on whether the name contains a slash (/):
- If the artifact name contains
/, append a trailing/+at the end.- Example:
mygroup/myartifact/+
- Example:
- If the artifact name does not contain
/, use the plain name.- Example:
myartifact
- Example:
This is used internally to distinguish between namespaced and flat artifact names.
{"summary":"Flat artifact name","value":"myartifact"}artifact type.
Current page number
1Number of items per page
20sortOrder
sortField
search Term.
Filter for soft-deleted entities
excludePossible values: response for list versions of artifact
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/{artifact}/versions HTTP/1.1
Accept: */*
{
"data": {
"artifactVersions": [
{
"artifactKey": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"artifactType": "model",
"deletedAt": "text",
"deploymentMetadata": {
"nonProdEnvCount": 1,
"prodEnvCount": 1
},
"digestCount": 1,
"downloadsCount": 1,
"fileCount": 1,
"firewallMode": "ENABLED",
"isQuarantined": true,
"lastModified": "text",
"lastScannedAt": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"name": "text",
"opaMetadataValidation": true,
"packageType": "DOCKER",
"pullCommand": "text",
"quarantineReason": "text",
"registryIdentifier": "text",
"registryPath": "text",
"registryType": "VIRTUAL",
"registryUUID": "text",
"scanId": "text",
"scanStatus": "WARN",
"size": "text",
"uuid": "text"
}
],
"itemCount": 1,
"pageCount": 100,
"pageIndex": 0,
"pageSize": 1
},
"status": "SUCCESS"
}List Artifact Labels.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Current page number
1Number of items per page
20search Term.
response for list artifact labels
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/labels HTTP/1.1
Accept: */*
{
"data": {
"itemCount": 1,
"labels": [
"text"
],
"pageCount": 100,
"pageIndex": 0,
"pageSize": 1
},
"status": "SUCCESS"
}Get Artifact Stats.
Reference to the scope in which the registry exists.
Format depends on the scope:
- Account-level:
account_id/registry_name/+ - Organization-level:
account_id/org_id/registry_name/+ - Project-level:
account_id/org_id/project_id/registry_name/+
The /+ suffix is used internally to route scoped requests.
It must be included exactly as shown in the URL.
{"description":"Only account ID, scoped at account level","summary":"Account-level registry","value":"acc123/registry123/+"}Date. Format - MM/DD/YYYY
Date. Format - MM/DD/YYYY
response to get artifact stats response
Request processing status indicator
The request was invalid or malformed
Authentication failed or missing credentials
Access denied due to insufficient permissions
The requested resource was not found
An unexpected server error occurred
GET /api/v1/registry/{registry_ref}/artifact/stats HTTP/1.1
Accept: */*
{
"data": {
"downloadCount": 1,
"downloadSize": 1,
"totalStorageSize": 1,
"uploadSize": 1
},
"status": "SUCCESS"
}Last updated
Was this helpful?