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: /health: get: summary: Check the status of Harbor components description: Check the status of Harbor components. This path does not require authentication. tags: - health operationId: getHealth parameters: - $ref: '#/parameters/requestId' responses: '200': description: The health status of Harbor components schema: $ref: '#/definitions/OverallHealthStatus' '500': $ref: '#/responses/500' /search: get: summary: 'Search for projects and repositories' description: |- The Search endpoint returns information about the projects and repositories offered at public status or related to the current logged in user. The response includes the project and repository list in a proper display order. parameters: - $ref: '#/parameters/requestId' - name: q in: query description: Search parameter for project and repository name. required: true type: string tags: - search operationId: search responses: '200': description: An array of search results schema: $ref: '#/definitions/Search' '500': $ref: '#/responses/500' /statistics: get: summary: Get the statistic information about the projects and repositories description: Get the statistic information about the projects and repositories tags: - statistic operationId: getStatistic parameters: - $ref: '#/parameters/requestId' responses: '200': description: The statistic information schema: $ref: '#/definitions/Statistic' '401': $ref: '#/responses/401' '500': $ref: '#/responses/500' /ldap/ping: post: operationId: pingLdap summary: Ping available ldap service. description: | This endpoint ping the available ldap service for test related configuration parameters. parameters: - $ref: '#/parameters/requestId' - name: ldapconf in: body description: 'ldap configuration. support input ldap service configuration. If it is a empty request, will load current configuration from the system.' required: false schema: $ref: '#/definitions/LdapConf' tags: - Ldap responses: '200': description: Ping ldap service successfully. schema: $ref: '#/definitions/LdapPingResult' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /ldap/users/search: get: operationId: searchLdapUser summary: Search available ldap users. description: | This endpoint searches the available ldap users based on related configuration parameters. Support searched by input ladp configuration, load configuration from the system and specific filter. parameters: - $ref: '#/parameters/requestId' - name: username in: query type: string required: false description: Registered user ID tags: - Ldap responses: '200': description: Search ldap users successfully. schema: type: array items: $ref: '#/definitions/LdapUser' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /ldap/users/import: post: operationId: importLdapUser summary: Import selected available ldap users. description: | This endpoint adds the selected available ldap users to harbor based on related configuration parameters from the system. System will try to guess the user email address and realname, add to harbor user information. If have errors when import user, will return the list of importing failed uid and the failed reason. parameters: - $ref: '#/parameters/requestId' - name: uid_list in: body description: The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. required: true schema: $ref: '#/definitions/LdapImportUsers' tags: - Ldap responses: '200': description: Add ldap users successfully. '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': description: Failed import some users. schema: type: array items: $ref: '#/definitions/LdapFailedImportUser' '500': $ref: '#/responses/500' /ldap/groups/search: get: summary: Search available ldap groups. operationId: searchLdapGroup description: | This endpoint searches the available ldap groups based on related configuration parameters. support to search by groupname or groupdn. parameters: - $ref: '#/parameters/requestId' - name: groupname in: query type: string required: false description: Ldap group name - name: groupdn in: query type: string required: false description: The LDAP group DN tags: - Ldap responses: '200': description: Search ldap group successfully. schema: type: array items: $ref: '#/definitions/UserGroup' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /internalconfig: get: summary: Get internal configurations. operationId: getInternalconfig description: | This endpoint is for retrieving system configurations that only provides for internal api call. tags: - configure parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get system configurations successfully. The response body is a map. schema: $ref: '#/definitions/InternalConfigurationsResponse' '401': description: User need to log in first. '403': description: User does not have permission of admin role. '500': description: Unexpected internal errors. /configurations: get: summary: Get system configurations. operationId: getConfigurations description: | This endpoint is for retrieving system configurations that only provides for admin user. tags: - configure parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get system configurations successfully. The response body is a map. schema: $ref: '#/definitions/ConfigurationsResponse' '401': description: User need to log in first. '403': description: User does not have permission of admin role. '500': description: Unexpected internal errors. put: summary: Modify system configurations. operationId: updateConfigurations description: | This endpoint is for modifying system configurations that only provides for admin user. tags: - configure parameters: - $ref: '#/parameters/requestId' - name: configurations in: body required: true schema: $ref: '#/definitions/Configurations' description: 'The configuration map can contain a subset of the attributes of the schema, which are to be updated.' responses: '200': description: Modify system configurations successfully. '401': description: User need to log in first. '403': description: User does not have permission of admin role. '500': description: Unexpected internal errors. /projects: get: summary: List projects description: This endpoint returns projects created by Harbor. tags: - project operationId: listProjects parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - $ref: '#/parameters/sort' - 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 - 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_or_id}/members': get: summary: Get all project member information description: Get all project member information operationId: listProjectMembers parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: entityname in: query type: string description: The entity name to search. tags: - member responses: '200': description: Get project members successfully. headers: X-Total-Count: description: The total count of members type: integer Link: description: Link refers to the previous page and next page type: string schema: type: array items: $ref: '#/definitions/ProjectMemberEntity' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' post: summary: Create project member operationId: createProjectMember description: 'Create project member relationship, the member can be one of the user_member and group_member, The user_member need to specify user_id or username. If the user already exist in harbor DB, specify the user_id, If does not exist in harbor DB, it will SearchAndOnBoard the user. The group_member need to specify id or ldap_group_dn. If the group already exist in harbor DB. specify the user group''s id, If does not exist, it will SearchAndOnBoard the group. ' tags: - member parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: project_member in: body schema: $ref: '#/definitions/ProjectMember' responses: '201': description: Project member created successfully. headers: Location: type: string description: The URL of the created resource '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '409': $ref: '#/responses/409' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/members/{mid}': get: summary: Get the project member information description: Get the project member information operationId: getProjectMember tags: - member parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: mid in: path type: integer format: int64 required: true description: The member ID responses: '200': description: Project member retrieved successfully. schema: $ref: '#/definitions/ProjectMemberEntity' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update project member description: Update project member relationship operationId: updateProjectMember tags: - member parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: mid in: path type: integer format: int64 required: true description: Member ID. - name: role in: body schema: $ref: '#/definitions/RoleRequest' 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 member operationId: deleteProjectMember tags: - member parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: mid in: path type: integer format: int64 required: true description: Member ID. responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/metadatas/': get: summary: Get the metadata of the specific project description: Get the metadata of the specific project operationId: listProjectMetadatas parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' tags: - projectMetadata responses: '200': description: Success schema: type: object additionalProperties: type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' post: summary: Add metadata for the specific project operationId: addProjectMetadatas description: Add metadata for the specific project tags: - projectMetadata parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: metadata in: body schema: type: object additionalProperties: type: string 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_or_id}/metadatas/{meta_name}': get: summary: Get the specific metadata of the specific project description: Get the specific metadata of the specific project operationId: getProjectMetadata parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: meta_name in: path description: The name of metadata. required: true type: string tags: - projectMetadata responses: '200': description: Success schema: type: object additionalProperties: type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update the specific metadata for the specific project description: Update the specific metadata for the specific project operationId: updateProjectMetadata tags: - projectMetadata parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: meta_name in: path description: The name of metadata. required: true type: string - name: metadata in: body schema: type: object additionalProperties: type: string 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 the specific metadata for the specific project description: Delete the specific metadata for the specific project operationId: deleteProjectMetadata tags: - projectMetadata parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: meta_name in: path description: The name of metadata. required: true type: string 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' /repositories: get: summary: List all authorized repositories description: List all authorized repositories tags: - repository operationId: listAllRepositories parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $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' '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/sort' - $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/sort' - $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_immutable_status=true" type: boolean required: false default: false - name: with_accessory in: query description: Specify whether the accessories are included of the returning artifacts. Only works when setting "with_accessory=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 - name: with_accessory in: query description: Specify whether the accessories are included of 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. 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/stop: post: summary: Cancelling a scan job for a particular artifact description: Cancelling a scan job for a particular artifact tags: - scan operationId: stopScanArtifact 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/sort' - $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}/accessories: get: summary: List accessories description: List accessories of the specific artifact tags: - artifact operationId: listAccessories parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/projectName' - $ref: '#/parameters/repositoryName' - $ref: '#/parameters/reference' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: Success headers: X-Total-Count: description: The total count of accessories type: integer Link: description: Link refers to the previous page and next page type: string schema: type: array items: $ref: '#/definitions/Accessory' '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/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' '/projects/{project_name_or_id}/scanner': get: summary: Get project level scanner description: Get the scanner registration of the specified project. If no scanner registration is configured for the specified project, the system default scanner registration will be returned. tags: - project operationId: getScannerOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' responses: '200': description: The details of the scanner registration. schema: $ref: '#/definitions/ScannerRegistration' '400': description: Bad project ID '401': description: Unauthorized request '403': description: Request is not allowed '404': description: The requested object is not found '500': description: Internal server error happened put: summary: Configure scanner for the specified project description: Set one of the system configured scanner registration as the indepndent scanner of the specified project. tags: - project operationId: setScannerOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: payload in: body required: true schema: $ref: '#/definitions/ProjectScanner' 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_or_id}/scanner/candidates': get: summary: Get scanner registration candidates for configurating project level scanner description: Retrieve the system configured scanner registrations as candidates of setting project level scanner. tags: - project operationId: listScannerCandidatesOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: A list of scanner registrations. schema: type: array items: $ref: '#/definitions/ScannerRegistration' headers: X-Total-Count: description: The total count of available items type: integer Link: description: Link to previous page and next page type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '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/sort' - $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/sort' - $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' - $ref: '#/parameters/sort' 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' - $ref: '#/parameters/sort' 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' - $ref: '#/parameters/sort' 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' - $ref: '#/parameters/sort' 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' - $ref: '#/parameters/sort' 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' '/projects/{project_name_or_id}/immutabletagrules': get: summary: List all immutable tag rules of current project description: | This endpoint returns the immutable tag rules of a project tags: - immutable operationId: ListImmuRules parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' responses: '200': description: Success headers: X-Total-Count: description: The total count of immutable tag type: integer Link: description: Link refers to the previous page and next page type: string schema: type: array items: $ref: '#/definitions/ImmutableRule' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' post: summary: Add an immutable tag rule to current project description: | This endpoint add an immutable tag rule to the project tags: - immutable operationId: CreateImmuRule parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: ImmutableRule in: body required: true schema: $ref: '#/definitions/ImmutableRule' responses: '201': $ref: '#/responses/201' '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}/immutabletagrules/{immutable_rule_id}': put: summary: Update the immutable tag rule or enable or disable the rule tags: - immutable operationId: UpdateImmuRule parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/immutableRuleId' - name: ImmutableRule in: body required: true schema: $ref: '#/definitions/ImmutableRule' responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' delete: summary: Delete the immutable tag rule. tags: - immutable operationId: DeleteImmuRule parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/immutableRuleId' responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/webhook/policies': get: summary: List project webhook policies. description: | This endpoint returns webhook policies of a project. tags: - webhook operationId: ListWebhookPoliciesOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/sort' - $ref: '#/parameters/query' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: Success headers: X-Total-Count: description: The total count of webhook policies. type: integer Link: description: Link refers to the previous page and next page type: string schema: type: array items: $ref: '#/definitions/WebhookPolicy' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' post: summary: Create project webhook policy. description: | This endpoint create a webhook policy if the project does not have one. tags: - webhook operationId: CreateWebhookPolicyOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - name: policy in: body description: Properties "targets" and "event_types" needed. required: true schema: $ref: '#/definitions/WebhookPolicy' responses: '201': description: Project webhook policy create successfully. 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 '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/webhook/policies/{webhook_policy_id}': get: summary: Get project webhook policy description: | This endpoint returns specified webhook policy of a project. tags: - webhook operationId: GetWebhookPolicyOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' responses: '200': description: Get webhook policy successfully. schema: $ref: '#/definitions/WebhookPolicy' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update webhook policy of a project. description: | This endpoint is aimed to update the webhook policy of a project. tags: - webhook operationId: UpdateWebhookPolicyOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' - name: policy in: body description: All properties needed except "id", "project_id", "creation_time", "update_time". required: true schema: $ref: '#/definitions/WebhookPolicy' 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 webhook policy of a project description: | This endpoint is aimed to delete webhookpolicy of a project. tags: - webhook operationId: DeleteWebhookPolicyOfProject parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' 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_or_id}/webhook/policies/{webhook_policy_id}/executions': get: summary: List executions for a specific webhook policy description: | This endpoint returns the executions of a specific webhook policy. tags: - webhook operationId: ListExecutionsOfWebhookPolicy parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' responses: '200': description: List webhook 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_or_id}/webhook/policies/{webhook_policy_id}/executions/{execution_id}/tasks': get: summary: List tasks for a specific webhook execution description: | This endpoint returns the tasks of a specific webhook execution. tags: - webhook operationId: ListTasksOfWebhookExecution parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' - $ref: '#/parameters/executionId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' responses: '200': description: List tasks of webhook executions 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_or_id}/webhook/policies/{webhook_policy_id}/executions/{execution_id}/tasks/{task_id}/log': get: summary: Get logs for a specific webhook task description: | This endpoint returns the logs of a specific webhook task. tags: - webhook operationId: GetLogsOfWebhookTask produces: - text/plain parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/webhookPolicyId' - $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_or_id}/webhook/lasttrigger': get: deprecated: true summary: Get project webhook policy last trigger info description: | This endpoint returns last trigger information of project webhook policy. tags: - webhook operationId: LastTrigger parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' responses: '200': description: Test webhook connection successfully. schema: type: array items: $ref: '#/definitions/WebhookLastTrigger' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/webhook/jobs': get: deprecated: true summary: List project webhook jobs description: | This endpoint returns webhook jobs of a project. tags: - webhookjob operationId: ListWebhookJobs parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: policy_id in: query type: integer format: int64 required: true description: The policy ID. - name: status in: query description: The status of webhook job. required: false type: array items: type: string responses: '200': description: List project webhook jobs successfully. headers: X-Total-Count: description: The total count of available items type: integer Link: description: Link to previous page and next page type: string schema: type: array items: $ref: '#/definitions/WebhookJob' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/projects/{project_name_or_id}/webhook/events': get: summary: Get supported event types and notify types. description: Get supported event types and notify types. tags: - webhook operationId: GetSupportedEventTypes parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/isResourceName' - $ref: '#/parameters/projectNameOrId' responses: '200': description: Success schema: $ref: '#/definitions/SupportedWebhookEventTypes' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /usergroups: get: summary: Get all user groups information description: Get all user groups information, it is open for system admin operationId: listUserGroups tags: - usergroup parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: ldap_group_dn in: query type: string required: false description: search with ldap group DN - name: group_name in: query type: string required: false description: group name need to search, fuzzy matches responses: '200': description: Get user group successfully. schema: type: array items: $ref: '#/definitions/UserGroup' 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' post: summary: Create user group description: Create user group information operationId: createUserGroup tags: - usergroup parameters: - $ref: '#/parameters/requestId' - name: usergroup in: body schema: $ref: '#/definitions/UserGroup' responses: '201': description: User group created successfully. headers: Location: type: string description: The URL of the created resource '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '409': $ref: '#/responses/409' '500': $ref: '#/responses/500' /usergroups/search: get: summary: Search groups by groupname description: | This endpoint is to search groups by group name. It's open for all authenticated requests. tags: - usergroup operationId: searchUserGroups parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: groupname in: query type: string required: true description: Group name for filtering results. responses: '200': description: Search groups successfully. schema: type: array items: $ref: '#/definitions/UserGroupSearchItem' 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' '500': $ref: '#/responses/500' '/usergroups/{group_id}': get: summary: Get user group information description: Get user group information operationId: getUserGroup tags: - usergroup parameters: - $ref: '#/parameters/requestId' - name: group_id in: path type: integer format: int64 required: true description: Group ID responses: '200': description: User group get successfully. schema: $ref: '#/definitions/UserGroup' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update group information description: Update user group information operationId: updateUserGroup tags: - usergroup parameters: - $ref: '#/parameters/requestId' - name: group_id in: path type: integer format: int64 required: true description: Group ID - name: usergroup in: body required: false schema: $ref: '#/definitions/UserGroup' 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 user group description: Delete user group operationId: deleteUserGroup tags: - usergroup parameters: - $ref: '#/parameters/requestId' - name: group_id type: integer in: path required: true responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '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/sort' - $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' '/quotas': get: summary: List quotas description: List quotas tags: - quota operationId: listQuotas parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: reference in: query description: The reference type of quota. required: false type: string - name: reference_id in: query description: The reference id of quota. required: false type: string - name: sort in: query type: string required: false description: | Sort method, valid values include: 'hard.resource_name', '-hard.resource_name', 'used.resource_name', '-used.resource_name'. Here '-' stands for descending order, resource_name should be the real resource name of the quota. responses: '200': description: Successfully retrieved the quotas. schema: type: array items: $ref: '#/definitions/Quota' headers: X-Total-Count: description: The total count of access logs type: integer Link: description: Link refers to the previous page and next page type: string '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/quotas/{id}': get: summary: Get the specified quota description: Get the specified quota tags: - quota operationId: getQuota parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer required: true description: Quota ID responses: '200': description: Successfully retrieved the quota. schema: $ref: '#/definitions/Quota' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update the specified quota description: Update hard limits of the specified quota tags: - quota operationId: updateQuota parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer required: true description: Quota ID - name: hard in: body required: true description: The new hard limits for the quota schema: $ref: '#/definitions/QuotaUpdateReq' 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' /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/policies: get: summary: List replication policies description: List replication policies tags: - replication operationId: listReplicationPolicies parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: name in: query type: string required: false description: Deprecated, use "query" instead. The policy name. 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/ReplicationPolicy' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' post: summary: Create a replication policy description: Create a replication policy tags: - replication operationId: createReplicationPolicy parameters: - $ref: '#/parameters/requestId' - name: policy in: body description: The replication policy required: true schema: $ref: '#/definitions/ReplicationPolicy' 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' /replication/policies/{id}: get: summary: Get the specific replication policy description: Get the specific replication policy tags: - replication operationId: getReplicationPolicy parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Policy ID responses: '200': description: Success schema: $ref: '#/definitions/ReplicationPolicy' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' delete: summary: Delete the specific replication policy description: Delete the specific replication policy tags: - replication operationId: deleteReplicationPolicy parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Replication policy ID responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '412': $ref: '#/responses/412' '500': $ref: '#/responses/500' put: summary: Update the replication policy description: Update the replication policy tags: - replication operationId: updateReplicationPolicy parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: The policy ID - name: policy in: body description: The replication policy required: true schema: $ref: '#/definitions/ReplicationPolicy' 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' /replication/executions: get: summary: List replication executions description: List replication executions tags: - replication operationId: listReplicationExecutions parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/sort' - $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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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/requestId' - $ref: '#/parameters/sort' - $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: - $ref: '#/parameters/requestId' - 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' /replication/adapters: get: summary: List registry adapters description: List registry adapters tags: - registry operationId: listRegistryProviderTypes parameters: - $ref: '#/parameters/requestId' responses: '200': description: Success. schema: type: array items: type: string '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /replication/adapterinfos: get: summary: List all registered registry provider information description: List all registered registry provider information tags: - registry operationId: listRegistryProviderInfos parameters: - $ref: '#/parameters/requestId' responses: '200': description: Success. schema: type: object additionalProperties: $ref: '#/definitions/RegistryProviderInfo' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /registries: post: summary: Create a registry description: Create a registry tags: - registry operationId: createRegistry parameters: - $ref: '#/parameters/requestId' - name: registry in: body description: The registry required: true schema: $ref: '#/definitions/Registry' 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 the registries description: List the registries tags: - registry operationId: listRegistries parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: name in: query type: string required: false description: Deprecated, use `q` instead. 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/Registry' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /registries/ping: post: summary: Check status of a registry description: Check status of a registry tags: - registry operationId: pingRegistry parameters: - $ref: '#/parameters/requestId' - name: registry in: body description: The registry required: true schema: $ref: '#/definitions/RegistryPing' 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' /registries/{id}: get: summary: Get the specific registry description: Get the specific registry tags: - registry operationId: getRegistry parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Registry ID responses: '200': description: Success schema: $ref: '#/definitions/Registry' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' delete: summary: Delete the specific registry description: Delete the specific registry tags: - registry operationId: deleteRegistry parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Registry ID responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '412': $ref: '#/responses/412' '500': $ref: '#/responses/500' put: summary: Update the registry description: Update the registry tags: - registry operationId: updateRegistry parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: The registry ID - name: registry in: body description: The registry required: true schema: $ref: '#/definitions/RegistryUpdate' 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' /registries/{id}/info: get: summary: Get the registry info description: Get the registry info tags: - registry operationId: getRegistryInfo parameters: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Registry ID responses: '200': description: Success schema: $ref: '#/definitions/RegistryInfo' '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 parameters: - $ref: '#/parameters/requestId' 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 parameters: - $ref: '#/parameters/requestId' 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 operationId: getSystemInfo 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 parameters: - $ref: '#/parameters/requestId' 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). operationId: getVolumes 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 parameters: - $ref: '#/parameters/requestId' 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. operationId: getCert description: | This endpoint is for downloading a default root certificate. tags: - systeminfo produces: - application/octet-stream parameters: - $ref: '#/parameters/requestId' 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/oidc/ping: post: summary: Test the OIDC endpoint. description: | Test the OIDC endpoint, the setting of the endpoint is provided in the request. This API can only be called by system admin. tags: - oidc operationId: pingOIDC parameters: - $ref: '#/parameters/requestId' - name: endpoint in: body description: Request body for OIDC endpoint to be tested. required: true schema: type: object properties: url: type: string description: The URL of OIDC endpoint to be tested. verify_cert: type: boolean description: Whether the certificate should be verified responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' /system/gc: get: summary: Get gc results. description: This endpoint let user get gc execution history. tags: - gc operationId: getGCHistory parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $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/requestId' - $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' put: summary: Stop the specific GC execution description: Stop the GC execution specified by ID tags: - gc operationId: stopGC parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/gcId' responses: '200': $ref: '#/responses/200' '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/requestId' - $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 parameters: - $ref: '#/parameters/requestId' 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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/purgeaudit: get: summary: Get purge job results. description: get purge job execution history. tags: - purge operationId: getPurgeHistory parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: Get purge job 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/ExecHistory' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /system/purgeaudit/{purge_id}: get: summary: Get purge job status. description: This endpoint let user get purge job status filtered by specific ID. operationId: getPurgeJob parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/purgeId' tags: - purge responses: '200': description: Get purge job results successfully. schema: $ref: '#/definitions/ExecHistory' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Stop the specific purge audit log execution description: Stop the purge audit log execution specified by ID tags: - purge operationId: stopPurge parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/purgeId' responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /system/purgeaudit/{purge_id}/log: get: summary: Get purge job log. description: This endpoint let user get purge job logs filtered by specific ID. operationId: getPurgeJobLog parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/purgeId' tags: - purge 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/purgeaudit/schedule: get: summary: Get purge's schedule. description: This endpoint is for get schedule of purge job. operationId: getPurgeSchedule tags: - purge parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get purge job's schedule. schema: $ref: '#/definitions/ExecHistory' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' post: summary: Create a purge job schedule. description: | This endpoint is for update purge job schedule. operationId: createPurgeSchedule parameters: - $ref: '#/parameters/requestId' - name: schedule in: body required: true schema: $ref: '#/definitions/Schedule' description: | The purge job's schedule, it is a json object. | The sample format is | {"parameters":{"audit_retention_hour":168,"dry_run":true, "include_operations":"create,delete,pull"},"schedule":{"type":"Hourly","cron":"0 0 * * * *"}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. tags: - purge responses: '201': $ref: '#/responses/201' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' put: summary: Update purge job's schedule. description: | This endpoint is for update purge job schedule. operationId: updatePurgeSchedule parameters: - $ref: '#/parameters/requestId' - name: schedule in: body required: true schema: $ref: '#/definitions/Schedule' description: | The purge job's schedule, it is a json object. | The sample format is | {"parameters":{"audit_retention_hour":168,"dry_run":true, "include_operations":"create,delete,pull"},"schedule":{"type":"Hourly","cron":"0 0 * * * *"}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. tags: - purge responses: '200': description: Updated purge's schedule successfully. '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /system/CVEAllowlist: get: summary: Get the system level allowlist of CVE. description: Get the system level allowlist of CVE. This API can be called by all authenticated users. operationId: getSystemCVEAllowlist tags: - SystemCVEAllowlist parameters: - $ref: '#/parameters/requestId' responses: '200': description: Successfully retrieved the CVE allowlist. schema: $ref: "#/definitions/CVEAllowlist" '401': $ref: '#/responses/401' '500': $ref: '#/responses/500' put: summary: Update the system level allowlist of CVE. description: This API overwrites the system level allowlist of CVE with the list in request body. Only system Admin has permission to call this API. operationId: putSystemCVEAllowlist tags: - SystemCVEAllowlist parameters: - $ref: '#/parameters/requestId' - in: body name: allowlist description: The allowlist with new content schema: $ref: "#/definitions/CVEAllowlist" responses: '200': description: Successfully updated the CVE allowlist. '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 parameters: - $ref: '#/parameters/requestId' 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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' /system/scanAll/stop: post: summary: Stop scanAll job execution description: Stop scanAll job execution parameters: - $ref: '#/parameters/requestId' tags: - scanAll operationId: stopScanAll responses: '202': $ref: '#/responses/202' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /jobservice/pools: get: operationId: getWorkerPools summary: Get worker pools description: Get worker pools tags: - jobservice parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get worker pools successfully. schema: type: array items: $ref: '#/definitions/WorkerPool' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /jobservice/pools/{pool_id}/workers: get: operationId: getWorkers summary: Get workers description: Get workers in current pool tags: - jobservice parameters: - $ref: '#/parameters/requestId' - name: pool_id in: path required: true type: string description: The name of the pool. 'all' stands for all pools responses: '200': description: Get workers successfully. schema: type: array items: $ref: '#/definitions/Worker' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /jobservice/jobs/{job_id}: put: operationId: stopRunningJob summary: Stop running job description: Stop running job tags: - jobservice parameters: - $ref: '#/parameters/requestId' - name: job_id in: path required: true type: string description: The id of the job. responses: '200': description: Stop worker successfully. '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /jobservice/jobs/{job_id}/log: get: operationId: actionGetJobLog summary: Get job log by job id description: Get job log by job id, it is only used by administrator produces: - text/plain tags: - jobservice parameters: - $ref: '#/parameters/requestId' - name: job_id in: path required: true type: string description: The id of the job. responses: '200': description: Get job log successfully. 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' /jobservice/queues: get: operationId: listJobQueues summary: list job queues description: list job queue tags: - jobservice parameters: - $ref: '#/parameters/requestId' responses: '200': description: List job queue successfully. schema: type: array items: $ref: '#/definitions/JobQueue' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /jobservice/queues/{job_type}: put: operationId: actionPendingJobs summary: stop and clean, pause, resume pending jobs in the queue description: stop and clean, pause, resume pending jobs in the queue tags: - jobservice parameters: - $ref: '#/parameters/requestId' - name: job_type in: path required: true type: string description: The type of the job. 'all' stands for all job types - name: action_request in: body required: true schema: $ref: '#/definitions/ActionRequest' responses: '200': description: take action to the jobs in the queue successfully. '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /schedules: get: operationId: listSchedules description: List schedules tags: - schedule parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: list schedule successfully. schema: type: array items: type: object $ref: '#/definitions/ScheduleTask' 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' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /schedules/{job_type}/paused: get: operationId: getSchedulePaused description: Get scheduler paused status tags: - schedule parameters: - $ref: '#/parameters/requestId' - name: job_type in: path required: true type: string description: The type of the job. 'all' stands for all job types, current only support query with all responses: '200': description: Get scheduler status successfully. schema: type: object $ref: '#/definitions/SchedulerStatus' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /ping: get: operationId: getPing summary: Ping Harbor to check if the API server is alive. description: This API simply replies a pong to indicate the process to handle API is up, disregarding the health status of dependent components. This path does not require any authentication. tags: - ping produces: - text/plain parameters: - $ref: '#/parameters/requestId' 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 parameters: - $ref: '#/parameters/requestId' 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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' delete: summary: Delete Retention Policy operationId: deleteRetention description: >- Delete 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: - $ref: '#/parameters/requestId' - name: id in: path type: integer format: int64 required: true description: Retention ID. 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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: - $ref: '#/parameters/requestId' - 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' '/scanners': get: summary: List scanner registrations description: | Returns a list of currently configured scanner registrations. tags: - scanner operationId: listScanners parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: A list of scanner registrations. schema: type: array items: $ref: '#/definitions/ScannerRegistration' headers: X-Total-Count: description: The total count of available items type: integer Link: description: Link to previous page and next page type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' post: summary: Create a scanner registration description: | Creats a new scanner registration with the given data. tags: - scanner operationId: createScanner parameters: - $ref: '#/parameters/requestId' - name: registration in: body description: A scanner registration to be created. required: true schema: $ref: '#/definitions/ScannerRegistrationReq' responses: '201': description: Created successfully headers: Location: type: string description: The URL of the created resource '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/scanners/ping': post: summary: Tests scanner registration settings description: | Pings scanner adapter to test endpoint URL and authorization settings. tags: - scanner operationId: pingScanner parameters: - $ref: '#/parameters/requestId' - name: settings in: body description: A scanner registration settings to be tested. required: true schema: $ref: '#/definitions/ScannerRegistrationSettings' responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/scanners/{registration_id}': get: summary: Get a scanner registration details description: | Retruns the details of the specified scanner registration. tags: - scanner operationId: getScanner parameters: - $ref: '#/parameters/requestId' - name: registration_id in: path description: The scanner registration identifer. required: true type: string responses: '200': description: The details of the scanner registration. schema: $ref: '#/definitions/ScannerRegistration' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update a scanner registration description: | Updates the specified scanner registration. tags: - scanner operationId: updateScanner parameters: - $ref: '#/parameters/requestId' - name: registration_id in: path description: The scanner registration identifier. required: true type: string - name: registration in: body required: true description: A scanner registraiton to be updated. schema: $ref: '#/definitions/ScannerRegistrationReq' responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' delete: summary: Delete a scanner registration description: | Deletes the specified scanner registration. tags: - scanner operationId: deleteScanner parameters: - $ref: '#/parameters/requestId' - name: registration_id in: path description: The scanner registration identifier. required: true type: string responses: '200': description: Deleted successfully and return the deleted registration schema: $ref: '#/definitions/ScannerRegistration' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' patch: summary: Set system default scanner registration description: | Set the specified scanner registration as the system default one. tags: - scanner operationId: setScannerAsDefault parameters: - $ref: '#/parameters/requestId' - name: registration_id in: path description: The scanner registration identifier. required: true type: string - name: payload in: body required: true schema: $ref: '#/definitions/IsDefault' responses: '200': description: Successfully set the specified scanner registration as system default '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' '/scanners/{registration_id}/metadata': get: summary: Get the metadata of the specified scanner registration description: | Get the metadata of the specified scanner registration, including the capabilities and customized properties. tags: - scanner operationId: getScannerMetadata parameters: - $ref: '#/parameters/requestId' - name: registration_id in: path required: true description: The scanner registration identifier. type: string responses: '200': description: The metadata of the specified scanner adapter schema: $ref: '#/definitions/ScannerAdapterMetadata' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '500': $ref: '#/responses/500' /users: get: summary: List users tags: - user operationId: listUsers parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' responses: '200': description: return the list of users. schema: type: array items: $ref: '#/definitions/UserResp' headers: X-Total-Count: description: The total count of users 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' post: summary: Create a local user. description: This API can be used only when the authentication mode is for local DB. When self registration is disabled. tags: - user operationId: createUser parameters: - $ref: '#/parameters/requestId' - name: userReq in: body description: The new user required: true schema: $ref: '#/definitions/UserCreationReq' responses: '201': $ref: '#/responses/201' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': description: When the self registration is disabled, non-admin does not have permission to create user. When self registration is enabled, this API can only be called from UI portal, calling it via script will get a 403 error. '409': $ref: '#/responses/409' '500': $ref: '#/responses/500' /users/current: get: summary: Get current user info. tags: - user operationId: getCurrentUserInfo parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get current user information successfully. schema: $ref: '#/definitions/UserResp' '401': $ref: '#/responses/401' '500': $ref: '#/responses/500' /users/search: get: summary: Search users by username description: | This endpoint is to search the users by username. It's open for all authenticated requests. tags: - user operationId: searchUsers parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: username in: query type: string required: true description: Username for filtering results. responses: '200': description: Search users by username successfully. schema: type: array items: $ref: '#/definitions/UserSearchRespItem' 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' '500': $ref: '#/responses/500' '/users/{user_id}': get: summary: Get a user's profile. parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true tags: - user operationId: getUser responses: '200': description: Get user's info successfully. schema: $ref: '#/definitions/UserResp' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update user's profile. parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true description: Registered user ID - name: profile in: body description: 'Only email, realname and comment can be modified.' required: true schema: $ref: '#/definitions/UserProfile' tags: - user operationId: updateUserProfile responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' delete: summary: Mark a registered user as be removed. description: | This endpoint let administrator of Harbor mark a registered user as removed.It actually won't be deleted from DB. parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true description: User ID for marking as to be removed. tags: - user operationId: deleteUser responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /users/{user_id}/sysadmin: put: summary: Update a registered user to change to be an administrator of Harbor. tags: - user operationId: setUserSysAdmin parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true - name: sysadmin_flag in: body description: Toggle a user to admin or not. required: true schema: $ref: '#/definitions/UserSysAdminFlag' responses: '200': $ref: '#/responses/200' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': description: Unexpected internal errors. '/users/{user_id}/password': put: summary: Change the password on a user that already exists. description: | This endpoint is for user to update password. Users with the admin role can change any user's password. Regular users can change only their own password. tags: - user operationId: updateUserPassword parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true - name: password in: body description: Password to be updated, the attribute 'old_password' is optional when the API is called by the system administrator. required: true schema: $ref: '#/definitions/PasswordReq' responses: '200': $ref: '#/responses/200' '400': description: Invalid user ID; Password does not meet requirement '401': $ref: '#/responses/401' '403': description: The caller does not have permission to update the password of the user with given ID, or the old password in request body is not correct. '500': $ref: '#/responses/500' /users/current/permissions: get: summary: Get current user permissions. tags: - user operationId: getCurrentUserPermissions parameters: - $ref: '#/parameters/requestId' - name: scope in: query type: string required: false description: The scope for the permission - name: relative in: query type: boolean required: false description: | If true, the resources in the response are relative to the scope, eg for resource '/project/1/repository' if relative is 'true' then the resource in response will be 'repository'. responses: '200': description: Get current user permission successfully. schema: type: array items: $ref: '#/definitions/Permission' '401': description: User need to log in first. '500': description: Internal errors. '/users/{user_id}/cli_secret': put: summary: Set CLI secret for a user. description: >- This endpoint let user generate a new CLI secret for himself. This API only works when auth mode is set to 'OIDC'. Once this API returns with successful status, the old secret will be invalid, as there will be only one CLI secret for a user. tags: - user operationId: setCliSecret parameters: - $ref: '#/parameters/requestId' - name: user_id in: path type: integer format: int required: true description: User ID - name: secret in: body required: true schema: $ref: '#/definitions/OIDCCliSecretReq' responses: '200': description: The secret is successfully updated '400': description: Invalid user ID. Or user is not onboarded via OIDC authentication. Or the secret does not meet the standard. '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '412': description: The auth mode of the system is not "oidc_auth", or the user is not onboarded via OIDC AuthN. '500': $ref: '#/responses/500' /labels: get: summary: List labels according to the query strings. description: | This endpoint let user list labels by name, scope and project_id tags: - label operationId: ListLabels parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/sort' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: name in: query type: string required: false description: The label name. - name: scope in: query type: string required: false description: The label scope. Valid values are g and p. g for global labels and p for project labels. - name: project_id in: query type: integer format: int64 required: false description: Relevant project ID, required when scope is p. responses: '200': description: Get successfully. schema: type: array items: $ref: '#/definitions/Label' headers: X-Total-Count: description: The total count of available items type: integer Link: description: Link to previous page and next page type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '500': $ref: '#/responses/500' post: summary: Post creates a label description: | This endpoint let user creates a label. tags: - label operationId: CreateLabel parameters: - $ref: '#/parameters/requestId' - name: label in: body description: The json object of label. required: true schema: $ref: '#/definitions/Label' responses: '201': description: Create successfully. headers: Location: type: string description: The URL of the created resource '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '409': $ref: '#/responses/409' '415': $ref: '#/responses/415' '500': $ref: '#/responses/500' '/labels/{label_id}': get: summary: Get the label specified by ID. description: | This endpoint let user get the label by specific ID. tags: - label operationId: GetLabelByID parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/labelId' responses: '200': description: Get successfully. schema: $ref: '#/definitions/Label' '401': $ref: '#/responses/401' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' put: summary: Update the label properties. description: | This endpoint let user update label properties. tags: - label operationId: UpdateLabel parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/labelId' - name: label in: body description: The updated label json object. required: true schema: $ref: '#/definitions/Label' responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '404': $ref: '#/responses/404' '409': $ref: '#/responses/409' '500': $ref: '#/responses/500' delete: summary: Delete the label specified by ID. description: | Delete the label specified by ID. tags: - label operationId: DeleteLabel parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/labelId' responses: '200': $ref: '#/responses/200' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /export/cve: post: summary: Export scan data for selected projects description: Export scan data for selected projects tags: - scan data export operationId: exportScanData parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/scanDataType' - name: criteria in: body description: The criteria for the export required: true schema: $ref: '#/definitions/ScanDataExportRequest' responses: '200': description: Success. schema: $ref: '#/definitions/ScanDataExportJob' '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' /export/cve/execution/{execution_id}: get: summary: Get the specific scan data export execution description: Get the scan data export execution specified by ID tags: - scan data export operationId: getScanDataExportExecution parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/executionId' responses: '200': description: Success schema: $ref: '#/definitions/ScanDataExportExecution' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /export/cve/executions: get: summary: Get a list of specific scan data export execution jobs for a specified user description: Get a list of specific scan data export execution jobs for a specified user tags: - scan data export operationId: getScanDataExportExecutionList parameters: - $ref: '#/parameters/requestId' responses: '200': description: Success schema: $ref: '#/definitions/ScanDataExportExecutionList' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /export/cve/download/{execution_id}: get: summary: Download the scan data export file description: Download the scan data report. Default format is CSV tags: - scan data export operationId: downloadScanData produces: - text/csv parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/executionId' - name: format in: query type: string required: false description: The format of the data to be exported. e.g. CSV or PDF responses: '200': description: Data file containing the export data schema: type: file headers: Content-Disposition: type: string description: Value is a CSV formatted file; filename=export.csv '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /security/summary: get: summary: Get vulnerability system summary description: Retrieve the vulnerability summary of the system tags: - securityhub operationId: getSecuritySummary parameters: - $ref: '#/parameters/requestId' - name: with_dangerous_cve in: query description: Specify whether the dangerous CVEs are included inside summary information type: boolean required: false default: false - name: with_dangerous_artifact in: query description: Specify whether the dangerous Artifact are included inside summary information type: boolean required: false default: false responses: '200': description: Success schema: $ref: '#/definitions/SecuritySummary' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' /security/vul: get: summary: Get the vulnerability list. description: | Get the vulnerability list. use q to pass the query condition, supported conditions: cve_id(exact match) cvss_score_v3(range condition) severity(exact match) repository_name(exact match) project_id(exact match) package(exact match) tag(exact match) digest(exact match) tags: - securityhub operationId: ListVulnerabilities parameters: - $ref: '#/parameters/requestId' - $ref: '#/parameters/query' - $ref: '#/parameters/page' - $ref: '#/parameters/pageSize' - name: tune_count in: query description: Enable to ignore X-Total-Count when the total count > 1000, if the total count is less than 1000, the real total count is returned, else -1. type: boolean required: false default: false - name: with_tag in: query description: Specify whether the tag information is included inside vulnerability information type: boolean required: false default: false responses: '200': description: The vulnerability list. schema: type: array items: $ref: '#/definitions/VulnerabilityItem' headers: X-Total-Count: description: The total count of vulnerabilities type: integer Link: description: Link refers to the previous page and next page type: string '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '500': $ref: '#/responses/500' /permissions: get: summary: Get system or project level permissions info. operationId: getPermissions description: | This endpoint is for retrieving resource and action info that only provides for admin user(system admin and project admin). tags: - permissions parameters: - $ref: '#/parameters/requestId' responses: '200': description: Get permissions successfully. schema: $ref: '#/definitions/Permissions' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '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 sort: name: sort description: Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending order and field2 in descending order with "sort=field1,-field2" in: query type: string required: false 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 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.security.vulnerability.report; version=1.1, 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 twice over with URL encoding. e.g. a/b -> a%2Fb -> 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 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 purgeId: name: purge_id in: path description: The ID of the purge log required: true type: integer format: int64 labelId: name: label_id in: path description: Label ID required: true type: integer format: int64 webhookPolicyId: name: webhook_policy_id in: path description: The ID of the webhook policy required: true type: integer format: int64 immutableRuleId: name: immutable_rule_id in: path description: The ID of the immutable rule required: true type: integer format: int64 accessoryId: name: accessory_id in: path description: The ID of the accessory required: true type: integer format: int64 scanDataType: name: X-Scan-Data-Type description: The type of scan data to export in: header type: string required: true userName: name: user_name description: The name of the user in: query type: string required: true 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' '415': description: Unsupported MediaType 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 Search: type: object properties: project: description: Search results of the projects that matched the filter keywords. type: array items: $ref: '#/definitions/Project' repository: description: Search results of the repositories that matched the filter keywords. type: array items: $ref: '#/definitions/SearchRepository' SearchRepository: type: object properties: project_id: type: integer description: The ID of the project that the repository belongs to project_name: type: string description: The name of the project that the repository belongs to project_public: type: boolean description: 'The flag to indicate the publicity of the project that the repository belongs to (1 is public, 0 is not)' repository_name: type: string description: The name of the repository pull_count: type: integer description: The count how many times the repository is pulled artifact_count: type: integer description: The count of artifacts in the repository 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 x-omitempty: false pull_count: type: integer format: int64 description: The count that the artifact inside the repository pulled x-omitempty: false creation_time: type: string format: date-time description: The creation time of the repository x-nullable: true x-omitempty: true 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. accessories: type: array items: $ref: '#/definitions/Accessory' description: The accessory of the artifact. 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 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:05Z' end_time: type: string format: date-time description: 'The end time of the scan process that generating report' example: '2006-01-02T15:04:05Z' 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:05Z' 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. maxLength: 255 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. x-omitempty: false 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 enable_content_trust_cosign: type: string description: 'Whether cosign content trust is enabled or not. If it is enabled, user can''t pull images without cosign signature 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. x-omitempty: false 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: $ref: "#/definitions/ProjectSummaryQuota" registry: $ref: "#/definitions/Registry" ProjectSummaryQuota: 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 ProjectScanner: type: object required: - uuid properties: uuid: type: string description: The identifier of the scanner registration 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" ReplicationPolicy: type: object properties: id: type: integer format: int64 description: The policy ID. name: type: string description: The policy name. description: type: string description: The description of the policy. src_registry: description: The source registry. $ref: '#/definitions/Registry' dest_registry: description: The destination registry. $ref: '#/definitions/Registry' dest_namespace: type: string description: The destination namespace. dest_namespace_replace_count: type: integer format: int8 description: |- Specify how many path components will be replaced by the provided destination namespace. The default value is -1 in which case the legacy mode will be applied. x-isnullable: true # make this field optional to keep backward compatibility trigger: $ref: '#/definitions/ReplicationTrigger' filters: type: array description: The replication policy filter array. items: $ref: '#/definitions/ReplicationFilter' replicate_deletion: type: boolean description: Whether to replicate the deletion operation. deletion: type: boolean description: Deprecated, use "replicate_deletion" instead. Whether to replicate the deletion operation. override: type: boolean description: Whether to override the resources on the destination registry. enabled: type: boolean description: Whether the policy is enabled or not. creation_time: type: string format: date-time description: The create time of the policy. update_time: type: string format: date-time description: The update time of the policy. speed: type: integer format: int32 description: speed limit for each task x-isnullable: true # make this field optional to keep backward compatibility copy_by_chunk: type: boolean description: Whether to enable copy by chunk. x-isnullable: true ReplicationTrigger: type: object properties: type: type: string description: 'The replication policy trigger type. The valid values are manual, event_based and scheduled.' trigger_settings: $ref: '#/definitions/ReplicationTriggerSettings' ReplicationTriggerSettings: type: object properties: cron: type: string description: The cron string for scheduled trigger ReplicationFilter: type: object properties: type: type: string description: 'The replication policy filter type.' value: type: object description: 'The value of replication policy filter.' decoration: type: string description: 'matches or excludes the result' 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. x-omitempty: false 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 format: date-time description: The create time of the policy. update_time: type: string format: date-time description: The update time of the policy. RegistryUpdate: type: object properties: name: type: string description: The registry name. x-nullable: true description: type: string description: Description of the registry. x-nullable: true url: type: string description: The registry URL. x-nullable: true credential_type: type: string description: Credential type of the registry, e.g. 'basic'. x-nullable: true access_key: type: string description: The registry access key. x-nullable: true access_secret: type: string description: The registry access secret. x-nullable: true insecure: type: boolean description: Whether or not the certificate will be verified when Harbor tries to access the server. x-nullable: true RegistryPing: type: object properties: id: type: integer format: int64 description: The registry ID. x-nullable: true type: type: string description: Type of the registry, e.g. 'harbor'. x-nullable: true url: type: string description: The registry URL. x-nullable: true credential_type: type: string description: Credential type of the registry, e.g. 'basic'. x-nullable: true access_key: type: string description: The registry access key. x-nullable: true access_secret: type: string description: The registry access secret. x-nullable: true insecure: type: boolean description: Whether or not the certificate will be verified when Harbor tries to access the server. x-nullable: true RegistryInfo: type: object description: The registry info contains the base info and capability declarations of the registry properties: type: type: string description: The registry type description: type: string description: The description supported_resource_filters: type: array description: The filters that the registry supports items: $ref: '#/definitions/FilterStyle' supported_triggers: type: array description: The triggers that the registry supports items: type: string supported_copy_by_chunk: type: boolean description: The registry whether support copy by chunk. x-omitempty: true x-isnullable: true RegistryProviderInfo: type: object description: The registry provider info contains the base info and capability declarations of the registry provider properties: endpoint_pattern: description: The endpoint pattern $ref: '#/definitions/RegistryProviderEndpointPattern' credential_pattern: description: The credential pattern $ref: '#/definitions/RegistryProviderCredentialPattern' RegistryProviderEndpointPattern: type: object description: The registry endpoint pattern properties: endpoint_type: type: string description: The endpoint type endpoints: type: array description: The endpoint list items: $ref: '#/definitions/RegistryEndpoint' RegistryProviderCredentialPattern: type: object description: The registry credential pattern properties: access_key_type: type: string description: The access key type access_key_data: type: string description: The access key data access_secret_type: type: string description: The access secret type access_secret_data: type: string description: The access secret data RegistryEndpoint: type: object description: The style of the resource filter properties: key: type: string description: The endpoint key value: type: string description: The endpoint value FilterStyle: type: object description: The style of the resource filter properties: type: type: string description: The filter type style: type: string description: The filter style values: type: array description: The filter values items: type: string 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 robot 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 date 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 robot 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 robot 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 date 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. Possible resources are *, artifact, artifact-addition, artifact-label, audit-log, catalog, configuration, distribution, garbage-collection, helm-chart, helm-chart-version, helm-chart-version-label, immutable-tag, label, ldap-user, log, member, metadata, notification-policy, preheat-instance, preheat-policy, project, quota, registry, replication, replication-adapter, replication-policy, repository, robot, scan, scan-all, scanner, system-volumes, tag, tag-retention, user, user-group or "" (for self-reference). action: type: string description: The action of the access. Possible actions are *, pull, push, create, read, update, delete, list, operate, scanner-pull and stop. 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: banner_message: type: string x-nullable: true x-omitempty: true description: The banner message for the UI. It is the stringified result of the banner message object. example: "{\"closable\":true,\"message\":\"your banner message content\",\"type\":\"warning\",\"fromDate\":\"06/19/2023\",\"toDate\":\"06/21/2023\"}" current_time: type: string format: date-time x-nullable: true x-omitempty: true description: The current time of the server. 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. primary_auth_mode: type: boolean x-nullable: true x-omitempty: true description: The flag to indicate whether the current auth mode should consider as a primary one. 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' oidc_provider_name: type: string x-nullable: true x-omitempty: true description: The OIDC provider name, empty if current auth is not OIDC_auth or OIDC provider is not configured. 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. ExecHistory: type: object properties: id: type: integer description: the id of purge job. job_name: type: string description: the job name of purge job. job_kind: type: string description: the job kind of purge job. job_parameters: type: string description: the job parameters of purge job. schedule: $ref: '#/definitions/ScheduleObj' job_status: type: string description: the status of purge job. deleted: type: boolean description: if purge job was deleted. creation_time: type: string format: date-time description: the creation time of purge job. update_time: type: string format: date-time description: the update time of purge 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', 'None' and 'Schedule'. 'Manual' means to trigger it right away, 'Schedule' means to trigger it by a specified cron schedule and 'None' means to cancel the schedule. enum: - Hourly - Daily - Weekly - Custom - Manual - None - Schedule cron: type: string description: A cron expression, a time-based job scheduler. next_scheduled_time: type: string format: date-time description: The next time to schedule to run the job. 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 QuotaUpdateReq: type: object properties: hard: $ref: "#/definitions/ResourceList" description: The new hard limits for the quota QuotaRefObject: type: object additionalProperties: {} Quota: type: object description: The quota object properties: id: type: integer description: ID of the quota ref: $ref: "#/definitions/QuotaRefObject" description: The reference object of the quota hard: $ref: "#/definitions/ResourceList" description: The hard limits of the quota x-omitempty: false used: $ref: "#/definitions/ResourceList" description: The used status of the quota x-omitempty: false creation_time: type: string format: date-time description: the creation time of the quota update_time: type: string format: date-time description: the update time of the quota ScannerRegistration: type: object description: | Registration represents a named configuration for invoking a scanner via its adapter. properties: uuid: type: string description: The unique identifier of this registration. name: type: string example: Trivy description: The name of this registration. description: type: string description: An optional description of this registration. example: | A free-to-use tool that scans container images for package vulnerabilities. x-omitempty: false url: type: string format: uri description: A base URL of the scanner adapter example: http://harbor-scanner-trivy:8080 disabled: type: boolean default: false description: Indicate whether the registration is enabled or not x-omitempty: false is_default: type: boolean default: false description: Indicate if the registration is set as the system default one x-omitempty: false auth: type: string default: "" description: | Specify what authentication approach is adopted for the HTTP communications. Supported types Basic", "Bearer" and api key header "X-ScannerAdapter-API-Key" example: "Bearer" x-omitempty: false access_credential: type: string description: | An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. example: "Bearer: JWTTOKENGOESHERE" x-omitempty: false skip_certVerify: type: boolean default: false description: Indicate if skip the certificate verification when sending HTTP requests x-omitempty: false use_internal_addr: type: boolean default: false description: Indicate whether use internal registry addr for the scanner to pull content or not x-omitempty: false create_time: type: string format: date-time description: The creation time of this registration update_time: type: string format: date-time description: The update time of this registration adapter: type: string description: Optional property to describe the name of the scanner registration example: "Trivy" vendor: type: string description: Optional property to describe the vendor of the scanner registration example: "CentOS" version: type: string description: Optional property to describe the version of the scanner registration example: "1.0.1" health: type: string default: "" description: Indicate the healthy of the registration example: "healthy" ScannerRegistrationReq: type: object required: - name - url properties: name: type: string description: The name of this registration example: Trivy description: type: string description: An optional description of this registration. example: | A free-to-use tool that scans container images for package vulnerabilities. url: type: string format: uri description: A base URL of the scanner adapter. example: http://harbor-scanner-trivy:8080 auth: type: string description: | Specify what authentication approach is adopted for the HTTP communications. Supported types Basic", "Bearer" and api key header "X-ScannerAdapter-API-Key" example: "Bearer" access_credential: type: string description: | An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. example: "Bearer: JWTTOKENGOESHERE" skip_certVerify: type: boolean default: false description: Indicate if skip the certificate verification when sending HTTP requests use_internal_addr: type: boolean default: false description: Indicate whether use internal registry addr for the scanner to pull content or not disabled: type: boolean default: false description: Indicate whether the registration is enabled or not ScannerRegistrationSettings: type: object required: - name - url properties: name: type: string description: The name of this registration example: Trivy url: type: string format: uri description: A base URL of the scanner adapter. example: http://harbor-scanner-trivy:8080 auth: type: string default: "" description: | Specify what authentication approach is adopted for the HTTP communications. Supported types Basic", "Bearer" and api key header "X-ScannerAdapter-API-Key" access_credential: type: string description: | An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. example: "Bearer: JWTTOKENGOESHERE" IsDefault: type: object properties: is_default: type: boolean description: A flag indicating whether a scanner registration is default. ScannerCapability: type: object properties: consumes_mime_types: type: array items: type: string example: "application/vnd.docker.distribution.manifest.v2+json" produces_mime_types: type: array items: type: string example: "application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0" ScannerAdapterMetadata: type: object description: The metadata info of the scanner adapter properties: scanner: $ref: '#/definitions/Scanner' capabilities: type: array items: $ref: '#/definitions/ScannerCapability' properties: type: object additionalProperties: type: string example: 'harbor.scanner-adapter/registry-authorization-type': 'Bearer' ImmutableRule: 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/ImmutableSelector' scope_selectors: type: object additionalProperties: type: array items: $ref: '#/definitions/ImmutableSelector' ImmutableSelector: type: object properties: kind: type: string decoration: type: string pattern: type: string extras: type: string LdapConf: type: object description: The ldap configure properties properties: ldap_url: type: string description: The url of ldap service. ldap_search_dn: type: string description: The search dn of ldap service. ldap_search_password: type: string description: The search password of ldap service. ldap_base_dn: type: string description: The base dn of ldap service. ldap_filter: type: string description: The serach filter of ldap service. ldap_uid: type: string description: The serach uid from ldap service attributes. ldap_scope: type: integer format: int64 description: The serach scope of ldap service. ldap_connection_timeout: type: integer format: int64 description: The connect timeout of ldap service(second). ldap_verify_cert: type: boolean description: Verify Ldap server certificate. LdapPingResult: type: object description: The ldap ping result properties: success: type: boolean description: Test success message: type: string description: The ping operation output message. LdapImportUsers: type: object properties: ldap_uid_list: type: array description: selected uid list items: type: string LdapFailedImportUser: type: object properties: uid: type: string description: the uid can't add to system. error: type: string description: fail reason. LdapUser: type: object properties: username: type: string description: ldap username. realname: type: string description: The user realname from "uid" or "cn" attribute. email: type: string description: The user email address from "mail" or "email" attribute. UserGroup: type: object properties: id: type: integer description: The ID of the user group group_name: type: string description: The name of the user group group_type: type: integer description: 'The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group.' ldap_group_dn: type: string description: The DN of the LDAP group if group type is 1 (LDAP group). UserGroupSearchItem: type: object properties: id: type: integer description: The ID of the user group group_name: type: string description: The name of the user group group_type: type: integer description: 'The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group.' SupportedWebhookEventTypes: type: object description: Supported webhook event types and notify types. properties: event_type: type: array items: $ref: '#/definitions/EventType' notify_type: type: array items: $ref: '#/definitions/NotifyType' payload_formats: type: array items: $ref: '#/definitions/PayloadFormat' EventType: type: string description: Webhook supported event type. example: 'PULL_ARTIFACT' NotifyType: type: string description: Webhook supported notify type. example: 'http' PayloadFormatType: type: string description: The type of webhook paylod format. example: 'CloudEvents' PayloadFormat: type: object description: Webhook supported payload format type collections. properties: notify_type: $ref: '#/definitions/NotifyType' formats: type: array description: The supported payload formats for this notify type. items: $ref: '#/definitions/PayloadFormatType' WebhookTargetObject: type: object description: The webhook policy target object. properties: type: type: string description: The webhook target notify type. address: type: string description: The webhook target address. auth_header: type: string description: The webhook auth header. skip_cert_verify: type: boolean description: Whether or not to skip cert verify. payload_format: $ref: '#/definitions/PayloadFormatType' description: The payload format of webhook, by default is Default for http type. WebhookPolicy: type: object description: The webhook policy object properties: id: type: integer format: int64 description: The webhook policy ID. name: type: string description: The name of webhook policy. description: type: string description: The description of webhook policy. project_id: type: integer description: The project ID of webhook policy. targets: type: array items: $ref: '#/definitions/WebhookTargetObject' event_types: type: array items: type: string creator: type: string description: The creator of the webhook policy. creation_time: type: string description: The create time of the webhook policy. format: date-time update_time: type: string description: The update time of the webhook policy. format: date-time enabled: type: boolean description: Whether the webhook policy is enabled or not. x-omitempty: false WebhookLastTrigger: type: object description: The webhook policy and last trigger time group by event type. properties: policy_name: type: string description: The webhook policy name. event_type: type: string description: The webhook event type. enabled: type: boolean description: Whether or not the webhook policy enabled. creation_time: type: string description: The creation time of webhook policy. format: date-time last_trigger_time: type: string description: The last trigger time of webhook policy. format: date-time WebhookJob: type: object description: The webhook job. properties: id: type: integer format: int64 description: The webhook job ID. policy_id: type: integer format: int64 description: The webhook policy ID. event_type: type: string description: The webhook job event type. notify_type: type: string description: The webhook job notify type. status: type: string description: The webhook job status. job_detail: type: string description: The webhook job notify detailed data. creation_time: type: string description: The webhook job creation time. format: date-time update_time: type: string description: The webhook job update time. format: date-time InternalConfigurationsResponse: type: object additionalProperties: $ref: '#/definitions/InternalConfigurationValue' InternalConfigurationValue: type: object properties: value: type: object description: The value of current config item editable: type: boolean x-omitempty: false description: The configure item can be updated or not ConfigurationsResponse: type: object properties: auth_mode: $ref: '#/definitions/StringConfigItem' description: The auth mode of current system, such as "db_auth", "ldap_auth", "oidc_auth" primary_auth_mode: $ref: '#/definitions/BoolConfigItem' description: The flag to indicate whether the current auth mode should consider as a primary one. ldap_base_dn: $ref: '#/definitions/StringConfigItem' description: The Base DN for LDAP binding. ldap_filter: $ref: '#/definitions/StringConfigItem' description: The filter for LDAP search ldap_group_base_dn: $ref: '#/definitions/StringConfigItem' description: The base DN to search LDAP group. ldap_group_admin_dn: $ref: '#/definitions/StringConfigItem' description: Specify the ldap group which have the same privilege with Harbor admin ldap_group_attribute_name: $ref: '#/definitions/StringConfigItem' description: The attribute which is used as identity of the LDAP group, default is cn.' ldap_group_search_filter: $ref: '#/definitions/StringConfigItem' description: The filter to search the ldap group ldap_group_search_scope: $ref: '#/definitions/IntegerConfigItem' description: The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' ldap_scope: $ref: '#/definitions/IntegerConfigItem' description: The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' ldap_search_dn: $ref: '#/definitions/StringConfigItem' description: The DN of the user to do the search. ldap_timeout: $ref: '#/definitions/IntegerConfigItem' description: Timeout in seconds for connection to LDAP server ldap_uid: $ref: '#/definitions/StringConfigItem' description: The attribute which is used as identity for the LDAP binding, such as "CN" or "SAMAccountname" ldap_url: $ref: '#/definitions/StringConfigItem' description: The URL of LDAP server ldap_verify_cert: $ref: '#/definitions/BoolConfigItem' description: Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. ldap_group_membership_attribute: $ref: '#/definitions/StringConfigItem' description: The user attribute to identify the group membership project_creation_restriction: $ref: '#/definitions/StringConfigItem' description: Indicate who can create projects, it could be ''adminonly'' or ''everyone''. read_only: $ref: '#/definitions/BoolConfigItem' description: The flag to indicate whether Harbor is in readonly mode. self_registration: $ref: '#/definitions/BoolConfigItem' description: Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. token_expiration: $ref: '#/definitions/IntegerConfigItem' description: The expiration time of the token for internal Registry, in minutes. uaa_client_id: $ref: '#/definitions/StringConfigItem' description: The client id of UAA uaa_client_secret: $ref: '#/definitions/StringConfigItem' description: The client secret of the UAA uaa_endpoint: $ref: '#/definitions/StringConfigItem' description: The endpoint of the UAA uaa_verify_cert: $ref: '#/definitions/BoolConfigItem' description: Verify the certificate in UAA server http_authproxy_endpoint: $ref: '#/definitions/StringConfigItem' description: The endpoint of the HTTP auth http_authproxy_tokenreview_endpoint: $ref: '#/definitions/StringConfigItem' description: The token review endpoint http_authproxy_admin_groups: $ref: '#/definitions/StringConfigItem' description: The group which has the harbor admin privileges http_authproxy_admin_usernames: $ref: '#/definitions/StringConfigItem' description: The usernames which has the harbor admin privileges http_authproxy_verify_cert: $ref: '#/definitions/BoolConfigItem' description: Verify the HTTP auth provider's certificate http_authproxy_skip_search: $ref: '#/definitions/BoolConfigItem' description: Search user before onboard http_authproxy_server_certificate: $ref: '#/definitions/StringConfigItem' description: The certificate of the HTTP auth provider oidc_name: $ref: '#/definitions/StringConfigItem' description: The OIDC provider name oidc_endpoint: $ref: '#/definitions/StringConfigItem' description: The endpoint of the OIDC provider oidc_client_id: $ref: '#/definitions/StringConfigItem' description: The client ID of the OIDC provider oidc_groups_claim: $ref: '#/definitions/StringConfigItem' description: The attribute claims the group name oidc_admin_group: $ref: '#/definitions/StringConfigItem' description: The OIDC group which has the harbor admin privileges oidc_group_filter: $ref: '#/definitions/StringConfigItem' description: The OIDC group filter which filters out the group doesn't match the regular expression oidc_scope: $ref: '#/definitions/StringConfigItem' description: The scope of the OIDC provider oidc_user_claim: $ref: '#/definitions/StringConfigItem' description: The attribute claims the username oidc_verify_cert: $ref: '#/definitions/BoolConfigItem' description: Verify the OIDC provider's certificate' oidc_auto_onboard: $ref: '#/definitions/BoolConfigItem' description: Auto onboard the OIDC user oidc_extra_redirect_parms: $ref: '#/definitions/StringConfigItem' description: Extra parameters to add when redirect request to OIDC provider robot_token_duration: $ref: '#/definitions/IntegerConfigItem' description: The robot account token duration in days robot_name_prefix: $ref: '#/definitions/StringConfigItem' description: The rebot account name prefix notification_enable: $ref: '#/definitions/BoolConfigItem' description: Enable notification quota_per_project_enable: $ref: '#/definitions/BoolConfigItem' description: Enable quota per project storage_per_project: $ref: '#/definitions/IntegerConfigItem' description: The storage quota per project audit_log_forward_endpoint: $ref: '#/definitions/StringConfigItem' description: The endpoint of the audit log forwarder skip_audit_log_database: $ref: '#/definitions/BoolConfigItem' description: Whether skip the audit log in database scanner_skip_update_pulltime: $ref: '#/definitions/BoolConfigItem' description: Whether or not to skip update the pull time for scanner scan_all_policy: type: object properties: type: type: string description: 'The type of scan all policy, currently the valid values are "none" and "daily"' parameter: type: object properties: daily_time: type: integer description: 'The offset in seconds of UTC 0 o''clock, only valid when the policy type is "daily"' description: 'The parameters of the policy, the values are dependent on the type of the policy.' session_timeout: $ref: '#/definitions/IntegerConfigItem' description: The session timeout in minutes banner_message: $ref: '#/definitions/StringConfigItem' description: The banner message for the UI.It is the stringified result of the banner message object Configurations: type: object properties: auth_mode: type: string description: The auth mode of current system, such as "db_auth", "ldap_auth", "oidc_auth" x-omitempty: true x-isnullable: true primary_auth_mode: type: boolean x-nullable: true x-omitempty: true description: The flag to indicate whether the current auth mode should consider as a primary one. ldap_base_dn: type: string description: The Base DN for LDAP binding. x-omitempty: true x-isnullable: true ldap_filter: type: string description: The filter for LDAP search x-omitempty: true x-isnullable: true ldap_group_base_dn: type: string description: The base DN to search LDAP group. x-omitempty: true x-isnullable: true ldap_group_admin_dn: type: string description: Specify the ldap group which have the same privilege with Harbor admin x-omitempty: true x-isnullable: true ldap_group_attribute_name: type: string description: The attribute which is used as identity of the LDAP group, default is cn.' x-omitempty: true x-isnullable: true ldap_group_search_filter: type: string description: The filter to search the ldap group x-omitempty: true x-isnullable: true ldap_group_search_scope: type: integer description: The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' x-omitempty: true x-isnullable: true ldap_scope: type: integer description: The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' x-omitempty: true x-isnullable: true ldap_search_dn: type: string description: The DN of the user to do the search. x-omitempty: true x-isnullable: true ldap_search_password: type: string description: The password of the ldap search dn x-omitempty: true x-isnullable: true ldap_timeout: type: integer description: Timeout in seconds for connection to LDAP server x-omitempty: true x-isnullable: true ldap_uid: type: string description: The attribute which is used as identity for the LDAP binding, such as "CN" or "SAMAccountname" x-omitempty: true x-isnullable: true ldap_url: type: string description: The URL of LDAP server x-omitempty: true x-isnullable: true ldap_verify_cert: type: boolean description: Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. x-omitempty: true x-isnullable: true ldap_group_membership_attribute: type: string description: The user attribute to identify the group membership x-omitempty: true x-isnullable: true project_creation_restriction: type: string description: Indicate who can create projects, it could be ''adminonly'' or ''everyone''. x-omitempty: true x-isnullable: true read_only: type: boolean description: The flag to indicate whether Harbor is in readonly mode. x-omitempty: true x-isnullable: true self_registration: type: boolean description: Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. x-omitempty: true x-isnullable: true token_expiration: type: integer description: The expiration time of the token for internal Registry, in minutes. x-omitempty: true x-isnullable: true uaa_client_id: type: string description: The client id of UAA x-omitempty: true x-isnullable: true uaa_client_secret: type: string description: The client secret of the UAA x-omitempty: true x-isnullable: true uaa_endpoint: type: string description: The endpoint of the UAA x-omitempty: true x-isnullable: true uaa_verify_cert: type: boolean description: Verify the certificate in UAA server x-omitempty: true x-isnullable: true http_authproxy_endpoint: type: string description: The endpoint of the HTTP auth x-omitempty: true x-isnullable: true http_authproxy_tokenreview_endpoint: type: string description: The token review endpoint x-omitempty: true x-isnullable: true http_authproxy_admin_groups: type: string description: The group which has the harbor admin privileges x-omitempty: true x-isnullable: true http_authproxy_admin_usernames: type: string description: The username which has the harbor admin privileges x-omitempty: true x-isnullable: true http_authproxy_verify_cert: type: boolean description: Verify the HTTP auth provider's certificate x-omitempty: true x-isnullable: true http_authproxy_skip_search: type: boolean description: Search user before onboard x-omitempty: true x-isnullable: true http_authproxy_server_certificate: type: string description: The certificate of the HTTP auth provider x-omitempty: true x-isnullable: true oidc_name: type: string description: The OIDC provider name x-omitempty: true x-isnullable: true oidc_endpoint: type: string description: The endpoint of the OIDC provider x-omitempty: true x-isnullable: true oidc_client_id: type: string description: The client ID of the OIDC provider x-omitempty: true x-isnullable: true oidc_client_secret: type: string description: The OIDC provider secret x-omitempty: true x-isnullable: true oidc_groups_claim: type: string description: The attribute claims the group name x-omitempty: true x-isnullable: true oidc_admin_group: type: string description: The OIDC group which has the harbor admin privileges x-omitempty: true x-isnullable: true oidc_group_filter: type: string description: The OIDC group filter which filters out the group name doesn't match the regular expression x-omitempty: true x-isnullable: true oidc_scope: type: string description: The scope of the OIDC provider x-omitempty: true x-isnullable: true oidc_user_claim: type: string description: The attribute claims the username x-omitempty: true x-isnullable: true oidc_verify_cert: type: boolean description: Verify the OIDC provider's certificate' x-omitempty: true x-isnullable: true oidc_auto_onboard: type: boolean description: Auto onboard the OIDC user x-omitempty: true x-isnullable: true oidc_extra_redirect_parms: type: string description: Extra parameters to add when redirect request to OIDC provider x-omitempty: true x-isnullable: true robot_token_duration: type: integer description: The robot account token duration in days x-omitempty: true x-isnullable: true robot_name_prefix: type: string description: The rebot account name prefix x-omitempty: true x-isnullable: true notification_enable: type: boolean description: Enable notification x-omitempty: true x-isnullable: true quota_per_project_enable: type: boolean description: Enable quota per project x-omitempty: true x-isnullable: true storage_per_project: type: integer description: The storage quota per project x-omitempty: true x-isnullable: true audit_log_forward_endpoint: type: string description: The audit log forward endpoint x-omitempty: true x-isnullable: true skip_audit_log_database: type: boolean description: Skip audit log database x-omitempty: true x-isnullable: true session_timeout: type: integer description: The session timeout for harbor, in minutes. x-omitempty: true x-isnullable: true scanner_skip_update_pulltime: type: boolean description: Whether or not to skip update pull time for scanner x-omitempty: true x-isnullable: true banner_message: type: string description: The banner message for the UI.It is the stringified result of the banner message object x-omitempty: true x-isnullable: true StringConfigItem: type: object properties: value: type: string x-omitempty: false description: The string value of current config item editable: type: boolean x-omitempty: false description: The configure item can be updated or not BoolConfigItem: type: object properties: value: type: boolean x-omitempty: false description: The boolean value of current config item editable: type: boolean x-omitempty: false description: The configure item can be updated or not IntegerConfigItem: type: object properties: value: type: integer x-omitempty: false description: The integer value of current config item editable: type: boolean x-omitempty: false description: The configure item can be updated or not ProjectMemberEntity: type: object properties: id: type: integer description: the project member id project_id: type: integer description: the project id entity_name: type: string description: the name of the group member. role_name: type: string description: the name of the role role_id: type: integer description: the role id entity_id: type: integer description: 'the id of entity, if the member is a user, it is user_id in user table. if the member is a user group, it is the user group''s ID in user_group table.' entity_type: type: string description: 'the entity''s type, u for user entity, g for group entity.' ProjectMember: type: object properties: role_id: type: integer description: 'The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer' member_user: $ref: '#/definitions/UserEntity' member_group: $ref: '#/definitions/UserGroup' RoleRequest: type: object properties: role_id: type: integer description: 'The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer' UserEntity: type: object properties: user_id: type: integer description: The ID of the user. username: type: string description: The name of the user. UserProfile: type: object properties: email: type: string realname: type: string comment: type: string UserCreationReq: type: object properties: email: type: string maxLength: 255 realname: type: string comment: type: string password: type: string username: type: string maxLength: 255 OIDCUserInfo: type: object properties: id: type: integer format: int description: the ID of the OIDC info record user_id: type: integer format: int description: the ID of the user subiss: type: string description: the concatenation of sub and issuer in the ID token secret: type: string description: the secret of the OIDC user that can be used for CLI to push/pull artifacts creation_time: type: string format: date-time description: The creation time of the OIDC user info record. update_time: type: string format: date-time description: The update time of the OIDC user info record. UserResp: type: object properties: email: type: string realname: type: string comment: type: string user_id: type: integer format: int username: type: string sysadmin_flag: type: boolean x-omitempty: false admin_role_in_auth: type: boolean x-omitempty: false description: indicate the admin privilege is grant by authenticator (LDAP), is always false unless it is the current login user oidc_user_meta: $ref: '#/definitions/OIDCUserInfo' creation_time: type: string format: date-time description: The creation time of the user. update_time: type: string format: date-time description: The update time of the user. UserSysAdminFlag: type: object properties: sysadmin_flag: type: boolean description: 'true-admin, false-not admin.' UserSearch: type: object properties: user_id: type: integer format: int description: The ID of the user. username: type: string PasswordReq: type: object properties: old_password: type: string description: The user's existing password. new_password: type: string description: New password for marking as to be updated. UserSearchRespItem: type: object properties: user_id: type: integer format: int description: The ID of the user. username: type: string Permission: type: object properties: resource: type: string description: The permission resoruce action: type: string description: The permission action Permissions: type: object properties: system: type: array description: The system level permissions items: $ref: '#/definitions/Permission' project: type: array description: The project level permissions items: $ref: '#/definitions/Permission' OIDCCliSecretReq: type: object properties: secret: type: string description: The new secret OverallHealthStatus: type: object description: The system health status properties: status: type: string description: The overall health status. It is "healthy" only when all the components' status are "healthy" components: type: array items: $ref: '#/definitions/ComponentHealthStatus' ComponentHealthStatus: type: object description: The health status of component properties: name: type: string description: The component name status: type: string description: The health status of component. Is either "healthy" or "unhealthy". error: type: string description: (optional) The error message when the status is "unhealthy" Statistic: type: object properties: private_project_count: type: integer format: int64 description: The count of the private projects x-omitempty: false private_repo_count: type: integer format: int64 description: The count of the private repositories x-omitempty: false public_project_count: type: integer format: int64 description: The count of the public projects x-omitempty: false public_repo_count: type: integer format: int64 description: The count of the public repositories x-omitempty: false total_project_count: type: integer format: int64 description: The count of the total projects, only be seen by the system admin x-omitempty: false total_repo_count: type: integer format: int64 description: The count of the total repositories, only be seen by the system admin x-omitempty: false total_storage_consumption: type: integer format: int64 description: The total storage consumption of blobs, only be seen by the system admin x-omitempty: false Accessory: type: object description: 'The accessory of the artifact' properties: id: type: integer format: int64 description: The ID of the accessory artifact_id: type: integer format: int64 description: The artifact id of the accessory x-omitempty: false subject_artifact_id: type: integer format: int64 description: Going to be deprecated, use repo and digest for insteand. The subject artifact id of the accessory. subject_artifact_digest: type: string description: The subject artifact digest of the accessory x-omitempty: false subject_artifact_repo: type: string description: The subject artifact repository name of the accessory x-omitempty: false size: type: integer format: int64 description: The artifact size of the accessory x-omitempty: false digest: type: string description: The artifact digest of the accessory x-omitempty: false type: type: string description: The artifact size of the accessory x-omitempty: false icon: type: string description: The icon of the accessory x-omitempty: false creation_time: type: string format: date-time description: The creation time of the accessory ScanDataExportRequest: type: object description: The criteria to select the scan data to export. properties: job_name: type: string description: Name of the scan data export job projects: type: array items: type: integer format: int64 description: A list of one or more projects for which to export the scan data, currently only one project is supported due to performance concerns, but define as array for extension in the future. labels: type: array items: type: integer format: int64 description: A list of one or more labels for which to export the scan data, defaults to all if empty repositories: type: string description: A list of repositories for which to export the scan data, defaults to all if empty cveIds: type: string description: CVE-IDs for which to export data. Multiple CVE-IDs can be specified by separating using ',' and enclosed between '{}'. Defaults to all if empty tags: type: string description: A list of tags enclosed within '{}'. Defaults to all if empty ScanDataExportJob: type: object description: The metadata associated with the scan data export job properties: id: type: integer format: int64 description: The id of the scan data export job ScanDataExportExecution: type: object description: The replication execution properties: id: type: integer description: The ID of the execution user_id: type: integer description: The ID if the user triggering the export job 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 user_name: type: string x-omitempty: false description: The name of the user triggering the job file_present: type: boolean x-omitempty: false description: Indicates whether the export artifact is present in registry ScanDataExportExecutionList: type: object description: The list of scan data export executions properties: items: type: array items: $ref: '#/definitions/ScanDataExportExecution' description: The list of scan data export executions WorkerPool: type: object description: the worker pool of job service properties: pid: type: integer description: the process id of jobservice worker_pool_id: type: string description: the id of the worker pool start_at: type: string format: date-time description: The start time of the work pool heartbeat_at: type: string format: date-time description: The heartbeat time of the work pool concurrency: type: integer description: The concurrency of the work pool host: type: string description: The host of the work pool Worker: type: object description: worker in the pool properties: id: type: string description: the id of the worker pool_id: type: string description: the id of the worker pool job_name: type: string description: the name of the running job in the worker job_id: type: string description: the id of the running job in the worker start_at: type: string format: date-time description: The start time of the worker x-nullable: true x-omitempty: true check_in: type: string description: the checkin of the running job in the worker checkin_at: type: string format: date-time description: The checkin time of the worker x-nullable: true x-omitempty: true ActionRequest: type: object description: The request to stop, pause or resume properties: action: type: string description: The action of the request, should be stop, pause or resume enum: - stop - pause - resume JobQueue: type: object description: the job queue info properties: job_type: type: string description: The type of the job queue count: type: integer description: The count of jobs in the job queue latency: type: integer description: The latency the job queue (seconds) paused: type: boolean description: The paused status of the job queue x-omitempty: false ScheduleTask: type: object description: the schedule task info properties: id: type: integer description: the id of the Schedule task vendor_type: type: string description: the vendor type of the current schedule task vendor_id: type: integer description: the vendor id of the current task cron: type: string description: the cron of the current schedule task update_time: type: string format: date-time description: the update time of the schedule task SchedulerStatus: type: object description: the scheduler status properties: paused: type: boolean description: if the scheduler is paused x-omitempty: false SecuritySummary: type: object description: the security summary properties: critical_cnt: type: integer format: int64 x-omitempty: false description: the count of critical vulnerabilities high_cnt: type: integer format: int64 description: the count of high vulnerabilities medium_cnt: type: integer format: int64 x-omitempty: false description: the count of medium vulnerabilities low_cnt: type: integer format: int64 x-omitempty: false description: the count of low vulnerabilities none_cnt: type: integer format: int64 description: the count of none vulnerabilities unknown_cnt: type: integer format: int64 description: the count of unknown vulnerabilities total_vuls: type: integer format: int64 x-omitempty: false description: the count of total vulnerabilities scanned_cnt: type: integer format: int64 x-omitempty: false description: the count of scanned artifacts total_artifact: type: integer format: int64 x-omitempty: false description: the total count of artifacts fixable_cnt: type: integer format: int64 x-omitempty: false description: the count of fixable vulnerabilities dangerous_cves: type: array x-omitempty: true description: the list of dangerous CVEs items: $ref: '#/definitions/DangerousCVE' dangerous_artifacts: type: array x-omitempty: true description: the list of dangerous artifacts items: $ref: '#/definitions/DangerousArtifact' DangerousCVE: type: object description: the dangerous CVE information properties: cve_id: type: string description: the cve id severity: type: string description: the severity of the CVE cvss_score_v3: type: number format: float64 description: the cvss score v3 desc: type: string description: the description of the CVE package: type: string description: the package of the CVE version: type: string description: the version of the package DangerousArtifact: type: object description: the dangerous artifact information properties: project_id: type: integer format: int64 description: the project id of the artifact repository_name: type: string description: the repository name of the artifact digest: type: string description: the digest of the artifact critical_cnt: type: integer x-omitempty: false description: the count of critical vulnerabilities high_cnt: type: integer format: int64 x-omitempty: false description: the count of high vulnerabilities medium_cnt: type: integer x-omitempty: false description: the count of medium vulnerabilities VulnerabilityItem: type: object description: the vulnerability item info properties: project_id: type: integer format: int64 description: the project ID of the artifact repository_name: type: string description: the repository name of the artifact digest: type: string description: the digest of the artifact tags: type: array items: type: string description: the tags of the artifact cve_id: type: string description: the CVE id of the vulnerability. severity: type: string description: the severity of the vulnerability cvss_v3_score: type: number format: float description: the nvd cvss v3 score of the vulnerability package: type: string description: the package of the vulnerability version: type: string description: the version of the package fixed_version: type: string description: the fixed version of the package desc: type: string description: The description of the vulnerability links: type: array items: type: string description: Links of the vulnerability