2020-01-14 03:20:18 +01:00
swagger : '2.0'
info :
title : Harbor API
description : These APIs provide services for manipulating Harbor project.
version : '2.0'
host : localhost
schemes :
- http
- https
basePath : /api/v2.0
produces :
- application/json
consumes :
- application/json
securityDefinitions :
basicAuth :
type : basic
paths :
2020-01-26 05:52:51 +01:00
/projects/{project_name}/repositories/{repository_name}/artifacts:
2020-01-14 03:20:18 +01:00
get :
2020-01-26 05:52:51 +01:00
summary : List artifacts
description : List artifacts under the specific project and repository.
2020-01-14 03:20:18 +01:00
tags :
- artifact
2020-01-26 05:52:51 +01:00
operationId : listArtifacts
2020-01-14 03:20:18 +01:00
parameters :
- $ref : '#/parameters/requestId'
2020-01-16 01:04:22 +01:00
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
2020-01-26 05:52:51 +01:00
- $ref : '#/parameters/page'
- $ref : '#/parameters/pageSize'
- name : type
in : query
description : Query the artifacts by type. Valid values can be "IMAGE", "CHART", etc.
type : string
required : false
2020-01-25 08:26:44 +01:00
- name : tags
in : query
description : Without the "tags" query string, both tagged and untagged artifacts will be returned. Specify it as "*" to return only tagged artifacts; specify it as "nil" to return only untagged artifacts.
type : string
required : false
2020-01-16 01:04:22 +01:00
- name : with_tag
in : query
description : Specify whether the tags are inclued inside the returning artifacts
type : boolean
required : false
default : true
- name : with_label
in : query
description : Specify whether the labels are inclued inside the returning artifacts
type : boolean
required : false
default : false
- name : with_scan_overview
in : query
description : Specify whether the scan overview is inclued inside the returning artifacts
type : boolean
required : false
default : false
# should be in tag level
2020-01-26 05:52:51 +01:00
- name : with_signature
2020-01-16 01:04:22 +01:00
in : query
description : Specify whether the signature is inclued inside the returning artifacts
type : boolean
required : false
default : false
- name : with_immutable_status
in : query
description : Specify whether the immutable status is inclued inside the tags of the returning artifacts. Only works when setting "with_tag=true"
type : boolean
required : false
default : false
2020-01-26 05:52:51 +01:00
# TODO add other query string: type, ....
2020-01-14 03:20:18 +01:00
responses :
'200' :
2020-01-16 01:04:22 +01:00
description : Success
2020-01-26 05:52:51 +01:00
headers :
X-Total-Count :
description : The total count of artifacts
type : integer
Link :
description : Link refers to the previous page and next page
type : string
2020-01-14 03:20:18 +01:00
schema :
2020-01-26 05:52:51 +01:00
type : array
items :
$ref : '#/definitions/Artifact'
'400' :
$ref : '#/responses/400'
2020-01-14 03:20:18 +01:00
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
2020-01-26 05:52:51 +01:00
'404' :
$ref : '#/responses/404'
2020-01-14 03:20:18 +01:00
'500' :
$ref : '#/responses/500'
2020-01-26 05:52:51 +01:00
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}:
2020-01-14 03:20:18 +01:00
get :
2020-01-26 05:52:51 +01:00
summary : Get the specific artifact
description : Get the artifact specified by the reference under the project and repository. The reference can be digest or tag.
2020-01-14 03:20:18 +01:00
tags :
- artifact
2020-01-26 05:52:51 +01:00
operationId : getArtifact
2020-01-14 03:20:18 +01:00
parameters :
- $ref : '#/parameters/requestId'
2020-01-16 01:04:22 +01:00
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
2020-01-26 05:52:51 +01:00
- $ref : '#/parameters/reference'
2020-01-25 08:26:44 +01:00
- $ref : '#/parameters/page'
- $ref : '#/parameters/pageSize'
2020-01-16 01:04:22 +01:00
- name : with_tag
in : query
description : Specify whether the tags are inclued inside the returning artifacts
type : boolean
required : false
default : true
- name : with_label
in : query
description : Specify whether the labels are inclued inside the returning artifacts
2020-01-14 03:20:18 +01:00
type : boolean
required : false
default : false
2020-01-16 01:04:22 +01:00
- name : with_scan_overview
2020-01-14 03:20:18 +01:00
in : query
2020-01-16 01:04:22 +01:00
description : Specify whether the scan overview is inclued inside the returning artifacts
2020-01-14 03:20:18 +01:00
type : boolean
required : false
default : false
2020-01-16 01:04:22 +01:00
# should be in tag level
2020-01-26 05:52:51 +01:00
- name : with_signature
2020-01-14 03:20:18 +01:00
in : query
2020-01-16 01:04:22 +01:00
description : Specify whether the signature is inclued inside the returning artifacts
2020-01-14 03:20:18 +01:00
type : boolean
required : false
default : false
2020-01-16 01:04:22 +01:00
- name : with_immutable_status
in : query
description : Specify whether the immutable status is inclued inside the tags of the returning artifacts. Only works when setting "with_tag=true"
type : boolean
required : false
default : false
2020-01-14 03:20:18 +01:00
responses :
'200' :
2020-01-16 01:04:22 +01:00
description : Success
2020-01-14 03:20:18 +01:00
schema :
2020-01-26 05:52:51 +01:00
$ref : '#/definitions/Artifact'
'400' :
$ref : '#/responses/400'
2020-01-14 03:20:18 +01:00
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
2020-01-26 05:52:51 +01:00
'404' :
$ref : '#/responses/404'
'500' :
$ref : '#/responses/500'
delete :
summary : Delete the specific artifact
description : Delete the artifact specified by the reference under the project and repository. The reference can be digest or tag
tags :
- artifact
operationId : deleteArtifact
parameters :
- $ref : '#/parameters/requestId'
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
- $ref : '#/parameters/reference'
responses :
'200' :
$ref : '#/responses/200'
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
'404' :
$ref : '#/responses/404'
'500' :
$ref : '#/responses/500'
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags:
post :
summary : Create tag
description : Create a tag for the specified artifact
tags :
- artifact
operationId : createTag
parameters :
- $ref : '#/parameters/requestId'
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
- $ref : '#/parameters/reference'
- name : tag
in : body
description : The JSON object of tag.
required : true
schema :
$ref : '#/definitions/Tag'
responses :
'201' :
$ref : '#/responses/201'
'400' :
$ref : '#/responses/400'
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
'404' :
$ref : '#/responses/404'
'409' :
$ref : '#/responses/409'
'500' :
$ref : '#/responses/500'
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name}:
delete :
summary : Delete tag
description : Delete the tag of the specified artifact
tags :
- artifact
operationId : deleteTag
parameters :
- $ref : '#/parameters/requestId'
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
- $ref : '#/parameters/reference'
- $ref : '#/parameters/tagName'
responses :
'200' :
$ref : '#/responses/200'
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
'404' :
$ref : '#/responses/404'
2020-01-14 03:20:18 +01:00
'500' :
$ref : '#/responses/500'
2020-02-07 02:11:54 +01:00
/projects/{project_name}/repositories/{repository_name}:
delete :
summary : Delete repository
description : Delete the repository specified by name
tags :
- repository
operationId : deleteRepository
parameters :
- $ref : '#/parameters/requestId'
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
responses :
'200' :
$ref : '#/responses/200'
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
'404' :
$ref : '#/responses/404'
'500' :
$ref : '#/responses/500'
2020-01-29 04:34:55 +01:00
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition}:
get :
summary : Get the addition of the specific artifact
description : Get the addition of the artifact specified by the reference under the project and repository.
tags :
- artifact
operationId : getAddition
parameters :
- $ref : '#/parameters/requestId'
- $ref : '#/parameters/projectName'
- $ref : '#/parameters/repositoryName'
- $ref : '#/parameters/reference'
- name : addition
in : path
description : The addition name, "build_history" for images; "values.yaml", "readme", "dependencies" for charts
type : string
enum : [ build_history, values.yaml, readme, dependencies]
required : true
responses :
'200' :
description : Success
schema :
type : string
'400' :
$ref : '#/responses/400'
'401' :
$ref : '#/responses/401'
'403' :
$ref : '#/responses/403'
'404' :
$ref : '#/responses/404'
'500' :
$ref : '#/responses/500'
2020-01-14 03:20:18 +01:00
parameters :
requestId :
name : X-Request-Id
2020-01-16 01:04:22 +01:00
description : An unique ID for the request
2020-01-14 03:20:18 +01:00
in : header
type : string
required : false
minLength : 1
2020-01-16 01:04:22 +01:00
projectName :
name : project_name
2020-01-14 03:20:18 +01:00
in : path
2020-01-16 01:04:22 +01:00
description : The name of the project
2020-01-14 03:20:18 +01:00
required : true
2020-01-16 01:04:22 +01:00
type : string
repositoryName :
name : repository_name
2020-01-14 03:20:18 +01:00
in : path
2020-01-16 01:04:22 +01:00
description : The name of the repository
2020-01-14 03:20:18 +01:00
required : true
2020-01-16 01:04:22 +01:00
type : string
2020-01-26 05:52:51 +01:00
reference :
name : reference
in : path
description : The reference of the artifact, can be digest or tag
required : true
type : string
tagName :
name : tag_name
2020-01-14 03:20:18 +01:00
in : path
2020-01-26 05:52:51 +01:00
description : The name of the tag
2020-01-14 03:20:18 +01:00
required : true
2020-01-16 01:04:22 +01:00
type : string
2020-01-14 03:20:18 +01:00
page :
name : page
in : query
type : integer
2020-01-16 01:04:22 +01:00
format : int64
2020-01-14 03:20:18 +01:00
required : false
2020-01-16 01:04:22 +01:00
description : The page number
2020-01-14 03:20:18 +01:00
default : 1
pageSize :
name : page_size
in : query
type : integer
2020-01-16 01:04:22 +01:00
format : int64
2020-01-14 03:20:18 +01:00
required : false
2020-01-16 01:04:22 +01:00
description : The size of per page
2020-01-14 03:20:18 +01:00
default : 10
responses :
2020-01-26 05:52:51 +01:00
'200' :
description : Success
headers :
X-Request-Id :
description : The ID of the corresponding request for the response
type : string
'201' :
description : Created
headers :
X-Request-Id :
description : The ID of the corresponding request for the response
type : string
'400' :
description : Bad request
headers :
X-Request-Id :
description : The ID of the corresponding request for the response
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-14 03:20:18 +01:00
'401' :
2020-01-16 01:04:22 +01:00
description : Unauthorized
2020-01-14 03:20:18 +01:00
headers :
X-Request-Id :
2020-01-16 01:04:22 +01:00
description : The ID of the corresponding request for the response
2020-01-14 03:20:18 +01:00
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-14 03:20:18 +01:00
'403' :
2020-01-16 01:04:22 +01:00
description : Forbidden
2020-01-14 03:20:18 +01:00
headers :
X-Request-Id :
2020-01-16 01:04:22 +01:00
description : The ID of the corresponding request for the response
2020-01-14 03:20:18 +01:00
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-26 05:52:51 +01:00
'404' :
description : Not found
headers :
X-Request-Id :
description : The ID of the corresponding request for the response
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-26 05:52:51 +01:00
'409' :
description : Conflict
headers :
X-Request-Id :
description : The ID of the corresponding request for the response
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-14 03:20:18 +01:00
'500' :
2020-01-16 01:04:22 +01:00
description : Internal server error
2020-01-14 03:20:18 +01:00
headers :
X-Request-Id :
2020-01-16 01:04:22 +01:00
description : The ID of the corresponding request for the response
2020-01-14 03:20:18 +01:00
type : string
schema :
2020-01-26 03:36:25 +01:00
$ref : '#/definitions/Errors'
2020-01-14 03:20:18 +01:00
definitions :
2020-01-26 03:36:25 +01:00
Errors :
description : The error array that describe the errors got during the handling of request
type : array
items :
$ref : '#/definitions/Error'
2020-01-14 03:20:18 +01:00
Error :
description : a model for all the error response coming from harbor
type : object
properties :
code :
type : string
description : The error code
message :
type : string
description : The error message
Artifact :
type : object
properties :
id :
type : integer
format : int64
2020-01-16 01:04:22 +01:00
description : The ID of the artifact
2020-01-14 03:20:18 +01:00
type :
type : string
2020-01-16 01:04:22 +01:00
description : The type of the artifact, e.g. image, chart, etc
2020-01-14 03:20:18 +01:00
media_type :
type : string
2020-01-16 01:04:22 +01:00
description : The media type of the artifact
manifest_media_type :
type : string
description : The manifest media type of the artifact
project_id :
type : integer
format : int64
description : The ID of the project that the artifact belongs to
repository_id :
type : integer
format : int64
description : The ID of the repository that the artifact belongs to
2020-01-14 03:20:18 +01:00
digest :
type : string
description : The digest of the artifact
size :
2020-01-16 01:04:22 +01:00
type : integer
2020-01-14 03:20:18 +01:00
format : int64
description : The size of the artifact
2020-01-16 01:04:22 +01:00
push_time :
2020-01-14 03:20:18 +01:00
type : string
format : date-time
2020-01-16 01:04:22 +01:00
description : The push time of the artifact
pull_time :
type : string
format : date-time
description : The latest pull time of the artifact
extra_attrs :
$ref : '#/definitions/ExtraAttrs'
annotations :
$ref : '#/definitions/Annotations'
references :
type : array
items :
$ref : '#/definitions/Reference'
tags :
type : array
items :
$ref : '#/definitions/Tag'
2020-01-29 04:34:55 +01:00
addition_links :
$ref : '#/definitions/AdditionLinks'
2020-01-16 01:04:22 +01:00
Tag :
2020-01-14 03:20:18 +01:00
type : object
properties :
id :
type : integer
format : int64
2020-01-16 01:04:22 +01:00
description : The ID of the tag
repository_id :
type : integer
format : int64
description : The ID of the repository that the tag belongs to
artifact_id :
type : integer
format : int64
description : The ID of the artifact that the tag attached to
2020-01-14 03:20:18 +01:00
name :
type : string
2020-01-16 01:04:22 +01:00
description : The name of the tag
push_time :
type : string
format : date-time
description : The push time of the tag
pull_time :
type : string
format : date-time
description : The latest pull time of the tag
2020-02-04 10:34:56 +01:00
immutable :
type : boolean
2020-01-29 04:34:55 +01:00
x-omitempty : false
2020-02-04 10:34:56 +01:00
description : The immutable status of the tag
2020-01-16 01:04:22 +01:00
ExtraAttrs :
type : object
additionalProperties :
type : object
Annotations :
type : object
additionalProperties :
type : string
2020-01-29 04:34:55 +01:00
AdditionLinks :
2020-01-16 01:04:22 +01:00
type : object
additionalProperties :
2020-01-29 04:34:55 +01:00
$ref : '#/definitions/AdditionLink'
AdditionLink :
2020-01-16 01:04:22 +01:00
type : object
properties :
href :
type : string
2020-01-29 04:34:55 +01:00
description : The link of the addition
2020-01-16 01:04:22 +01:00
absolute :
type : boolean
2020-01-29 04:34:55 +01:00
x-omitempty : false
2020-01-16 01:04:22 +01:00
description : Determine whether the link is an absolute URL or not
Reference :
type : object
properties :
parent_id :
type : integer
format : int64
description : The parent ID of the reference
child_id :
type : integer
format : int64
description : The child ID of the reference
2020-02-02 02:13:51 +01:00
child_digest :
type : string
description : The digest of the child artifact
2020-01-16 01:04:22 +01:00
platform :
$ref : '#/definitions/Platform'
Platform :
type : object
properties :
architecture :
type : string
description : The architecture that the artifact applys to
os :
type : string
description : The OS that the artifact applys to
os.version :
type : string
description : The version of the OS that the artifact applys to
os.features :
type : array
description : The features of the OS that the artifact applys to
items :
type : string
variant :
type : string
description : The variant of the CPU
2020-01-29 04:34:55 +01:00