drone/registry/app/api/openapi/api.yaml
Arvind Choudhary 479c9b9fe7 feat: [AH-307]: GC interface Integration, event framework; schema changes; UI changes (#2688)
* fix
* Merge branch 'main' into AH-307-plus-url-support-2_no_rbac
* resolve PR comments
* resolve PR comments
* resolve PR comments
* feat: [AH-346]: new api changes for version list and digest list (#2726)

* feat: [AH-346]: new api changes for version list and digest list
* resolve pr comments
* resolve pr comments
* feat: [AH-346]: new api yaml integration (#2716)

* feat: [AH-346]: new api yaml integration
* Merge branch 'main' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-307-plus-url-support-2_no_rbac
* fix wire check
* fix lint issues
* fix: [AH-357]: migrations
* changes for global artifact listing (#2708)

* changes for global artifact listing
* Merge branch 'main' into AH-307-plus-url-support-2_no_rbac
* merged main
* Merge branch 'main' into AH-307-plus-url-support-2_no_rbac
* [AH-307]: Updated lint
* fix comment
* add new method to spacestore
* feat: [AH-307]: fix after rebase with main
* [AH-307]: Removing comments
* [AH-307]: linting fixes
* feat: [AH-286]: define proto, interface and no-op reporter implementation to publish artifact events (#2657)

* feat: [AH-286]: publish artifact event - no row found is not error
* feat: [AH-286]: publish artifact event - no row found is not error
* feat: [AH-286]: publish artifact event - lint errors, move publishing event outside DB transaction
* feat: [AH-286]: publish artifact event - review comments
* feat: [AH-286]: publish artifact event - address review comments
* feat: [AH-286]: publish artifact event - keep payload generic
* feat: [AH-286]: publish artifact event - as sqlite locks DB, perform db operation outside goroutine publishing of events
* feat: [AH-286]: publish artifact event - make publishing event async
* feat: [AH-286]: publish artifact event - use api types
* feat: [AH-286]: Publish event for SSCA to trigger scans - no need to export spacePathStore
* feat: [AH-286]: Publish event for SSCA to trigger scans - send spacePath instead of parentID
* feat: [AH-286]: Publish event for SSCA to trigger scans - rename scanner as generic reporter
* feat: [AH-286]: Publish event for SSCA to trigger scans - rename scanner as generic reporter
* feat: [AH-286]: publish artifact event - reuse redis.Send()
* feat: [AH-286]: Publish event for SSCA to trigger scans - review comments
* feat: [AH-286]: Publish event for SSCA to trigger scans - remove unused interface
* feat: [AH-286]: Publish event for SSCA to trigger scans - update msg format
* feat: [AH-286]: define proto, interface and no-op reporter implementation to publish artifact events
* feat: [AH-286]: Publish event for SSCA to trigger scans - extract acctID/orgID/projectID from spacepathStore
* feat: [AH-286]: publish artifact event - remove protobuf reference, fix lint errors
* feat: [AH-286]: publish artifact event - fix msg format
* feat: [AH-286]: define proto, interface and no-op reporter implementation to publish artifact events
* feat: [AH-286]: define proto, interface and no-op reporter implementation to publish artifact events
* feat: [AH-321]: make repo form disabled for rbac (#2687)

* feat: [AH-321]: make repo form disabled for rbac
* fix wire-gen
* GC refactoring
* feat: [AH-340]: update UI as per the product feedbacks (#2685)

* feat: [AH-340]: update UI as per the product feedbacks
* feat: [AH-44]: add module data while redirecting to pipeline execution page
* feat: [AH-44]: add build pipeline details in overview cards
* feat: [AH-44]: update view for prod and non prod tag
* feat: [AH-44]: rearrange filters on artifact list apge
* feat: [AH-10]: add schema for overview cards, update artifact list, add ai search input, update api for registry artifact list and update mapping for deployments table
* feat: [AH-307]: add secretSpacePath in upstream password field while sending to BE (#2631)

* feat: [AH-307]: add secretSpacePath in upstream password field while sending to BE
* feat: [AH-299]: support new changes for artifact list page (#2630)

* feat: update har service api version
* feat: [AH-30]: integrate API schema for deployments list content
* feat: [AH-300]: update tag colors for prod and non prod tags
* feat: [AH-300]: Add Deployments table in artiface version details page
* feat: [AH-299]: support new changes for artifact list page
* feat: [AH-299]: support new changes for artifact list page
* feat: [AH-321]: support artifact registry rbac permission on UI (#2671)

* feat: [AH-321]: support artifact registry rbac permission on UI
* enable rbac (#2664)

* fix scope
* enable rbac
* feat: [AH-307]: hide code tab from version details page for both docker and helm
* feat: [AH-240]: add custom handling for enterprise auth type field
* Merge branch 'AH-307-plus-url-support-2_no_rbac' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-307-plus-url-support-2_no_rbac
* feat: [AH-307]: send space_ref in query param while creating registries
* lowercase rootRef
* [AH-307]: updated route
* [AH-307]: Added logs
* [AH-307]: Added logs
* feat: [AH-317]: add space_ref query param
* local
* Merge commit
* Merge commit
* Merge commit
* Added comments
* Revert changes
* Merge commit
* Merge branch 'main' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-307-plus-url-support-2
* Merge branch 'AH-306d' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-307-plus-url-support-2
* fix space path handling
* Merge branch 'main' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-307-plus-url-support-2
* Updated URLs to support slashes with + separator
* fix: [AH-306c]: fix anonymous flow
* fix: [AH-306c]: fix anonymous flow
* feat: [AH-307]: plus url support on UI

(cherry picked from commit 3fb6add3ce03498b6668b5f8f6d547e1acedaec4)
* [AH-307]: Added examples

(cherry picked from commit e83e41303da536f421be333be04aed09fbf75f5f)
* [AH-307]: Added Regex request rewrite support

(cherry picked from commit ed7b155256bdcd1134bc228b5705556a1233add6)
* fix: [AH-306c]: fix anonymous flow
2024-09-24 12:47:53 +00:00

1727 lines
48 KiB
YAML

openapi: "3.0.0"
info:
title: Harness Artifact Registry API
version: 1.0.0
contact:
name: Harness Artifact Registry - developers
url: https://www.harness.io
tags:
- name: Registries
description: APIs to create, update, list registries
- name: Artifacts
description: APIs to get, list artifacts
- name: Docker Artifacts
description: APIs to get details of docker artifacts
- name: Helm Artifacts
description: APIs to get details of helm artifacts
servers:
- url: /api/v1
description: Registry
paths:
/spaces/{space_ref}/registries:
get:
summary: List Registries
description: Lists all the Registries.
operationId: GetAllRegistries
tags:
- Spaces
parameters:
- $ref: "#/components/parameters/spaceRefPathParam"
- $ref: "#/components/parameters/packageTypeParam"
- $ref: "#/components/parameters/RegistryTypeParam"
- $ref: "#/components/parameters/pageNumber"
- $ref: "#/components/parameters/pageSize"
- $ref: "#/components/parameters/sortOrder"
- $ref: "#/components/parameters/sortField"
- $ref: "#/components/parameters/searchTerm"
responses:
200:
$ref: "#/components/responses/ListRegistryResponse"
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"
/registry:
post:
summary: Create Registry.
description: Create a Registry.
operationId: CreateRegistry
tags:
- Registries
parameters:
- $ref: "#/components/parameters/spaceRefQueryParam"
requestBody:
$ref: "#/components/requestBodies/RegistryRequest"
responses:
201:
$ref: "#/components/responses/RegistryResponse"
400:
$ref: "#/components/responses/BadRequest"
401:
$ref: "#/components/responses/Unauthenticated"
403:
$ref: "#/components/responses/Unauthorized"
500:
$ref: "#/components/responses/InternalServerError"
/registry/{registry_ref}:
get:
summary: Returns Registry Details
description: Returns Registry Details in the account for the given key
operationId: GetRegistry
tags:
- Registries
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
responses:
200:
$ref: "#/components/responses/RegistryResponse"
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"
put:
summary: Updates a Registry
description: Updates a Registry in the account for the given key
operationId: ModifyRegistry
tags:
- Registries
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
requestBody:
$ref: "#/components/requestBodies/RegistryRequest"
responses:
200:
$ref: "#/components/responses/RegistryResponse"
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"
delete:
summary: Delete a Registry
description: Delete a Registry in the account for the given key
operationId: DeleteRegistry
tags:
- Registries
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
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"
/registry/{registry_ref}/client-setup-details:
get:
summary: Returns CLI Client Setup Details
description: Returns CLI Client Setup Details based on package type
operationId: GetClientSetupDetails
tags:
- Registries
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactParam"
- $ref: "#/components/parameters/versionParam"
responses:
200:
$ref: "#/components/responses/ClientSetupDetailsResponse"
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"
/spaces/{space_ref}/artifacts:
get:
summary: List Artifacts
description: Lists all the Artifacts.
operationId: GetAllArtifacts
tags:
- Spaces
parameters:
- $ref: "#/components/parameters/spaceRefPathParam"
- $ref: "#/components/parameters/RegistryIdentifierParam"
- $ref: "#/components/parameters/pageNumber"
- $ref: "#/components/parameters/pageSize"
- $ref: "#/components/parameters/sortOrder"
- $ref: "#/components/parameters/sortField"
- $ref: "#/components/parameters/searchTerm"
- $ref: "#/components/parameters/latestVersion"
responses:
200:
$ref: "#/components/responses/ListArtifactResponse"
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"
/registry/{registry_ref}/artifacts:
get:
summary: List Artifacts for Registry
description: Lists all the Artifacts for Registry
operationId: GetAllArtifactsByRegistry
tags:
- Registries
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/LabelsParam"
- $ref: "#/components/parameters/pageNumber"
- $ref: "#/components/parameters/pageSize"
- $ref: "#/components/parameters/sortOrder"
- $ref: "#/components/parameters/sortField"
- $ref: "#/components/parameters/searchTerm"
responses:
200:
$ref: "#/components/responses/ListRegistryArtifactResponse"
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"
/spaces/{space_ref}/artifact/stats:
get:
summary: Get Artifact Stats
description: Get Artifact Stats.
operationId: GetArtifactStatsForSpace
tags:
- Artifacts
parameters:
- $ref: "#/components/parameters/spaceRefPathParam"
- $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"
/registry/{registry_ref}/artifact/labels:
get:
summary: List Artifact Labels
description: List Artifact Labels.
operationId: ListArtifactLabels
tags:
- Artifacts
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"
/registry/{registry_ref}/artifact/stats:
get:
summary: Get Artifact Stats
description: Get Artifact Stats.
operationId: GetArtifactStatsForRegistry
tags:
- Artifacts
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"
/registry/{registry_ref}/artifact/{artifact}/summary:
get:
summary: Get Artifact Summary
description: Get Artifact Summary.
operationId: GetArtifactSummary
tags:
- Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
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"
/registry/{registry_ref}/artifact/{artifact}/versions:
get:
summary: List Artifact Versions
description: Lists all the Artifact Versions.
operationId: GetAllArtifactVersions
tags:
- Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/pageNumber"
- $ref: "#/components/parameters/pageSize"
- $ref: "#/components/parameters/sortOrder"
- $ref: "#/components/parameters/sortField"
- $ref: "#/components/parameters/searchTerm"
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"
/registry/{registry_ref}/artifact/{artifact}/labels:
put:
summary: Update Artifact Labels
description: Update Artifact Labels.
operationId: UpdateArtifactLabels
tags:
- Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
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"
/registry/{registry_ref}/artifact/{artifact}/stats:
get:
summary: Get Artifact Stats
description: Get Artifact Stats.
operationId: GetArtifactStats
tags:
- Artifacts
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/summary:
get:
summary: Get Artifact Version Summary
description: Get Artifact Version Summary.
operationId: GetArtifactVersionSummary
tags:
- Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/docker/details:
get:
summary: Describe Docker Artifact Detail
description: Get Docker Artifact Details
operationId: GetDockerArtifactDetails
tags:
- Docker Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
- $ref: "#/components/parameters/digestParam"
responses:
200:
$ref: "#/components/responses/DockerArtifactDetailResponse"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/docker/manifest:
get:
summary: Describe Docker Artifact Manifest
description: Get Docker Artifact Manifest
operationId: GetDockerArtifactManifest
tags:
- Docker Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
- $ref: "#/components/parameters/digestParam"
responses:
200:
$ref: "#/components/responses/DockerArtifactManifestResponse"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/docker/manifests:
get:
summary: Describe Docker Artifact Manifests
description: Get Docker Artifact Manifests
operationId: GetDockerArtifactManifests
tags:
- Docker Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
responses:
200:
$ref: "#/components/responses/DockerManifestsResponse"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/docker/layers:
get:
summary: Describe Docker Artifact Layers
description: Get Docker Artifact Layers
operationId: GetDockerArtifactLayers
tags:
- Docker Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
- $ref: "#/components/parameters/digestParam"
responses:
200:
$ref: "#/components/responses/DockerLayersResponse"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/helm/details:
get:
summary: Describe Helm Artifact Detail
description: Get Helm Artifact Details
operationId: GetHelmArtifactDetails
tags:
- Helm Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
responses:
200:
$ref: "#/components/responses/HelmArtifactDetailResponse"
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"
/registry/{registry_ref}/artifact/{artifact}/version/{version}/helm/manifest:
get:
summary: Describe Helm Artifact Manifest
description: Get Helm Artifact Manifest
operationId: GetHelmArtifactManifest
tags:
- Helm Artifacts
parameters:
- $ref: "#/components/parameters/registryRefPathParam"
- $ref: "#/components/parameters/artifactPathParam"
- $ref: "#/components/parameters/versionPathParam"
responses:
200:
$ref: "#/components/responses/HelmArtifactManifestResponse"
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"
components:
requestBodies:
RegistryRequest:
description: request for create and update registry
content:
application/json:
schema:
$ref: "#/components/schemas/RegistryRequest"
ArtifactLabelRequest:
description: request to update artifact labels
content:
application/json:
schema:
$ref: "#/components/schemas/ArtifactLabelRequest"
responses:
ArtifactStatsResponse:
description: response to get artifact stats response
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ArtifactStats"
required:
- status
- data
ArtifactLabelResponse:
description: response to get artifact label response
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ArtifactSummary"
required:
- status
- data
ClientSetupDetailsResponse:
description: response for client setup details
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ClientSetupDetails"
required:
- status
- data
RegistryResponse:
description: response for create, get and update registry
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/Registry"
required:
- status
- data
DockerArtifactDetailResponse:
description: response to get docker artifact detail
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/DockerArtifactDetail"
required:
- status
- data
HelmArtifactDetailResponse:
description: response to get helm artifact detail
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/HelmArtifactDetail"
required:
- status
- data
ArtifactSummaryResponse:
description: response to get artifact summary
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ArtifactSummary"
required:
- status
- data
ArtifactVersionSummaryResponse:
description: response to get docker artifact version summary
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ArtifactVersionSummary"
required:
- status
- data
DockerArtifactManifestResponse:
description: response to get docker artifact manifest
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/DockerArtifactManifest"
required:
- status
- data
HelmArtifactManifestResponse:
description: response to get helm artifact manifest
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/HelmArtifactManifest"
required:
- status
- data
DockerManifestsResponse:
description: response to get artifact layers
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/DockerManifests"
required:
- status
- data
ListArtifactLabelResponse:
description: response for list artifact labels
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ListArtifactLabel"
required:
- status
- data
DockerLayersResponse:
description: response to get artifact layers
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/DockerLayersSummary"
required:
- status
- data
ListRegistryResponse:
description: response for list registry
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ListRegistry"
required:
- status
- data
ListArtifactResponse:
description: response for list artifact
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ListArtifact"
required:
- status
- data
ListRegistryArtifactResponse:
description: response for list artifact
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ListRegistryArtifact"
required:
- status
- data
ListArtifactVersionResponse:
description: response for list versions of artifact
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
data:
$ref: "#/components/schemas/ListArtifactVersion"
required:
- status
- data
Unauthenticated:
description: Unauthenticated
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
Success:
description: Success Response
content:
application/json:
schema:
type: object
properties:
status:
$ref: "#/components/schemas/Status"
required:
- status
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
NotFound:
description: The specified resource was not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
InternalServerError:
description: Internal server error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
ArtifactStats:
type: object
description: Harness Artifact Stats
properties:
downloadCount:
type: integer
format: int64
uploadSize:
type: integer
format: int64
downloadSize:
type: integer
format: int64
totalStorageSize:
type: integer
format: int64
ListRegistry:
type: object
description: A list of Harness Artifact Registries
properties:
pageCount:
type: integer
format: int64
description: The total number of pages
example: 100
itemCount:
type: integer
format: int64
description: The total number of items
example: 1
pageSize:
type: integer
description: The number of items per page
example: 1
pageIndex:
type: integer
format: int64
description: The current page
example: 0
registries:
type: array
description: A list of Harness Artifact Registries
items:
$ref: "#/components/schemas/RegistryMetadata"
required:
- registries
ListArtifact:
type: object
description: A list of Artifacts
properties:
pageCount:
type: integer
format: int64
description: The total number of pages
example: 100
itemCount:
type: integer
format: int64
description: The total number of items
example: 1
pageSize:
type: integer
description: The number of items per page
example: 1
pageIndex:
type: integer
format: int64
description: The current page
example: 0
artifacts:
type: array
description: A list of Artifact
items:
$ref: "#/components/schemas/ArtifactMetadata"
required:
- artifacts
ListRegistryArtifact:
type: object
description: A list of Artifacts
properties:
pageCount:
type: integer
format: int64
description: The total number of pages
example: 100
itemCount:
type: integer
format: int64
description: The total number of items
example: 1
pageSize:
type: integer
description: The number of items per page
example: 1
pageIndex:
type: integer
format: int64
description: The current page
example: 0
artifacts:
type: array
description: A list of Artifact
items:
$ref: "#/components/schemas/RegistryArtifactMetadata"
required:
- artifacts
ListArtifactVersion:
type: object
description: A list of Artifact versions
properties:
pageCount:
type: integer
format: int64
description: The total number of pages
example: 100
itemCount:
type: integer
format: int64
description: The total number of items
example: 1
pageSize:
type: integer
description: The number of items per page
example: 1
pageIndex:
type: integer
description: The current page
format: int64
example: 0
artifactVersions:
type: array
description: A list of Artifact versions
items:
$ref: "#/components/schemas/ArtifactVersionMetadata"
required:
- artifacts
ListArtifactLabel:
type: object
description: A list of Harness Artifact Labels
properties:
pageCount:
type: integer
description: The total number of pages
format: int64
example: 100
itemCount:
type: integer
format: int64
description: The total number of items
example: 1
pageSize:
type: integer
description: The number of items per page
example: 1
pageIndex:
type: integer
format: int64
description: The current page
example: 0
labels:
type: array
items:
type: string
required:
- labels
RegistryMetadata:
type: object
description: Harness Artifact Registry Metadata
properties:
type:
$ref: "#/components/schemas/RegistryType"
packageType:
$ref: "#/components/schemas/PackageType"
description:
type: string
url:
type: string
identifier:
type: string
registrySize:
type: string
downloadsCount:
type: integer
format: int64
artifactsCount:
type: integer
format: int64
labels:
type: array
items:
type: string
lastModified:
type: string
path:
type: string
required:
- type
- packageType
- identifier
- url
ClientSetupDetails:
type: object
description: Client Setup Details
properties:
mainHeader:
type: string
secHeader:
type: string
sections:
type: array
items:
$ref: "#/components/schemas/ClientSetupSection"
required:
- mainHeader
- secHeader
- sections
ClientSetupSection:
type: object
description: Client Setup Section
properties:
header:
type: string
steps:
type: array
items:
$ref: "#/components/schemas/ClientSetupStep"
ClientSetupStep:
type: object
description: Client Setup Step
properties:
header:
type: string
commands:
type: array
items:
type: string
type:
$ref: "#/components/schemas/ClientSetupStepType"
ArtifactMetadata:
type: object
description: Artifact Metadata
properties:
name:
type: string
version:
type: string
registryIdentifier:
type: string
registryPath:
type: string
labels:
type: array
items:
type: string
downloadsCount:
type: integer
format: int64
lastModified:
type: string
pullCommand:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
required:
- name
- registryIdentifier
- latestVersion
- registryPath
RegistryArtifactMetadata:
type: object
description: Artifact Metadata
properties:
name:
type: string
registryIdentifier:
type: string
registryPath:
type: string
labels:
type: array
items:
type: string
downloadsCount:
type: integer
format: int64
latestVersion:
type: string
lastModified:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
required:
- name
- registryIdentifier
- latestVersion
- registryPath
ArtifactVersionMetadata:
type: object
description: Artifact Version Metadata
properties:
name:
type: string
size:
type: string
registryIdentifier:
type: string
registryPath:
type: string
digestCount:
type: integer
pullCommand:
type: string
downloadsCount:
type: integer
format: int64
islatestVersion:
type: boolean
lastModified:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
required:
- name
- registryIdentifier
- latestVersion
- registryPath
Registry:
type: object
description: Harness Artifact Registry
properties:
cleanupPolicy:
type: array
items:
$ref: "#/components/schemas/CleanupPolicy"
identifier:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
description:
type: string
url:
type: string
allowedPattern:
type: array
items:
type: string
blockedPattern:
type: array
items:
type: string
labels:
type: array
items:
type: string
config:
$ref: '#/components/schemas/RegistryConfig'
createdAt:
type: string
modifiedAt:
type: string
required:
- name
- identifier
- type
- url
- packageType
DockerArtifactDetail:
type: object
description: Docker Artifact Detail
properties:
imageName:
type: string
version:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
registryPath:
type: string
url:
type: string
size:
type: string
downloadsCount:
type: integer
format: int64
pullCommand:
type: string
createdAt:
type: string
modifiedAt:
type: string
isLatestVersion:
type: boolean
required:
- imageName
- version
- registryPath
- url
- packageType
HelmArtifactDetail:
type: object
description: Helm Artifact Detail
properties:
artifact:
type: string
version:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
registryPath:
type: string
url:
type: string
size:
type: string
downloadsCount:
type: integer
format: int64
pullCommand:
type: string
createdAt:
type: string
modifiedAt:
type: string
isLatestVersion:
type: boolean
required:
- imageName
- version
- registryPath
- url
- packageType
ArtifactSummary:
type: object
description: Harness Artifact Summary
properties:
imageName:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
labels:
type: array
items:
type: string
downloadsCount:
type: integer
format: int64
createdAt:
type: string
modifiedAt:
type: string
required:
- imageName
- packageType
ArtifactVersionSummary:
type: object
description: Docker Artifact Version Summary
properties:
imageName:
type: string
version:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
isLatestVersion:
type: boolean
required:
- imageName
- version
- packageType
DockerArtifactManifest:
type: object
description: Docker Artifact Manifest
properties:
manifest:
type: string
required:
- manifest
HelmArtifactManifest:
type: object
description: Helm Artifact Manifest
properties:
manifest:
type: string
required:
- manifest
DockerLayerEntry:
type: object
description: Harness Artifact Layers
properties:
command:
type: string
size:
type: string
required:
- command
DockerManifestDetails:
type: object
description: Harness Artifact Layers
properties:
osArch:
type: string
digest:
type: string
size:
type: string
createdAt:
type: string
required:
- digest
- layers
- osArch
DockerManifests:
type: object
description: Harness Manifests
properties:
imageName:
type: string
version:
type: string
isLatestVersion:
type: boolean
manifests:
type: array
items:
$ref: '#/components/schemas/DockerManifestDetails'
required:
- imageName
- version
DockerLayersSummary:
type: object
description: Harness Layers Summary
properties:
digest:
type: string
osArch:
type: string
layers:
type: array
items:
$ref: '#/components/schemas/DockerLayerEntry'
required:
- digest
RegistryConfig:
type: object
description: SubConfig specific for Virtual or Upstream Registry
required:
- type
properties:
type:
$ref: "#/components/schemas/RegistryType"
discriminator:
propertyName: type
mapping:
VIRTUAL: "#/components/schemas/VirtualConfig"
UPSTREAM: "#/components/schemas/UpstreamConfig"
oneOf:
- $ref: "#/components/schemas/VirtualConfig"
- $ref: "#/components/schemas/UpstreamConfig"
VirtualConfig:
type: object
description: Configuration for Harness Virtual Artifact Registries
properties:
upstreamProxies:
type: array
items:
type: string
UpstreamConfig:
type: object
description: Configuration for Harness Artifact UpstreamProxies
properties:
authType:
$ref: "#/components/schemas/AuthType"
auth:
oneOf:
- $ref: "#/components/schemas/UserPassword"
- $ref: "#/components/schemas/Anonymous"
url:
type: string
source:
type: string
enum:
- Dockerhub
- Custom
x-discriminator-value: UPSTREAM
required:
- authType
CleanupPolicy:
type: object
description: Cleanup Policy for Harness Artifact Registries
properties:
name:
type: string
expireDays:
type: integer
versionPrefix:
type: array
items:
type: string
packagePrefix:
type: array
items:
type: string
RegistryType:
type: string
description: refers to type of registry i.e virtual or upstream
enum:
- VIRTUAL
- UPSTREAM
discriminator:
propertyName: type
PackageType:
type: string
description: refers to package
enum:
- DOCKER
- MAVEN
- GENERIC
- HELM
Status:
type: string
description: "Indicates if the request was successful or not"
enum:
- SUCCESS
- FAILURE
- ERROR
AuthType:
type: string
description: "Authentication type"
enum:
- UserPassword
- Anonymous
ClientSetupStepType:
type: string
description: "ClientSetupStepType type"
enum:
- Static
- GenerateToken
Error:
type: object
properties:
code:
type: string
description: The http error code
example: 404
message:
type: string
description: The reason the request failed
details:
type: object
description: Additional details about the error
required:
- code
- message
RegistryRequest:
type: object
properties:
identifier:
type: string
packageType:
$ref: "#/components/schemas/PackageType"
description:
type: string
allowedPattern:
type: array
items:
type: string
blockedPattern:
type: array
items:
type: string
cleanupPolicy:
type: array
items:
$ref: "#/components/schemas/CleanupPolicy"
labels:
type: array
items:
type: string
config:
$ref: '#/components/schemas/RegistryConfig'
parentRef:
type: string
required:
- identifier
- type
- packageType
ArtifactLabelRequest:
type: object
properties:
labels:
type: array
items:
type: string
required:
- labels
UserPassword:
properties:
userName:
type: string
secretIdentifier:
type: string
secretSpaceId:
type: integer
secretSpacePath:
type: string
required:
- userName
- password
Anonymous: {}
parameters:
spaceRefQueryParam:
name: space_ref
in: query
required: false
description: Unique space path
schema:
type: string
packageTypeParam:
name: package_type
in: query
required: false
description: Registry Package Type
schema:
type: array
items:
type: string
RegistryTypeParam:
name: type
in: query
required: false
description: Registry Type
schema:
type: string
enum:
- VIRTUAL
- UPSTREAM
RegistryIdentifierParam:
name: reg_identifier
in: query
required: false
description: Registry Identifier
schema:
type: array
items:
type: string
spaceRefPathParam:
name: space_ref
in: path
required: true
description: Unique space path.
schema:
type: string
LabelsParam:
name: label
in: query
required: false
description: Label.
schema:
type: array
items:
type: string
registryRefPathParam:
name: registry_ref
in: path
required: true
description: Unique registry path.
schema:
type: string
artifactParam:
name: artifact
in: query
required: false
description: Artifat
schema:
type: string
versionParam:
name: version
in: query
required: false
description: Version
schema:
type: string
artifactPathParam:
name: artifact
in: path
required: true
description: Name of artifact.
schema:
type: string
versionPathParam:
name: version
in: path
required: true
description: Name of Artifact Version.
schema:
type: string
digestParam:
name: digest
in: query
required: true
description: Digest.
schema:
type: string
searchTerm:
name: search_term
in: query
required: false
description: search Term.
schema:
type: string
pageNumber:
name: page
in: query
required: false
description: Current page number
schema:
type: integer
format: int64
default: 1
pageSize:
name: size
in: query
required: false
description: Number of items per page
schema:
type: integer
format: int64
default: 20
sortOrder:
name: sort_order
in: query
required: false
description: sortOrder
schema:
type: string
sortField:
name: sort_field
in: query
required: false
description: sortField
schema:
type: string
latestVersion:
name: latest_version
in: query
required: false
description: Latest Version Filter.
schema:
type: boolean
fromDateParam:
name: from
in: query
required: false
description: Date. Format - MM/DD/YYYY
schema:
type: string
toDateParam:
name: to
in: query
required: false
description: Date. Format - MM/DD/YYYY
schema:
type: string