mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-29 21:54:13 +01:00
885a268268
* rename permission of robot account fixes #14060 Signed-off-by: Wang Yan <wangyan@vmware.com>
4331 lines
124 KiB
YAML
4331 lines
124 KiB
YAML
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:
|
|
basic:
|
|
type: basic
|
|
security:
|
|
- basic: []
|
|
- {}
|
|
paths:
|
|
/projects:
|
|
get:
|
|
summary: List projects
|
|
description: This endpoint returns projects created by Harbor.
|
|
tags:
|
|
- project
|
|
operationId: listProjects
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- name: name
|
|
in: query
|
|
description: The name of project.
|
|
required: false
|
|
type: string
|
|
- name: public
|
|
in: query
|
|
description: The project is public or private.
|
|
required: false
|
|
type: boolean
|
|
format: int32
|
|
- name: owner
|
|
in: query
|
|
description: The name of project owner.
|
|
required: false
|
|
type: string
|
|
- name: with_detail
|
|
in: query
|
|
description: Bool value indicating whether return detailed information of the project
|
|
type: boolean
|
|
required: false
|
|
default: true
|
|
responses:
|
|
'200':
|
|
description: Return all matched projects.
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Project'
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of projects
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
head:
|
|
summary: Check if the project name user provided already exists.
|
|
description: This endpoint is used to check if the project name provided already exist.
|
|
tags:
|
|
- project
|
|
operationId: headProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- name: project_name
|
|
in: query
|
|
description: Project name for checking exists.
|
|
required: true
|
|
type: string
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create a new project.
|
|
description: This endpoint is for user to create a new project.
|
|
tags:
|
|
- project
|
|
operationId: createProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/resourceNameInLocation'
|
|
- name: project
|
|
in: body
|
|
description: New created project.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ProjectReq'
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
'/projects/{project_name_or_id}':
|
|
get:
|
|
summary: Return specific project detail information
|
|
description: This endpoint returns specific project information by project ID.
|
|
tags:
|
|
- project
|
|
operationId: getProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
responses:
|
|
'200':
|
|
description: Return matched project information.
|
|
schema:
|
|
$ref: '#/definitions/Project'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update properties for a selected project.
|
|
description: This endpoint is aimed to update the properties of a project.
|
|
tags:
|
|
- project
|
|
operationId: updateProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- name: project
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ProjectReq'
|
|
description: Updates of project.
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
delete:
|
|
summary: Delete project by projectID
|
|
description: This endpoint is aimed to delete project by project ID.
|
|
tags:
|
|
- project
|
|
operationId: deleteProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name_or_id}/_deletable:
|
|
get:
|
|
summary: Get the deletable status of the project
|
|
description: Get the deletable status of the project
|
|
tags:
|
|
- project
|
|
operationId: getProjectDeletable
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
responses:
|
|
'200':
|
|
description: Return deletable status of the project.
|
|
schema:
|
|
$ref: '#/definitions/ProjectDeletable'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
'/projects/{project_name_or_id}/summary':
|
|
get:
|
|
summary: Get summary of the project.
|
|
description: Get summary of the project.
|
|
tags:
|
|
- project
|
|
operationId: getProjectSummary
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
responses:
|
|
'200':
|
|
description: Get summary of the project successfully.
|
|
schema:
|
|
$ref: '#/definitions/ProjectSummary'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories:
|
|
get:
|
|
summary: List repositories
|
|
description: List repositories of the specified project
|
|
tags:
|
|
- repository
|
|
operationId: listRepositories
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of repositories
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Repository'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}:
|
|
get:
|
|
summary: Get repository
|
|
description: Get the repository specified by name
|
|
tags:
|
|
- repository
|
|
operationId: getRepository
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/Repository'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update repository
|
|
description: Update the repository specified by name
|
|
tags:
|
|
- repository
|
|
operationId: updateRepository
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- name: repository
|
|
in: body
|
|
description: The JSON object of repository.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Repository'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
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'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}/artifacts:
|
|
get:
|
|
summary: List artifacts
|
|
description: List artifacts under the specific project and repository. Except the basic properties, the other supported queries in "q" includes "tags=*" to list only tagged artifacts, "tags=nil" to list only untagged artifacts, "tags=~v" to list artifacts whose tag fuzzy matches "v", "tags=v" to list artifact whose tag exactly matches "v", "labels=(id1, id2)" to list artifacts that both labels with id1 and id2 are added to
|
|
tags:
|
|
- artifact
|
|
operationId: listArtifacts
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/acceptVulnerabilities'
|
|
- name: with_tag
|
|
in: query
|
|
description: Specify whether the tags are included inside the returning artifacts
|
|
type: boolean
|
|
required: false
|
|
default: true
|
|
- name: with_label
|
|
in: query
|
|
description: Specify whether the labels are included inside the returning artifacts
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
- name: with_scan_overview
|
|
in: query
|
|
description: Specify whether the scan overview is included inside the returning artifacts
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
- name: with_signature
|
|
in: query
|
|
description: Specify whether the signature is included inside the tags of the returning artifacts. Only works when setting "with_tag=true"
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
- name: with_immutable_status
|
|
in: query
|
|
description: Specify whether the immutable status is included inside the tags of the returning artifacts. Only works when setting "with_tag=true"
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
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
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Artifact'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Copy artifact
|
|
description: Copy the artifact specified in the "from" parameter to the repository.
|
|
tags:
|
|
- artifact
|
|
operationId: CopyArtifact
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- name: from
|
|
in: query
|
|
description: The artifact from which the new artifact is copied from, the format should be "project/repository:tag" or "project/repository@digest".
|
|
type: string
|
|
required: true
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'405':
|
|
$ref: '#/responses/405'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}:
|
|
get:
|
|
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.
|
|
tags:
|
|
- artifact
|
|
operationId: getArtifact
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/acceptVulnerabilities'
|
|
- 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
|
|
- name: with_signature
|
|
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
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/Artifact'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'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}/scan:
|
|
post:
|
|
summary: Scan the artifact
|
|
description: Scan the specified artifact
|
|
tags:
|
|
- scan
|
|
operationId: scanArtifact
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
responses:
|
|
'202':
|
|
$ref: '#/responses/202'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log:
|
|
get:
|
|
summary: Get the log of the scan report
|
|
description: Get the log of the scan report
|
|
tags:
|
|
- scan
|
|
operationId: getReportLog
|
|
produces:
|
|
- text/plain
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- name: report_id
|
|
type: string
|
|
in: path
|
|
required: true
|
|
description: The report id to get the log
|
|
responses:
|
|
'200':
|
|
description: Successfully get scan log file
|
|
schema:
|
|
type: string
|
|
'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'
|
|
'405':
|
|
$ref: '#/responses/405'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
get:
|
|
summary: List tags
|
|
description: List tags of the specific artifact
|
|
tags:
|
|
- artifact
|
|
operationId: listTags
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- name: with_signature
|
|
in: query
|
|
description: Specify whether the signature is included inside the returning tags
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
- name: with_immutable_status
|
|
in: query
|
|
description: Specify whether the immutable status is included inside the returning tags
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of tags
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Tag'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'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/{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'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities:
|
|
get:
|
|
summary: Get the vulnerabilities addition of the specific artifact
|
|
description: Get the vulnerabilities addition of the artifact specified by the reference under the project and repository.
|
|
tags:
|
|
- artifact
|
|
operationId: getVulnerabilitiesAddition
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- $ref: '#/parameters/acceptVulnerabilities'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
Content-Type:
|
|
description: The content type of the vulnerabilities addition
|
|
type: string
|
|
schema:
|
|
type: string
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/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 type of addition.
|
|
type: string
|
|
enum: [build_history, values.yaml, readme.md, dependencies]
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
Content-Type:
|
|
description: The content type of the addition
|
|
type: string
|
|
schema:
|
|
type: string
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels:
|
|
post:
|
|
summary: Add label to artifact
|
|
description: Add label to the specified artiact.
|
|
tags:
|
|
- artifact
|
|
operationId: addLabel
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- name: label
|
|
in: body
|
|
description: The label that added to the artifact. Only the ID property is needed.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Label'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'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}/labels/{label_id}:
|
|
delete:
|
|
summary: Remove label from artifact
|
|
description: Remove the label from the specified artiact.
|
|
tags:
|
|
- artifact
|
|
operationId: removeLabel
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/repositoryName'
|
|
- $ref: '#/parameters/reference'
|
|
- name: label_id
|
|
in: path
|
|
description: The ID of the label that removed from the artifact.
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/audit-logs:
|
|
get:
|
|
summary: Get recent logs of the projects which the user is a member of
|
|
description: |
|
|
This endpoint let user see the recent operation logs of the projects which he is member of
|
|
tags:
|
|
- auditlog
|
|
operationId: listAuditLogs
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of auditlogs
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/AuditLog'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/logs:
|
|
get:
|
|
summary: Get recent logs of the projects
|
|
description: Get recent logs of the projects
|
|
tags:
|
|
- project
|
|
operationId: getLogs
|
|
parameters:
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of auditlogs
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/AuditLog'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/p2p/preheat/providers:
|
|
get:
|
|
summary: List P2P providers
|
|
description: List P2P providers
|
|
tags:
|
|
- preheat
|
|
operationId: ListProviders
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Metadata'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/p2p/preheat/instances/ping:
|
|
post:
|
|
summary: Ping status of a instance.
|
|
description: |
|
|
This endpoint checks status of a instance, the instance can be given by ID or Endpoint URL (together with credential)
|
|
operationId: PingInstances
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- name: instance
|
|
in: body
|
|
description: The JSON object of instance.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Instance'
|
|
tags:
|
|
- preheat
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
description: Instance not found (when instance is provided by ID).
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/p2p/preheat/instances:
|
|
get:
|
|
summary: List P2P provider instances
|
|
description: List P2P provider instances
|
|
tags:
|
|
- preheat
|
|
operationId: ListInstances
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/query'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of preheating provider instances
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Instance'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create p2p provider instances
|
|
description: Create p2p provider instances
|
|
tags:
|
|
- preheat
|
|
operationId: CreateInstance
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- name: instance
|
|
in: body
|
|
description: The JSON object of instance.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Instance'
|
|
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'
|
|
/p2p/preheat/instances/{preheat_instance_name}:
|
|
get:
|
|
summary: Get a P2P provider instance
|
|
description: Get a P2P provider instance
|
|
tags:
|
|
- preheat
|
|
operationId: GetInstance
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/instanceName'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/Instance'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
delete:
|
|
summary: Delete the specified P2P provider instance
|
|
description: Delete the specified P2P provider instance
|
|
tags:
|
|
- preheat
|
|
operationId: DeleteInstance
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/instanceName'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update the specified P2P provider instance
|
|
description: Update the specified P2P provider instance
|
|
tags:
|
|
- preheat
|
|
operationId: UpdateInstance
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/instanceName'
|
|
- name: instance
|
|
in: body
|
|
description: The instance to update
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Instance'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies:
|
|
post:
|
|
summary: Create a preheat policy under a project
|
|
description: Create a preheat policy under a project
|
|
tags:
|
|
- preheat
|
|
operationId: CreatePolicy
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- name: policy
|
|
in: body
|
|
description: The policy schema info
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/PreheatPolicy'
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
get:
|
|
summary: List preheat policies
|
|
description: List preheat policies
|
|
tags:
|
|
- preheat
|
|
operationId: ListPolicies
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/query'
|
|
responses:
|
|
'200':
|
|
description: List preheat policies success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of policies
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/PreheatPolicy'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies/{preheat_policy_name}:
|
|
get:
|
|
summary: Get a preheat policy
|
|
description: Get a preheat policy
|
|
tags:
|
|
- preheat
|
|
operationId: GetPolicy
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
responses:
|
|
'200':
|
|
description: Get a preheat policy success
|
|
schema:
|
|
$ref: '#/definitions/PreheatPolicy'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update preheat policy
|
|
description: Update preheat policy
|
|
tags:
|
|
- preheat
|
|
operationId: UpdatePolicy
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- name: policy
|
|
in: body
|
|
description: The policy schema info
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/PreheatPolicy'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Manual preheat
|
|
description: Manual preheat
|
|
tags:
|
|
- preheat
|
|
operationId: ManualPreheat
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- name: policy
|
|
in: body
|
|
description: The policy schema info
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/PreheatPolicy'
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
delete:
|
|
summary: Delete a preheat policy
|
|
description: Delete a preheat policy
|
|
tags:
|
|
- preheat
|
|
operationId: DeletePolicy
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies/{preheat_policy_name}/executions:
|
|
get:
|
|
summary: List executions for the given policy
|
|
description: List executions for the given policy
|
|
tags:
|
|
- preheat
|
|
operationId: ListExecutions
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/query'
|
|
responses:
|
|
'200':
|
|
description: List executions success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of executions
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Execution'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}:
|
|
get:
|
|
summary: Get a execution detail by id
|
|
description: Get a execution detail by id
|
|
tags:
|
|
- preheat
|
|
operationId: GetExecution
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- $ref: '#/parameters/executionId'
|
|
responses:
|
|
'200':
|
|
description: Get execution success
|
|
schema:
|
|
$ref: '#/definitions/Execution'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
patch:
|
|
summary: Stop a execution
|
|
description: Stop a execution
|
|
tags:
|
|
- preheat
|
|
operationId: StopExecution
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- $ref: '#/parameters/executionId'
|
|
- name: execution
|
|
description: The data of execution
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Execution'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks:
|
|
get:
|
|
summary: List all the related tasks for the given execution
|
|
description: List all the related tasks for the given execution
|
|
tags:
|
|
- preheat
|
|
operationId: ListTasks
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- $ref: '#/parameters/executionId'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/query'
|
|
responses:
|
|
'200':
|
|
description: List tasks success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of tasks
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Task'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs:
|
|
get:
|
|
summary: Get the log text stream of the specified task for the given execution
|
|
description: Get the log text stream of the specified task for the given execution
|
|
tags:
|
|
- preheat
|
|
operationId: GetPreheatLog
|
|
produces:
|
|
- text/plain
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
- $ref: '#/parameters/preheatPolicyName'
|
|
- $ref: '#/parameters/executionId'
|
|
- $ref: '#/parameters/taskId'
|
|
responses:
|
|
'200':
|
|
description: Get log success
|
|
headers:
|
|
Content-Type:
|
|
description: Content type of response
|
|
type: string
|
|
schema:
|
|
type: string
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name}/preheat/providers:
|
|
get:
|
|
summary: Get all providers at project level
|
|
description: Get all providers at project level
|
|
tags:
|
|
- preheat
|
|
operationId: ListProvidersUnderProject
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/projectName'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ProviderUnderProject'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name_or_id}/robots:
|
|
get:
|
|
summary: Get all robot accounts of specified project
|
|
description: Get all robot accounts of specified project
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- $ref: '#/parameters/query'
|
|
tags:
|
|
- robotv1
|
|
operationId: ListRobotV1
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of robot accounts
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Robot'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create a robot account
|
|
description: Create a robot account
|
|
tags:
|
|
- robotv1
|
|
operationId: CreateRobotV1
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- name: robot
|
|
in: body
|
|
description: The JSON object of a robot account.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RobotCreateV1'
|
|
responses:
|
|
'201':
|
|
description: Created
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
Location:
|
|
description: The location of the resource
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/RobotCreated'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/projects/{project_name_or_id}/robots/{robot_id}:
|
|
get:
|
|
summary: Get a robot account
|
|
description: This endpoint returns specific robot account information by robot ID.
|
|
tags:
|
|
- robotv1
|
|
operationId: GetRobotByIDV1
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- $ref: '#/parameters/robotId'
|
|
responses:
|
|
'200':
|
|
description: Return matched robot information.
|
|
schema:
|
|
$ref: '#/definitions/Robot'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update status of robot account.
|
|
description: Used to disable/enable a specified robot account.
|
|
tags:
|
|
- robotv1
|
|
operationId: UpdateRobotV1
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- $ref: '#/parameters/robotId'
|
|
- name: robot
|
|
in: body
|
|
description: The JSON object of a robot account.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Robot'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
delete:
|
|
summary: Delete a robot account
|
|
description: This endpoint deletes specific robot account information by robot ID.
|
|
tags:
|
|
- robotv1
|
|
operationId: DeleteRobotV1
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/isResourceName'
|
|
- $ref: '#/parameters/projectNameOrId'
|
|
- $ref: '#/parameters/robotId'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/icons/{digest}:
|
|
get:
|
|
summary: Get artifact icon
|
|
description: Get the artifact icon with the specified digest. As the original icon image is resized and encoded before returning, the parameter "digest" in the path doesn't match the hash of the returned content
|
|
tags:
|
|
- icon
|
|
operationId: getIcon
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/digest'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/Icon'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/robots:
|
|
get:
|
|
summary: Get robot account
|
|
description: List the robot accounts with the specified level and project.
|
|
tags:
|
|
- robot
|
|
operationId: ListRobot
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of robot accounts
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Robot'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create a robot account
|
|
description: Create a robot account
|
|
tags:
|
|
- robot
|
|
operationId: CreateRobot
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- name: robot
|
|
in: body
|
|
description: The JSON object of a robot account.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RobotCreate'
|
|
responses:
|
|
'201':
|
|
description: Created
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
Location:
|
|
description: The location of the resource
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/RobotCreated'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/robots/{robot_id}:
|
|
get:
|
|
summary: Get a robot account
|
|
description: This endpoint returns specific robot account information by robot ID.
|
|
tags:
|
|
- robot
|
|
operationId: GetRobotByID
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/robotId'
|
|
responses:
|
|
'200':
|
|
description: Return matched robot information.
|
|
schema:
|
|
$ref: '#/definitions/Robot'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update a robot account
|
|
description: This endpoint updates specific robot account information by robot ID.
|
|
tags:
|
|
- robot
|
|
operationId: UpdateRobot
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/robotId'
|
|
- name: robot
|
|
in: body
|
|
description: The JSON object of a robot account.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Robot'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
patch:
|
|
summary: Refresh the robot secret
|
|
description: Refresh the robot secret
|
|
tags:
|
|
- robot
|
|
operationId: RefreshSec
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/robotId'
|
|
- name: robotSec
|
|
description: The JSON object of a robot account.
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RobotSec'
|
|
responses:
|
|
'200':
|
|
description: Return refreshed robot sec.
|
|
schema:
|
|
$ref: '#/definitions/RobotSec'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
delete:
|
|
summary: Delete a robot account
|
|
description: This endpoint deletes specific robot account information by robot ID.
|
|
tags:
|
|
- robot
|
|
operationId: DeleteRobot
|
|
parameters:
|
|
- $ref: '#/parameters/requestId'
|
|
- $ref: '#/parameters/robotId'
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/replication/executions:
|
|
get:
|
|
summary: List replication executions
|
|
description: List replication executions
|
|
tags:
|
|
- replication
|
|
operationId: listReplicationExecutions
|
|
parameters:
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- name: policy_id
|
|
in: query
|
|
type: integer
|
|
required: false
|
|
description: The ID of the policy that the executions belong to.
|
|
- name: status
|
|
in: query
|
|
type: string
|
|
required: false
|
|
description: The execution status.
|
|
- name: trigger
|
|
in: query
|
|
type: string
|
|
required: false
|
|
description: The trigger mode.
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of the resources
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ReplicationExecution'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Start one replication execution
|
|
description: Start one replication execution according to the policy
|
|
tags:
|
|
- replication
|
|
operationId: startReplication
|
|
parameters:
|
|
- name: execution
|
|
in: body
|
|
description: The ID of policy that the execution belongs to
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/StartReplicationExecution'
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/replication/executions/{id}:
|
|
get:
|
|
summary: Get the specific replication execution
|
|
description: Get the replication execution specified by ID
|
|
tags:
|
|
- replication
|
|
operationId: getReplicationExecution
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the execution.
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/ReplicationExecution'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Stop the specific replication execution
|
|
description: Stop the replication execution specified by ID
|
|
tags:
|
|
- replication
|
|
operationId: stopReplication
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the execution.
|
|
required: true
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/replication/executions/{id}/tasks:
|
|
get:
|
|
summary: List replication tasks for a specific execution
|
|
description: List replication tasks for a specific execution
|
|
tags:
|
|
- replication
|
|
operationId: listReplicationTasks
|
|
parameters:
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the execution that the tasks belongs to.
|
|
required: true
|
|
- name: status
|
|
in: query
|
|
type: string
|
|
required: false
|
|
description: The task status.
|
|
- name: resource_type
|
|
in: query
|
|
type: string
|
|
required: false
|
|
description: The resource type.
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of the resources
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ReplicationTask'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/replication/executions/{id}/tasks/{task_id}/log:
|
|
get:
|
|
summary: Get the log of the specific replication task
|
|
description: Get the log of the specific replication task
|
|
tags:
|
|
- replication
|
|
operationId: getReplicationLog
|
|
produces:
|
|
- text/plain
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the execution that the tasks belongs to.
|
|
required: true
|
|
- name: task_id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the task.
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
headers:
|
|
Content-Type:
|
|
description: The content type of response body
|
|
type: string
|
|
schema:
|
|
type: string
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/scans/all/metrics:
|
|
get:
|
|
summary: Get the metrics of the latest scan all process
|
|
description: Get the metrics of the latest scan all process
|
|
tags:
|
|
- scanAll
|
|
operationId: getLatestScanAllMetrics
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/Stats'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/scans/schedule/metrics:
|
|
get:
|
|
summary: Get the metrics of the latest scheduled scan all process
|
|
description: Get the metrics of the latest scheduled scan all process
|
|
tags:
|
|
- scanAll
|
|
operationId: getLatestScheduledScanAllMetrics
|
|
deprecated: true
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/Stats'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/systeminfo:
|
|
get:
|
|
summary: Get general system info
|
|
description: |
|
|
This API is for retrieving general system info, this can be called by anonymous request. Some attributes will be omitted in the response when this API is called by anonymous request.
|
|
tags:
|
|
- systeminfo
|
|
responses:
|
|
'200':
|
|
description: Get general info successfully.
|
|
schema:
|
|
$ref: '#/definitions/GeneralInfo'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/systeminfo/volumes:
|
|
get:
|
|
summary: Get system volume info (total/free size).
|
|
description: |
|
|
This endpoint is for retrieving system volume info that only provides for admin user. Note that the response only reflects the storage status of local disk.
|
|
tags:
|
|
- systeminfo
|
|
responses:
|
|
'200':
|
|
description: Get system volumes successfully.
|
|
schema:
|
|
$ref: '#/definitions/SystemInfo'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/systeminfo/getcert:
|
|
get:
|
|
summary: Get default root certificate.
|
|
description: |
|
|
This endpoint is for downloading a default root certificate.
|
|
tags:
|
|
- systeminfo
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
'200':
|
|
description: Get default root certificate successfully.
|
|
schema:
|
|
type: file
|
|
headers:
|
|
Content-Disposition:
|
|
description: To set the filename of the downloaded file.
|
|
type: string
|
|
'404':
|
|
description: Not found the default root certificate.
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/system/gc:
|
|
get:
|
|
summary: Get gc results.
|
|
description: This endpoint let user get gc execution history.
|
|
tags:
|
|
- gc
|
|
operationId: getGCHistory
|
|
parameters:
|
|
- $ref: '#/parameters/query'
|
|
- $ref: '#/parameters/page'
|
|
- $ref: '#/parameters/pageSize'
|
|
responses:
|
|
'200':
|
|
description: Get gc results successfully.
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of history
|
|
type: integer
|
|
Link:
|
|
description: Link refers to the previous page and next page
|
|
type: string
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/GCHistory'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/system/gc/{gc_id}:
|
|
get:
|
|
summary: Get gc status.
|
|
description: This endpoint let user get gc status filtered by specific ID.
|
|
operationId: getGC
|
|
parameters:
|
|
- $ref: '#/parameters/gcId'
|
|
tags:
|
|
- gc
|
|
responses:
|
|
'200':
|
|
description: Get gc results successfully.
|
|
schema:
|
|
$ref: '#/definitions/GCHistory'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/system/gc/{gc_id}/log:
|
|
get:
|
|
summary: Get gc job log.
|
|
description: This endpoint let user get gc job logs filtered by specific ID.
|
|
operationId: getGCLog
|
|
parameters:
|
|
- $ref: '#/parameters/gcId'
|
|
tags:
|
|
- gc
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
'200':
|
|
description: Get successfully.
|
|
schema:
|
|
type: string
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'404':
|
|
$ref: '#/responses/404'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/system/gc/schedule:
|
|
get:
|
|
summary: Get gc's schedule.
|
|
description: This endpoint is for get schedule of gc job.
|
|
operationId: getGCSchedule
|
|
tags:
|
|
- gc
|
|
responses:
|
|
'200':
|
|
description: Get gc's schedule.
|
|
schema:
|
|
$ref: '#/definitions/GCHistory'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create a gc schedule.
|
|
description: |
|
|
This endpoint is for update gc schedule.
|
|
operationId: createGCSchedule
|
|
parameters:
|
|
- name: schedule
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Schedule'
|
|
description: Updates of gc's schedule.
|
|
tags:
|
|
- gc
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update gc's schedule.
|
|
description: |
|
|
This endpoint is for update gc schedule.
|
|
operationId: updateGCSchedule
|
|
parameters:
|
|
- name: schedule
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Schedule'
|
|
description: Updates of gc's schedule.
|
|
tags:
|
|
- gc
|
|
responses:
|
|
'200':
|
|
description: Updated gc's schedule successfully.
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/system/scanAll/schedule:
|
|
get:
|
|
summary: Get scan all's schedule.
|
|
description: This endpoint is for getting a schedule for the scan all job, which scans all of images in Harbor.
|
|
tags:
|
|
- scanAll
|
|
operationId: getScanAllSchedule
|
|
responses:
|
|
'200':
|
|
description: Get a schedule for the scan all job, which scans all of images in Harbor.
|
|
schema:
|
|
$ref: '#/definitions/Schedule'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update scan all's schedule.
|
|
description: This endpoint is for updating the schedule of scan all job, which scans all of images in Harbor.
|
|
parameters:
|
|
- name: schedule
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Schedule'
|
|
description: Updates the schedule of scan all job, which scans all of images in Harbor.
|
|
tags:
|
|
- scanAll
|
|
operationId: updateScanAllSchedule
|
|
responses:
|
|
'200':
|
|
$ref: '#/responses/200'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
post:
|
|
summary: Create a schedule or a manual trigger for the scan all job.
|
|
description: This endpoint is for creating a schedule or a manual trigger for the scan all job, which scans all of images in Harbor.
|
|
parameters:
|
|
- name: schedule
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Schedule'
|
|
description: Create a schedule or a manual trigger for the scan all job.
|
|
tags:
|
|
- scanAll
|
|
operationId: createScanAllSchedule
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'409':
|
|
$ref: '#/responses/409'
|
|
'412':
|
|
$ref: '#/responses/412'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
/ping:
|
|
get:
|
|
summary: Ping Harbor to check if it's alive.
|
|
description: This API simply replies a pong to indicate the process to handle API is up, disregarding the health status of dependent components.
|
|
tags:
|
|
- ping
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
'200':
|
|
description: The API server is alive
|
|
schema:
|
|
type: string
|
|
/retentions/metadatas:
|
|
get:
|
|
summary: Get Retention Metadatas
|
|
description: Get Retention Metadatas.
|
|
operationId: getRentenitionMetadata
|
|
tags:
|
|
- Retention
|
|
responses:
|
|
'200':
|
|
description: Get Retention Metadatas successfully.
|
|
schema:
|
|
$ref: '#/definitions/RetentionMetadata'
|
|
|
|
/retentions:
|
|
post:
|
|
summary: Create Retention Policy
|
|
operationId: createRetention
|
|
description: >-
|
|
Create Retention Policy, you can reference metadatas API for the policy model.
|
|
You can check project metadatas to find whether a retention policy is already binded.
|
|
This method should only be called when no retention policy binded to project yet.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: policy
|
|
in: body
|
|
description: Create Retention Policy successfully.
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RetentionPolicy'
|
|
responses:
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'400':
|
|
$ref: '#/responses/400'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
/retentions/{id}:
|
|
get:
|
|
summary: Get Retention Policy
|
|
operationId: getRetention
|
|
description: Get Retention Policy.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
responses:
|
|
'200':
|
|
description: Get Retention Policy successfully.
|
|
schema:
|
|
$ref: '#/definitions/RetentionPolicy'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
put:
|
|
summary: Update Retention Policy
|
|
operationId: updateRetention
|
|
description: >-
|
|
Update Retention Policy, you can reference metadatas API for the policy model.
|
|
You can check project metadatas to find whether a retention policy is already binded.
|
|
This method should only be called when retention policy has already binded to project.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: policy
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RetentionPolicy'
|
|
responses:
|
|
'200':
|
|
description: Update Retention Policy successfully.
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
/retentions/{id}/executions:
|
|
post:
|
|
summary: Trigger a Retention Execution
|
|
operationId: triggerRetentionExecution
|
|
description: Trigger a Retention Execution, if dry_run is True, nothing would be deleted actually.
|
|
tags:
|
|
- Retention
|
|
produces:
|
|
- text/plain
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: body
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
properties:
|
|
dry_run:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: Trigger a Retention job successfully.
|
|
'201':
|
|
$ref: '#/responses/201'
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
get:
|
|
summary: Get Retention executions
|
|
operationId: listRetentionExecutions
|
|
description: Get Retention executions, execution status may be delayed before job service schedule it up.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: page
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The page number.
|
|
- name: page_size
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The size of per page.
|
|
responses:
|
|
'200':
|
|
description: Get a Retention execution successfully.
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
$ref: '#/definitions/RetentionExecution'
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of available items
|
|
type: integer
|
|
Link:
|
|
description: Link to previous page and next page
|
|
type: string
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
/retentions/{id}/executions/{eid}:
|
|
patch:
|
|
summary: Stop a Retention execution
|
|
operationId: operateRetentionExecution
|
|
description: Stop a Retention execution, only support "stop" action now.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: eid
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention execution ID.
|
|
- name: body
|
|
in: body
|
|
description: The action, only support "stop" now.
|
|
required: true
|
|
schema:
|
|
type: object
|
|
properties:
|
|
action:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Stop a Retention job successfully.
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
/retentions/{id}/executions/{eid}/tasks:
|
|
get:
|
|
summary: Get Retention tasks
|
|
operationId: listRetentionTasks
|
|
description: Get Retention tasks, each repository as a task.
|
|
tags:
|
|
- Retention
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: eid
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention execution ID.
|
|
- name: page
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The page number.
|
|
- name: page_size
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The size of per page.
|
|
responses:
|
|
'200':
|
|
description: Get Retention job tasks successfully.
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
$ref: '#/definitions/RetentionExecutionTask'
|
|
headers:
|
|
X-Total-Count:
|
|
description: The total count of available items
|
|
type: integer
|
|
Link:
|
|
description: Link to previous page and next page
|
|
type: string
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
/retentions/{id}/executions/{eid}/tasks/{tid}:
|
|
get:
|
|
summary: Get Retention job task log
|
|
operationId: getRetentionTaskLog
|
|
description: Get Retention job task log, tags ratain or deletion detail will be shown in a table.
|
|
tags:
|
|
- Retention
|
|
produces:
|
|
- text/plain
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention ID.
|
|
- name: eid
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention execution ID.
|
|
- name: tid
|
|
in: path
|
|
type: integer
|
|
format: int64
|
|
required: true
|
|
description: Retention execution ID.
|
|
responses:
|
|
'200':
|
|
description: Get Retention job task log successfully.
|
|
schema:
|
|
type: string
|
|
'401':
|
|
$ref: '#/responses/401'
|
|
'403':
|
|
$ref: '#/responses/403'
|
|
'500':
|
|
$ref: '#/responses/500'
|
|
|
|
parameters:
|
|
query:
|
|
name: q
|
|
description: Query string to query resources. Supported query patterns are "exact match(k=v)", "fuzzy match(k=~v)", "range(k=[min~max])", "list with union releationship(k={v1 v2 v3})" and "list with intersetion relationship(k=(v1 v2 v3))". The value of range and list can be string(enclosed by " or '), integer or time(in format "2020-04-09 02:36:00"). All of these query patterns should be put in the query string "q=xxx" and splitted by ",". e.g. q=k1=v1,k2=~v2,k3=[min~max]
|
|
in: query
|
|
type: string
|
|
required: false
|
|
requestId:
|
|
name: X-Request-Id
|
|
description: An unique ID for the request
|
|
in: header
|
|
type: string
|
|
required: false
|
|
minLength: 1
|
|
resourceNameInLocation:
|
|
name: X-Resource-Name-In-Location
|
|
description: The flag to indicate whether to return the name of the resource in Location. When X-Resource-Name-In-Location is true, the Location will return the name of the resource.
|
|
in: header
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
isResourceName:
|
|
name: X-Is-Resource-Name
|
|
description: The flag to indicate whether the parameter which supports both name and id in the path is the name of the resource. When the X-Is-Resource-Name is false and the parameter can be converted to an integer, the parameter will be as an id, otherwise, it will be as a name.
|
|
in: header
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
acceptVulnerabilities:
|
|
name: X-Accept-Vulnerabilities
|
|
in: header
|
|
type: string
|
|
default: 'application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0'
|
|
description: |-
|
|
A comma-separated lists of MIME types for the scan report or scan summary. The first mime type will be used when the report found for it.
|
|
Currently the mime type supports 'application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0' and 'application/vnd.security.vulnerability.report; version=1.1'
|
|
projectName:
|
|
name: project_name
|
|
in: path
|
|
description: The name of the project
|
|
required: true
|
|
type: string
|
|
projectNameOrId:
|
|
name: project_name_or_id
|
|
in: path
|
|
description: The name or id of the project
|
|
required: true
|
|
type: string
|
|
repositoryName:
|
|
name: repository_name
|
|
in: path
|
|
description: The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -> a%252Fb
|
|
required: true
|
|
type: string
|
|
reference:
|
|
name: reference
|
|
in: path
|
|
description: The reference of the artifact, can be digest or tag
|
|
required: true
|
|
type: string
|
|
digest:
|
|
name: digest
|
|
in: path
|
|
description: The digest of the resource
|
|
required: true
|
|
type: string
|
|
tagName:
|
|
name: tag_name
|
|
in: path
|
|
description: The name of the tag
|
|
required: true
|
|
type: string
|
|
page:
|
|
name: page
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The page number
|
|
default: 1
|
|
pageSize:
|
|
name: page_size
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
required: false
|
|
description: The size of per page
|
|
default: 10
|
|
maximum: 100
|
|
instanceName:
|
|
name: preheat_instance_name
|
|
in: path
|
|
description: Instance Name
|
|
required: true
|
|
type: string
|
|
preheatPolicyName:
|
|
name: preheat_policy_name
|
|
in: path
|
|
description: Preheat Policy Name
|
|
required: true
|
|
type: string
|
|
executionId:
|
|
name: execution_id
|
|
in: path
|
|
description: Execution ID
|
|
required: true
|
|
type: integer
|
|
taskId:
|
|
name: task_id
|
|
in: path
|
|
description: Task ID
|
|
required: true
|
|
type: integer
|
|
robotId:
|
|
name: robot_id
|
|
in: path
|
|
description: Robot ID
|
|
required: true
|
|
type: integer
|
|
gcId:
|
|
name: gc_id
|
|
in: path
|
|
description: The ID of the gc log
|
|
required: true
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'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
|
|
Location:
|
|
description: The location of the resource
|
|
type: string
|
|
'202':
|
|
description: Accepted
|
|
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:
|
|
$ref: '#/definitions/Errors'
|
|
'401':
|
|
description: Unauthorized
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'403':
|
|
description: Forbidden
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'404':
|
|
description: Not found
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'405':
|
|
description: Method not allowed
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'409':
|
|
description: Conflict
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'412':
|
|
description: Precondition failed
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
'500':
|
|
description: Internal server error
|
|
headers:
|
|
X-Request-Id:
|
|
description: The ID of the corresponding request for the response
|
|
type: string
|
|
schema:
|
|
$ref: '#/definitions/Errors'
|
|
definitions:
|
|
Errors:
|
|
description: The error array that describe the errors got during the handling of request
|
|
type: object
|
|
properties:
|
|
errors:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Error'
|
|
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
|
|
Repository:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the repository
|
|
project_id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the project that the repository belongs to
|
|
name:
|
|
type: string
|
|
description: The name of the repository
|
|
description:
|
|
type: string
|
|
description: The description of the repository
|
|
artifact_count:
|
|
type: integer
|
|
format: int64
|
|
description: The count of the artifacts inside the repository
|
|
pull_count:
|
|
type: integer
|
|
format: int64
|
|
description: The count that the artifact inside the repository pulled
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time of the repository
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The update time of the repository
|
|
Artifact:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the artifact
|
|
type:
|
|
type: string
|
|
description: The type of the artifact, e.g. image, chart, etc
|
|
media_type:
|
|
type: string
|
|
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
|
|
digest:
|
|
type: string
|
|
description: The digest of the artifact
|
|
size:
|
|
type: integer
|
|
format: int64
|
|
description: The size of the artifact
|
|
icon:
|
|
type: string
|
|
description: The digest of the icon
|
|
push_time:
|
|
type: string
|
|
format: date-time
|
|
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'
|
|
addition_links:
|
|
$ref: '#/definitions/AdditionLinks'
|
|
labels:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Label'
|
|
scan_overview:
|
|
$ref: '#/definitions/ScanOverview'
|
|
description: The overview of the scan result.
|
|
Tag:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
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
|
|
name:
|
|
type: string
|
|
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
|
|
immutable:
|
|
type: boolean
|
|
x-omitempty: false
|
|
description: The immutable status of the tag
|
|
signed:
|
|
type: boolean
|
|
x-omitempty: false
|
|
description: The attribute indicates whether the tag is signed or not
|
|
ExtraAttrs:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
Annotations:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
AdditionLinks:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: '#/definitions/AdditionLink'
|
|
AdditionLink:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
description: The link of the addition
|
|
absolute:
|
|
type: boolean
|
|
x-omitempty: false
|
|
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
|
|
child_digest:
|
|
type: string
|
|
description: The digest of the child artifact
|
|
platform:
|
|
$ref: '#/definitions/Platform'
|
|
annotations:
|
|
$ref: '#/definitions/Annotations'
|
|
urls:
|
|
type: array
|
|
description: The download URLs
|
|
items:
|
|
type: string
|
|
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
|
|
Label:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the label
|
|
name:
|
|
type: string
|
|
description: The name the label
|
|
description:
|
|
type: string
|
|
description: The description the label
|
|
color:
|
|
type: string
|
|
description: The color the label
|
|
scope:
|
|
type: string
|
|
description: The scope the label
|
|
project_id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of project that the label belongs to
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time the label
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The update time of the label
|
|
Scanner:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Name of the scanner
|
|
example: "Trivy"
|
|
vendor:
|
|
type: string
|
|
description: Name of the scanner provider
|
|
example: "Aqua Security"
|
|
version:
|
|
type: string
|
|
description: Version of the scanner adapter
|
|
example: "v0.9.1"
|
|
ScanOverview:
|
|
type: object
|
|
description: 'The scan overview attached in the metadata of tag'
|
|
additionalProperties:
|
|
$ref: '#/definitions/NativeReportSummary'
|
|
NativeReportSummary:
|
|
type: object
|
|
description: 'The summary for the native report'
|
|
properties:
|
|
report_id:
|
|
type: string
|
|
description: 'id of the native scan report'
|
|
example: '5f62c830-f996-11e9-957f-0242c0a89008'
|
|
scan_status:
|
|
type: string
|
|
description: 'The status of the report generating process'
|
|
example: 'Success'
|
|
severity:
|
|
type: string
|
|
description: 'The overall severity'
|
|
example: 'High'
|
|
duration:
|
|
type: integer
|
|
format: int64
|
|
description: 'The seconds spent for generating the report'
|
|
example: 300
|
|
summary:
|
|
$ref: '#/definitions/VulnerabilitySummary'
|
|
start_time:
|
|
type: string
|
|
format: date-time
|
|
description: 'The start time of the scan process that generating report'
|
|
example: '2006-01-02T14:04:05'
|
|
end_time:
|
|
type: string
|
|
format: date-time
|
|
description: 'The end time of the scan process that generating report'
|
|
example: '2006-01-02T15:04:05'
|
|
complete_percent:
|
|
type: integer
|
|
description: 'The complete percent of the scanning which value is between 0 and 100'
|
|
example: 100
|
|
scanner:
|
|
$ref: '#/definitions/Scanner'
|
|
VulnerabilitySummary:
|
|
type: object
|
|
description: |
|
|
VulnerabilitySummary contains the total number of the foun d vulnerabilities number and numbers of each severity level.
|
|
properties:
|
|
total:
|
|
type: integer
|
|
format: int
|
|
description: 'The total number of the found vulnerabilities'
|
|
example: 500
|
|
x-omitempty: false
|
|
fixable:
|
|
type: integer
|
|
format: int
|
|
description: 'The number of the fixable vulnerabilities'
|
|
example: 100
|
|
x-omitempty: false
|
|
summary:
|
|
type: object
|
|
description: 'Numbers of the vulnerabilities with different severity'
|
|
additionalProperties:
|
|
type: integer
|
|
format: int
|
|
example: 10
|
|
example:
|
|
'Critical': 5
|
|
'High': 5
|
|
x-omitempty: false
|
|
AuditLog:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of the audit log entry.
|
|
username:
|
|
type: string
|
|
description: Username of the user in this log entry.
|
|
resource:
|
|
type: string
|
|
description: Name of the repository in this log entry.
|
|
resource_type:
|
|
type: string
|
|
description: Tag of the repository in this log entry.
|
|
operation:
|
|
type: string
|
|
description: The operation against the repository in this log entry.
|
|
op_time:
|
|
type: string
|
|
format: date-time
|
|
example: '2006-01-02T15:04:05'
|
|
description: The time when this operation is triggered.
|
|
Metadata:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: id
|
|
name:
|
|
type: string
|
|
description: name
|
|
icon:
|
|
type: string
|
|
description: icon
|
|
maintainers:
|
|
type: array
|
|
description: maintainers
|
|
items:
|
|
type: string
|
|
version:
|
|
type: string
|
|
description: version
|
|
source:
|
|
type: string
|
|
description: source
|
|
Instance:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: Unique ID
|
|
name:
|
|
type: string
|
|
description: Instance name
|
|
description:
|
|
type: string
|
|
description: Description of instance
|
|
vendor:
|
|
type: string
|
|
description: Based on which driver, identified by ID
|
|
endpoint:
|
|
type: string
|
|
description: The service endpoint of this instance
|
|
auth_mode:
|
|
type: string
|
|
description: The authentication way supported
|
|
auth_info:
|
|
type: object
|
|
description: The auth credential data if exists
|
|
additionalProperties:
|
|
type: string
|
|
status:
|
|
type: string
|
|
description: The health status
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the instance is activated or not
|
|
x-omitempty: false
|
|
default:
|
|
type: boolean
|
|
description: Whether the instance is default or not
|
|
x-omitempty: false
|
|
insecure:
|
|
type: boolean
|
|
description: Whether the instance endpoint is insecure or not
|
|
x-omitempty: false
|
|
setup_timestamp:
|
|
type: integer
|
|
format: int64
|
|
description: The timestamp of instance setting up
|
|
PreheatPolicy:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of preheat policy
|
|
name:
|
|
type: string
|
|
description: The Name of preheat policy
|
|
description:
|
|
type: string
|
|
description: The Description of preheat policy
|
|
project_id:
|
|
type: integer
|
|
description: The ID of preheat policy project
|
|
provider_id:
|
|
type: integer
|
|
description: The ID of preheat policy provider
|
|
provider_name:
|
|
type: string
|
|
description: The Name of preheat policy provider
|
|
filters:
|
|
type: string
|
|
description: The Filters of preheat policy
|
|
trigger:
|
|
type: string
|
|
description: The Trigger of preheat policy
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the preheat policy enabled
|
|
x-omitempty: false
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The Create Time of preheat policy
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The Update Time of preheat policy
|
|
Metrics:
|
|
type: object
|
|
properties:
|
|
task_count:
|
|
type: integer
|
|
description: The count of task
|
|
success_task_count:
|
|
type: integer
|
|
description: The count of success task
|
|
error_task_count:
|
|
type: integer
|
|
description: The count of error task
|
|
pending_task_count:
|
|
type: integer
|
|
description: The count of pending task
|
|
running_task_count:
|
|
type: integer
|
|
description: The count of running task
|
|
scheduled_task_count:
|
|
type: integer
|
|
description: The count of scheduled task
|
|
stopped_task_count:
|
|
type: integer
|
|
description: The count of stopped task
|
|
Execution:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of execution
|
|
vendor_type:
|
|
type: string
|
|
description: The vendor type of execution
|
|
vendor_id:
|
|
type: integer
|
|
description: The vendor id of execution
|
|
status:
|
|
type: string
|
|
description: The status of execution
|
|
status_message:
|
|
type: string
|
|
description: The status message of execution
|
|
metrics:
|
|
$ref: '#/definitions/Metrics'
|
|
trigger:
|
|
type: string
|
|
description: The trigger of execution
|
|
extra_attrs:
|
|
$ref: '#/definitions/ExtraAttrs'
|
|
start_time:
|
|
type: string
|
|
description: The start time of execution
|
|
end_time:
|
|
type: string
|
|
description: The end time of execution
|
|
Task:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of task
|
|
execution_id:
|
|
type: integer
|
|
description: The ID of task execution
|
|
status:
|
|
type: string
|
|
description: The status of task
|
|
status_message:
|
|
type: string
|
|
description: The status message of task
|
|
run_count:
|
|
type: integer
|
|
format: int32
|
|
description: The count of task run
|
|
extra_attrs:
|
|
$ref: '#/definitions/ExtraAttrs'
|
|
creation_time:
|
|
type: string
|
|
description: The creation time of task
|
|
update_time:
|
|
type: string
|
|
description: The update time of task
|
|
start_time:
|
|
type: string
|
|
description: The start time of task
|
|
end_time:
|
|
type: string
|
|
description: The end time of task
|
|
ProviderUnderProject:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
provider:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
default:
|
|
type: boolean
|
|
Icon:
|
|
type: object
|
|
properties:
|
|
content-type:
|
|
type: string
|
|
description: The content type of the icon
|
|
content:
|
|
type: string
|
|
description: The base64 encoded content of the icon
|
|
ProjectReq:
|
|
type: object
|
|
properties:
|
|
project_name:
|
|
type: string
|
|
description: The name of the project.
|
|
public:
|
|
type: boolean
|
|
description: deprecated, reserved for project creation in replication
|
|
x-nullable: true
|
|
metadata:
|
|
description: The metadata of the project.
|
|
$ref: '#/definitions/ProjectMetadata'
|
|
cve_allowlist:
|
|
description: The CVE allowlist of the project.
|
|
$ref: '#/definitions/CVEAllowlist'
|
|
storage_limit:
|
|
type: integer
|
|
format: int64
|
|
description: The storage quota of the project.
|
|
x-nullable: true
|
|
registry_id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of referenced registry when creating the proxy cache project
|
|
x-nullable: true
|
|
Project:
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
type: integer
|
|
format: int32
|
|
description: Project ID
|
|
owner_id:
|
|
type: integer
|
|
format: int32
|
|
description: The owner ID of the project always means the creator of the project.
|
|
name:
|
|
type: string
|
|
description: The name of the project.
|
|
registry_id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of referenced registry when the project is a proxy cache project.
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time of the project.
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The update time of the project.
|
|
deleted:
|
|
type: boolean
|
|
description: A deletion mark of the project.
|
|
owner_name:
|
|
type: string
|
|
description: The owner name of the project.
|
|
togglable:
|
|
type: boolean
|
|
description: Correspond to the UI about whether the project's publicity is updatable (for UI)
|
|
current_user_role_id:
|
|
type: integer
|
|
description: The role ID with highest permission of the current user who triggered the API (for UI). This attribute is deprecated and will be removed in future versions.
|
|
current_user_role_ids:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
format: int32
|
|
description: The list of role ID of the current user who triggered the API (for UI)
|
|
repo_count:
|
|
type: integer
|
|
description: The number of the repositories under this project.
|
|
chart_count:
|
|
type: integer
|
|
description: The total number of charts under this project.
|
|
metadata:
|
|
description: The metadata of the project.
|
|
$ref: '#/definitions/ProjectMetadata'
|
|
cve_allowlist:
|
|
description: The CVE allowlist of this project.
|
|
$ref: '#/definitions/CVEAllowlist'
|
|
ProjectDeletable:
|
|
type: object
|
|
properties:
|
|
deletable:
|
|
type: boolean
|
|
description: Whether the project can be deleted.
|
|
message:
|
|
type: string
|
|
description: The detail message when the project can not be deleted.
|
|
ProjectMetadata:
|
|
type: object
|
|
properties:
|
|
public:
|
|
type: string
|
|
description: 'The public status of the project. The valid values are "true", "false".'
|
|
enable_content_trust:
|
|
type: string
|
|
description: 'Whether content trust is enabled or not. If it is enabled, user can''t pull unsigned images from this project. The valid values are "true", "false".'
|
|
x-nullable: true
|
|
prevent_vul:
|
|
type: string
|
|
description: 'Whether prevent the vulnerable images from running. The valid values are "true", "false".'
|
|
x-nullable: true
|
|
severity:
|
|
type: string
|
|
description: 'If the vulnerability is high than severity defined here, the images can''t be pulled. The valid values are "none", "low", "medium", "high", "critical".'
|
|
x-nullable: true
|
|
auto_scan:
|
|
type: string
|
|
description: 'Whether scan images automatically when pushing. The valid values are "true", "false".'
|
|
x-nullable: true
|
|
reuse_sys_cve_allowlist:
|
|
type: string
|
|
description: 'Whether this project reuse the system level CVE allowlist as the allowlist of its own. The valid values are "true", "false".
|
|
If it is set to "true" the actual allowlist associate with this project, if any, will be ignored.'
|
|
x-nullable: true
|
|
retention_id:
|
|
type: string
|
|
description: 'The ID of the tag retention policy for the project'
|
|
x-nullable: true
|
|
ProjectSummary:
|
|
type: object
|
|
properties:
|
|
repo_count:
|
|
type: integer
|
|
description: The number of the repositories under this project.
|
|
chart_count:
|
|
type: integer
|
|
description: The total number of charts under this project.
|
|
project_admin_count:
|
|
type: integer
|
|
description: The total number of project admin members.
|
|
maintainer_count:
|
|
type: integer
|
|
description: The total number of maintainer members.
|
|
developer_count:
|
|
type: integer
|
|
description: The total number of developer members.
|
|
guest_count:
|
|
type: integer
|
|
description: The total number of guest members.
|
|
limited_guest_count:
|
|
type: integer
|
|
description: The total number of limited guest members.
|
|
quota:
|
|
type: object
|
|
properties:
|
|
hard:
|
|
$ref: "#/definitions/ResourceList"
|
|
description: The hard limits of the quota
|
|
used:
|
|
$ref: "#/definitions/ResourceList"
|
|
description: The used status of the quota
|
|
registry:
|
|
$ref: "#/definitions/Registry"
|
|
CVEAllowlist:
|
|
type: object
|
|
description: The CVE Allowlist for system or project
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: ID of the allowlist
|
|
project_id:
|
|
type: integer
|
|
description: ID of the project which the allowlist belongs to. For system level allowlist this attribute is zero.
|
|
expires_at:
|
|
type: integer
|
|
description: the time for expiration of the allowlist, in the form of seconds since epoch. This is an optional attribute, if it's not set the CVE allowlist does not expire.
|
|
x-nullable: true
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/CVEAllowlistItem"
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time of the allowlist.
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The update time of the allowlist.
|
|
CVEAllowlistItem:
|
|
type: object
|
|
description: The item in CVE allowlist
|
|
properties:
|
|
cve_id:
|
|
type: string
|
|
description: The ID of the CVE, such as "CVE-2019-10164"
|
|
RegistryCredential:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
description: Credential type, such as 'basic', 'oauth'.
|
|
access_key:
|
|
type: string
|
|
description: Access key, e.g. user name when credential type is 'basic'.
|
|
access_secret:
|
|
type: string
|
|
description: Access secret, e.g. password when credential type is 'basic'.
|
|
Registry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The registry ID.
|
|
url:
|
|
type: string
|
|
description: The registry URL string.
|
|
name:
|
|
type: string
|
|
description: The registry name.
|
|
credential:
|
|
$ref: '#/definitions/RegistryCredential'
|
|
type:
|
|
type: string
|
|
description: Type of the registry, e.g. 'harbor'.
|
|
insecure:
|
|
type: boolean
|
|
description: Whether or not the certificate will be verified when Harbor tries to access the server.
|
|
description:
|
|
type: string
|
|
description: Description of the registry.
|
|
status:
|
|
type: string
|
|
description: Health status of the registry.
|
|
creation_time:
|
|
type: string
|
|
description: The create time of the policy.
|
|
update_time:
|
|
type: string
|
|
description: The update time of the policy.
|
|
ResourceList:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
format: int64
|
|
ReplicationExecution:
|
|
type: object
|
|
description: The replication execution
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of the execution
|
|
policy_id:
|
|
type: integer
|
|
description: The ID if the policy that the execution belongs to
|
|
status:
|
|
type: string
|
|
description: The status of the execution
|
|
trigger:
|
|
type: string
|
|
description: The trigger mode
|
|
start_time:
|
|
type: string
|
|
format: date-time
|
|
description: The start time
|
|
end_time:
|
|
type: string
|
|
format: date-time
|
|
description: The end time
|
|
status_text:
|
|
type: string
|
|
x-omitempty: false
|
|
description: The status text
|
|
total:
|
|
type: integer
|
|
x-omitempty: false
|
|
description: The total count of all executions
|
|
failed:
|
|
type: integer
|
|
x-omitempty: false
|
|
description: The count of failed executions
|
|
succeed:
|
|
type: integer
|
|
x-omitempty: false
|
|
description: The count of succeed executions
|
|
in_progress:
|
|
type: integer
|
|
x-omitempty: false
|
|
description: The count of in_progress executions
|
|
stopped:
|
|
type: integer
|
|
x-omitempty: false
|
|
description: The count of stopped executions
|
|
StartReplicationExecution:
|
|
type: object
|
|
properties:
|
|
policy_id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of policy that the execution belongs to.
|
|
ReplicationTask:
|
|
type: object
|
|
description: The replication task
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The ID of the task
|
|
execution_id:
|
|
type: integer
|
|
description: The ID of the execution that the task belongs to
|
|
status:
|
|
type: string
|
|
description: The status of the task
|
|
job_id:
|
|
type: string
|
|
description: The ID of the underlying job that the task related to
|
|
operation:
|
|
type: string
|
|
description: The operation of the task
|
|
resource_type:
|
|
type: string
|
|
description: The type of the resource that the task operates
|
|
src_resource:
|
|
type: string
|
|
description: The source resource that the task operates
|
|
dst_resource:
|
|
type: string
|
|
description: The destination resource that the task operates
|
|
start_time:
|
|
type: string
|
|
format: date-time
|
|
description: The start time of the task
|
|
end_time:
|
|
type: string
|
|
format: date-time
|
|
description: The end time of the task
|
|
Robot:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the robot
|
|
name:
|
|
type: string
|
|
description: The name of the tag
|
|
description:
|
|
type: string
|
|
description: The description of the robot
|
|
secret:
|
|
type: string
|
|
description: The secret of the robot
|
|
level:
|
|
type: string
|
|
description: The level of the robot, project or system
|
|
duration:
|
|
type: integer
|
|
format: int64
|
|
description: The duration of the robot in days
|
|
editable:
|
|
type: boolean
|
|
x-omitempty: false
|
|
description: The editable status of the robot
|
|
disable:
|
|
type: boolean
|
|
x-omitempty: false
|
|
description: The disable status of the robot
|
|
expires_at:
|
|
type: integer
|
|
format: int64
|
|
description: The expiration data of the robot
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/RobotPermission'
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time of the robot.
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: The update time of the robot.
|
|
RobotCreate:
|
|
type: object
|
|
description: The request for robot account creation.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name of the tag
|
|
description:
|
|
type: string
|
|
description: The description of the robot
|
|
secret:
|
|
type: string
|
|
description: The secret of the robot
|
|
level:
|
|
type: string
|
|
description: The level of the robot, project or system
|
|
disable:
|
|
type: boolean
|
|
description: The disable status of the robot
|
|
duration:
|
|
type: integer
|
|
format: int64
|
|
description: The duration of the robot in days
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/RobotPermission'
|
|
RobotCreated:
|
|
type: object
|
|
description: The response for robot account creation.
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the robot
|
|
name:
|
|
type: string
|
|
description: The name of the tag
|
|
secret:
|
|
type: string
|
|
description: The secret of the robot
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: The creation time of the robot.
|
|
expires_at:
|
|
type: integer
|
|
format: int64
|
|
description: The expiration data of the robot
|
|
RobotSec:
|
|
type: object
|
|
description: The response for refresh/update robot account secret.
|
|
properties:
|
|
secret:
|
|
type: string
|
|
description: The secret of the robot
|
|
RobotPermission:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
type: string
|
|
description: The kind of the permission
|
|
namespace:
|
|
type: string
|
|
description: The namespace of the permission
|
|
access:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Access'
|
|
Access:
|
|
type: object
|
|
properties:
|
|
resource:
|
|
type: string
|
|
description: The resource of the access
|
|
action:
|
|
type: string
|
|
description: The action of the access
|
|
effect:
|
|
type: string
|
|
description: The effect of the access
|
|
RobotCreateV1:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name of robot account
|
|
description:
|
|
type: string
|
|
description: The description of robot account
|
|
expires_at:
|
|
type: integer
|
|
description: The expiration time on or after which the JWT MUST NOT be accepted for processing.
|
|
access:
|
|
type: array
|
|
description: The permission of robot account
|
|
items:
|
|
$ref: '#/definitions/Access'
|
|
Storage:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: integer
|
|
format: uint64
|
|
description: Total volume size.
|
|
free:
|
|
type: integer
|
|
format: uint64
|
|
description: Free volume size.
|
|
GeneralInfo:
|
|
type: object
|
|
properties:
|
|
with_notary:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: If the Harbor instance is deployed with nested notary.
|
|
with_chartmuseum:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: If the Harbor instance is deployed with nested chartmuseum.
|
|
registry_url:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The url of registry against which the docker command should be issued.
|
|
external_url:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The external URL of Harbor, with protocol.
|
|
auth_mode:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The auth mode of current Harbor instance.
|
|
project_creation_restriction:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: 'Indicate who can create projects, it could be ''adminonly'' or ''everyone''.'
|
|
self_registration:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: Indicate whether the Harbor instance enable user to register himself.
|
|
has_ca_root:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: Indicate whether there is a ca root cert file ready for download in the file system.
|
|
harbor_version:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The build version of Harbor.
|
|
registry_storage_provider_name:
|
|
type: string
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The storage provider's name of Harbor registry
|
|
read_only:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The flag to indicate whether Harbor is in readonly mode.
|
|
notification_enable:
|
|
type: boolean
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
description: The flag to indicate whether notification mechanism is enabled on Harbor instance.
|
|
authproxy_settings:
|
|
description: The setting of auth proxy this is only available when Harbor relies on authproxy for authentication.
|
|
x-nullable: true
|
|
x-omitempty: true
|
|
$ref: '#/definitions/AuthproxySetting'
|
|
AuthproxySetting:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
description: The fully qualified URI of login endpoint of authproxy, such as 'https://192.168.1.2:8443/login'
|
|
tokenreivew_endpoint:
|
|
type: string
|
|
description: The fully qualified URI of token review endpoint of authproxy, such as 'https://192.168.1.2:8443/tokenreview'
|
|
skip_search:
|
|
type: boolean
|
|
description: The flag to determine whether Harbor can skip search the user/group when adding him as a member.
|
|
verify_cert:
|
|
type: boolean
|
|
description: The flag to determine whether Harbor should verify the certificate when connecting to the auth proxy.
|
|
server_certificate:
|
|
type: string
|
|
description: The certificate to be pinned when connecting auth proxy.
|
|
SystemInfo:
|
|
type: object
|
|
properties:
|
|
storage:
|
|
type: array
|
|
description: The storage of system.
|
|
items:
|
|
$ref: '#/definitions/Storage'
|
|
GCHistory:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: the id of gc job.
|
|
job_name:
|
|
type: string
|
|
description: the job name of gc job.
|
|
job_kind:
|
|
type: string
|
|
description: the job kind of gc job.
|
|
job_parameters:
|
|
type: string
|
|
description: the job parameters of gc job.
|
|
schedule:
|
|
$ref: '#/definitions/ScheduleObj'
|
|
job_status:
|
|
type: string
|
|
description: the status of gc job.
|
|
deleted:
|
|
type: boolean
|
|
description: if gc job was deleted.
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: the creation time of gc job.
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: the update time of gc job.
|
|
Schedule:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: The id of the schedule.
|
|
readOnly: true
|
|
status:
|
|
type: string
|
|
description: The status of the schedule.
|
|
readOnly: true
|
|
creation_time:
|
|
type: string
|
|
format: date-time
|
|
description: the creation time of the schedule.
|
|
readOnly: true
|
|
update_time:
|
|
type: string
|
|
format: date-time
|
|
description: the update time of the schedule.
|
|
readOnly: true
|
|
schedule:
|
|
$ref: '#/definitions/ScheduleObj'
|
|
parameters:
|
|
type: object
|
|
description: The parameters of schedule job
|
|
additionalProperties:
|
|
type: object
|
|
ScheduleObj:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
description: |
|
|
The schedule type. The valid values are 'Hourly', 'Daily', 'Weekly', 'Custom', 'Manual' and 'None'.
|
|
'Manual' means to trigger it right away and 'None' means to cancel the schedule.
|
|
enum:
|
|
- Hourly
|
|
- Daily
|
|
- Weekly
|
|
- Custom
|
|
- Manual
|
|
- None
|
|
cron:
|
|
type: string
|
|
description: A cron expression, a time-based job scheduler.
|
|
|
|
Stats:
|
|
type: object
|
|
description: Stats provides the overall progress of the scan all process.
|
|
properties:
|
|
total:
|
|
type: integer
|
|
format: int
|
|
description: 'The total number of scan processes triggered by the scan all action'
|
|
example: 100
|
|
x-omitempty: false
|
|
completed:
|
|
type: integer
|
|
format: int
|
|
description: 'The number of the finished scan processes triggered by the scan all action'
|
|
example: 90
|
|
x-omitempty: false
|
|
metrics:
|
|
type: object
|
|
description: 'The metrics data for the each status'
|
|
additionalProperties:
|
|
type: integer
|
|
format: int
|
|
example: 10
|
|
example:
|
|
'Success': 5
|
|
'Error': 2
|
|
'Running': 3
|
|
ongoing:
|
|
type: boolean
|
|
description: A flag indicating job status of scan all.
|
|
x-omitempty: false
|
|
trigger:
|
|
type: string
|
|
description: The trigger of the scan all job.
|
|
enum:
|
|
- Manual
|
|
- Schedule
|
|
- Event
|
|
RetentionMetadata:
|
|
type: object
|
|
description: the tag retention metadata
|
|
properties:
|
|
templates:
|
|
type: array
|
|
description: templates
|
|
items:
|
|
$ref: '#/definitions/RetentionRuleMetadata'
|
|
scope_selectors:
|
|
type: array
|
|
description: supported scope selectors
|
|
items:
|
|
$ref: '#/definitions/RetentionSelectorMetadata'
|
|
tag_selectors:
|
|
type: array
|
|
description: supported tag selectors
|
|
items:
|
|
$ref: '#/definitions/RetentionSelectorMetadata'
|
|
|
|
RetentionRuleMetadata:
|
|
type: object
|
|
description: the tag retention rule metadata
|
|
properties:
|
|
rule_template:
|
|
type: string
|
|
description: rule id
|
|
display_text:
|
|
type: string
|
|
description: rule display text
|
|
action:
|
|
type: string
|
|
description: rule action
|
|
params:
|
|
type: array
|
|
description: rule params
|
|
items:
|
|
$ref: '#/definitions/RetentionRuleParamMetadata'
|
|
|
|
RetentionRuleParamMetadata:
|
|
type: object
|
|
description: rule param
|
|
properties:
|
|
type:
|
|
type: string
|
|
unit:
|
|
type: string
|
|
required:
|
|
type: boolean
|
|
|
|
|
|
RetentionSelectorMetadata:
|
|
type: object
|
|
description: retention selector
|
|
properties:
|
|
display_text:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
decorations:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
RetentionPolicy:
|
|
type: object
|
|
description: retention policy
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
algorithm:
|
|
type: string
|
|
rules:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/RetentionRule'
|
|
trigger:
|
|
type: object
|
|
$ref: '#/definitions/RetentionRuleTrigger'
|
|
scope:
|
|
type: object
|
|
$ref: '#/definitions/RetentionPolicyScope'
|
|
|
|
RetentionRuleTrigger:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
type: string
|
|
settings:
|
|
type: object
|
|
references:
|
|
type: object
|
|
|
|
RetentionPolicyScope:
|
|
type: object
|
|
properties:
|
|
level:
|
|
type: string
|
|
ref:
|
|
type: integer
|
|
|
|
RetentionRule:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
priority:
|
|
type: integer
|
|
disabled:
|
|
type: boolean
|
|
action:
|
|
type: string
|
|
template:
|
|
type: string
|
|
params:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
tag_selectors:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/RetentionSelector'
|
|
scope_selectors:
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/RetentionSelector'
|
|
|
|
RetentionSelector:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
type: string
|
|
decoration:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
extras:
|
|
type: string
|
|
|
|
RetentionExecution:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
policy_id:
|
|
type: integer
|
|
format: int64
|
|
start_time:
|
|
type: string
|
|
end_time:
|
|
type: string
|
|
status:
|
|
type: string
|
|
trigger:
|
|
type: string
|
|
dry_run:
|
|
type: boolean
|
|
|
|
RetentionExecutionTask:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
execution_id:
|
|
type: integer
|
|
format: int64
|
|
repository:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
status_code:
|
|
type: integer
|
|
x-omitempty: false
|
|
status_revision:
|
|
type: integer
|
|
format: int64
|
|
start_time:
|
|
type: string
|
|
end_time:
|
|
type: string
|
|
total:
|
|
type: integer
|
|
x-omitempty: false
|
|
retained:
|
|
type: integer
|
|
x-omitempty: false
|