From abb638a622b2d4e7386cedb10051bbc8bed3fdbc Mon Sep 17 00:00:00 2001 From: "hello@container-registry.com" Date: Tue, 26 Mar 2024 08:07:23 +0000 Subject: [PATCH] Merge branch 'preview' into 'master' Extend website order to AWS See merge request 8gears/container-registry/container-registry.com!34 --- algolia.json | 2 +- authors/indika-kodagoda/index.html | 3 +- authors/nitish-kumar/index.html | 3 +- authors/rahul-sharma/index.html | 7 +++-- authors/vadim-bauer/index.html | 27 +++++++++--------- authors/yong-wei-lun/index.html | 13 +++++---- blog/categories/best-practice/index.html | 6 ++-- blog/categories/best-practice/index.xml | 2 +- .../index.html | 4 +-- .../index.xml | 2 +- blog/categories/container-registry/index.html | 6 ++-- blog/categories/container-registry/index.xml | 2 +- blog/categories/containerization/index.html | 4 +-- blog/categories/containerization/index.xml | 2 +- blog/categories/developer/index.html | 8 +++--- blog/categories/developer/index.xml | 2 +- blog/categories/experience/index.html | 2 +- blog/categories/experience/index.xml | 2 +- blog/categories/harbor/index.html | 10 +++---- blog/categories/harbor/index.xml | 2 +- blog/categories/isv/index.html | 4 +-- blog/categories/isv/index.xml | 2 +- blog/categories/kubernetes/index.html | 8 +++--- blog/categories/kubernetes/index.xml | 2 +- blog/categories/productivity/index.html | 8 +++--- blog/categories/productivity/index.xml | 2 +- blog/categories/release-notes/index.html | 14 ++++----- blog/categories/release-notes/index.xml | 2 +- blog/categories/software-vendors/index.html | 4 +-- blog/categories/software-vendors/index.xml | 2 +- blog/categories/tutorial/index.html | 2 +- blog/categories/tutorial/index.xml | 2 +- blog/tags/automation/index.html | 2 +- blog/tags/automation/index.xml | 2 +- blog/tags/beginner/index.html | 4 +-- blog/tags/beginner/index.xml | 2 +- blog/tags/best-practices/index.html | 10 +++---- blog/tags/best-practices/index.xml | 2 +- blog/tags/buildkit/index.html | 8 +++--- blog/tags/buildkit/index.xml | 2 +- blog/tags/changelog/index.html | 10 +++---- blog/tags/changelog/index.xml | 2 +- .../index.html | 4 +-- .../index.xml | 2 +- blog/tags/compliance/index.html | 4 +-- blog/tags/compliance/index.xml | 2 +- blog/tags/container-registry/index.html | 4 +-- blog/tags/container-registry/index.xml | 2 +- blog/tags/container/index.html | 10 +++---- blog/tags/container/index.xml | 2 +- blog/tags/docker-build/index.html | 12 ++++---- blog/tags/docker-build/index.xml | 2 +- blog/tags/docker-hub/index.html | 4 +-- blog/tags/docker-hub/index.xml | 2 +- blog/tags/docker/index.html | 12 ++++---- blog/tags/docker/index.xml | 2 +- blog/tags/features/index.html | 10 +++---- blog/tags/features/index.xml | 2 +- blog/tags/governance/index.html | 4 +-- blog/tags/governance/index.xml | 2 +- blog/tags/harbor/index.html | 10 +++---- blog/tags/harbor/index.xml | 2 +- blog/tags/image-tags/index.html | 6 ++-- blog/tags/image-tags/index.xml | 2 +- blog/tags/image-versioning/index.html | 6 ++-- blog/tags/image-versioning/index.xml | 2 +- blog/tags/inner-loop/index.html | 12 ++++---- blog/tags/inner-loop/index.xml | 2 +- blog/tags/kubecon/index.html | 2 +- blog/tags/kubecon/index.xml | 2 +- blog/tags/kubectl/index.html | 12 ++++---- blog/tags/kubectl/index.xml | 2 +- blog/tags/kubernetes/index.html | 8 +++--- blog/tags/kubernetes/index.xml | 2 +- blog/tags/rate-limit/index.html | 12 ++++---- blog/tags/rate-limit/index.xml | 2 +- blog/tags/security/index.html | 4 +-- blog/tags/security/index.xml | 2 +- blog/tags/sell-container-images/index.html | 4 +-- blog/tags/sell-container-images/index.xml | 2 +- blog/tags/semantic-versioning/index.html | 6 ++-- blog/tags/semantic-versioning/index.xml | 2 +- blog/tags/stripe/index.html | 4 +-- blog/tags/stripe/index.xml | 2 +- blog/tags/updates/index.html | 10 +++---- blog/tags/updates/index.xml | 2 +- blog/tags/versioning-strategy/index.html | 6 ++-- blog/tags/versioning-strategy/index.xml | 2 +- categories/index.html | 10 +++---- categories/index.xml | 2 +- contact/index.xml | 2 +- .../database-authentication/index.html | 2 +- .../authentication/index.html | 2 +- .../authentication/index.xml | 2 +- .../ldap-ad-authentication/index.html | 2 +- .../oidc-authentication/index.html | 2 +- .../uaa-authentication/index.html | 2 +- .../index.html | 2 +- docs/administration-manual/index.html | 2 +- docs/administration-manual/index.xml | 2 +- .../other-system-settings/index.html | 2 +- .../project-quotas/index.html | 2 +- .../proxy-cache-projects/index.html | 2 +- .../registration-for-system-admins/index.html | 2 +- .../configure-replication-rules/index.html | 2 +- .../replication/index.html | 2 +- .../replication/index.xml | 2 +- .../scanners/add-new-scanners/index.html | 2 +- .../general-configurations/index.html | 2 +- .../administration-manual/scanners/index.html | 2 +- docs/administration-manual/scanners/index.xml | 2 +- .../manage-pre-installed-scanners/index.html | 2 +- .../scanners/scanning-artifacts/index.html | 2 +- .../system-robot-accounts/index.html | 2 +- .../system-wide-labels/index.html | 2 +- .../terminal-deletion-of-images/index.html | 2 +- .../user-management/index.html | 2 +- docs/getting-started-guide/index.html | 2 +- docs/getting-started-guide/index.xml | 6 ++-- .../new-user-sign-up/index.html | 2 +- .../other-useful-features/index.html | 2 +- .../prerequisites/index.html | 2 +- .../push-and-pull-images/index.html | 2 +- .../index.html | 16 ++++++----- .../api/artifactapi/index.html | 2 +- .../api/auditlogapi/index.html | 2 +- .../api/configureapi/index.html | 2 +- docs/harbor-api-client/api/gcapi/index.html | 2 +- .../api/healthapi/index.html | 2 +- docs/harbor-api-client/api/iconapi/index.html | 2 +- .../api/immutableapi/index.html | 2 +- docs/harbor-api-client/api/index.html | 2 +- docs/harbor-api-client/api/index.xml | 2 +- .../api/jobserviceapi/index.html | 2 +- .../harbor-api-client/api/labelapi/index.html | 2 +- docs/harbor-api-client/api/ldapapi/index.html | 2 +- .../api/memberapi/index.html | 2 +- docs/harbor-api-client/api/oidcapi/index.html | 2 +- docs/harbor-api-client/api/pingapi/index.html | 2 +- .../api/preheatapi/index.html | 2 +- .../api/projectapi/index.html | 2 +- .../api/projectmetadataapi/index.html | 2 +- .../harbor-api-client/api/purgeapi/index.html | 2 +- .../harbor-api-client/api/quotaapi/index.html | 2 +- .../api/registryapi/index.html | 2 +- .../api/replicationapi/index.html | 2 +- .../api/repositoryapi/index.html | 2 +- .../api/retentionapi/index.html | 2 +- .../harbor-api-client/api/robotapi/index.html | 2 +- .../api/robotv1api/index.html | 2 +- .../api/scanallapi/index.html | 2 +- docs/harbor-api-client/api/scanapi/index.html | 2 +- .../api/scandataexportapi/index.html | 2 +- .../api/scannerapi/index.html | 2 +- .../api/scheduleapi/index.html | 2 +- .../api/searchapi/index.html | 2 +- .../api/statisticapi/index.html | 2 +- .../api/systemcveallowlistapi/index.html | 2 +- .../api/systeminfoapi/index.html | 2 +- docs/harbor-api-client/api/userapi/index.html | 2 +- .../api/usergroupapi/index.html | 2 +- .../api/webhookapi/index.html | 2 +- .../api/webhookjobapi/index.html | 2 +- docs/harbor-api-client/index.html | 2 +- .../harbor-api-client/model/access/index.html | 2 +- .../model/accessory/index.html | 2 +- .../model/actionrequest/index.html | 2 +- .../model/additionlink/index.html | 2 +- .../model/additionlinks/index.html | 2 +- .../model/annotations/index.html | 2 +- .../model/artifact/index.html | 2 +- .../model/auditlog/index.html | 2 +- .../model/authproxysetting/index.html | 2 +- docs/harbor-api-client/model/body/index.html | 2 +- docs/harbor-api-client/model/body1/index.html | 2 +- .../model/boolconfigitem/index.html | 2 +- .../model/chartmetadata/index.html | 2 +- .../model/chartversion/index.html | 2 +- .../model/componenthealthstatus/index.html | 2 +- .../model/configurations/index.html | 2 +- .../model/configurationsresponse/index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../model/cveallowlist/index.html | 2 +- .../model/cveallowlistitem/index.html | 2 +- .../model/endpoint/index.html | 2 +- docs/harbor-api-client/model/error/index.html | 2 +- .../harbor-api-client/model/errors/index.html | 2 +- .../model/eventtype/index.html | 2 +- .../model/exechistory/index.html | 2 +- .../model/execution/index.html | 2 +- .../model/extraattrs/index.html | 2 +- .../model/filterstyle/index.html | 2 +- .../model/gchistory/index.html | 2 +- .../model/generalinfo/index.html | 2 +- docs/harbor-api-client/model/icon/index.html | 2 +- .../model/immutablerule/index.html | 2 +- .../model/immutableselector/index.html | 2 +- docs/harbor-api-client/model/index.html | 2 +- docs/harbor-api-client/model/index.xml | 2 +- .../model/instance/index.html | 2 +- .../model/integerconfigitem/index.html | 2 +- .../internalconfigurationsresponse/index.html | 2 +- .../internalconfigurationvalue/index.html | 2 +- .../model/isdefault/index.html | 2 +- .../model/jobqueue/index.html | 2 +- docs/harbor-api-client/model/label/index.html | 2 +- .../model/ldapconf/index.html | 2 +- .../model/ldapfailedimportuser/index.html | 2 +- .../model/ldapimportusers/index.html | 2 +- .../model/ldappingresult/index.html | 2 +- .../model/ldapuser/index.html | 2 +- .../model/metadata/index.html | 2 +- .../model/metrics/index.html | 2 +- .../model/nativereportsummary/index.html | 2 +- .../model/notifytype/index.html | 2 +- .../model/oidcclisecretreq/index.html | 2 +- .../model/oidcuserinfo/index.html | 2 +- .../model/overallhealthstatus/index.html | 2 +- .../model/passwordreq/index.html | 2 +- .../model/permission/index.html | 2 +- .../model/platform/index.html | 2 +- .../model/preheatpolicy/index.html | 2 +- .../model/project/index.html | 2 +- .../model/projectdeletable/index.html | 2 +- .../model/projectmember/index.html | 2 +- .../model/projectmemberentity/index.html | 2 +- .../model/projectmetadata/index.html | 2 +- .../model/projectreq/index.html | 2 +- .../model/projectscanner/index.html | 2 +- .../model/projectsummary/index.html | 2 +- .../model/projectsummaryquota/index.html | 2 +- .../model/providerunderproject/index.html | 2 +- docs/harbor-api-client/model/quota/index.html | 2 +- .../model/quotarefobject/index.html | 2 +- .../model/quotaupdatereq/index.html | 2 +- .../model/reference/index.html | 2 +- .../model/registry/index.html | 2 +- .../model/registrycredential/index.html | 2 +- .../model/registryendpoint/index.html | 2 +- .../model/registryinfo/index.html | 2 +- .../model/registryping/index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../model/registryproviderinfo/index.html | 2 +- .../model/registryupdate/index.html | 2 +- .../model/replicationexecution/index.html | 2 +- .../model/replicationfilter/index.html | 2 +- .../model/replicationpolicy/index.html | 2 +- .../model/replicationtask/index.html | 2 +- .../model/replicationtrigger/index.html | 2 +- .../replicationtriggersettings/index.html | 2 +- .../model/repository/index.html | 2 +- .../model/resourcelist/index.html | 2 +- .../model/retentionexecution/index.html | 2 +- .../model/retentionexecutiontask/index.html | 2 +- .../model/retentionmetadata/index.html | 2 +- .../model/retentionpolicy/index.html | 2 +- .../model/retentionpolicyscope/index.html | 2 +- .../model/retentionrule/index.html | 2 +- .../model/retentionrulemetadata/index.html | 2 +- .../retentionruleparammetadata/index.html | 2 +- .../model/retentionruletrigger/index.html | 2 +- .../model/retentionselector/index.html | 2 +- .../retentionselectormetadata/index.html | 2 +- docs/harbor-api-client/model/robot/index.html | 2 +- .../model/robotcreate/index.html | 2 +- .../model/robotcreated/index.html | 2 +- .../model/robotcreatev1/index.html | 2 +- .../model/robotpermission/index.html | 2 +- .../model/robotsec/index.html | 2 +- .../model/rolerequest/index.html | 2 +- .../model/scandataexportexecution/index.html | 2 +- .../scandataexportexecutionlist/index.html | 2 +- .../model/scandataexportjob/index.html | 2 +- .../model/scandataexportrequest/index.html | 2 +- .../model/scanner/index.html | 2 +- .../model/scanneradaptermetadata/index.html | 2 +- .../model/scannercapability/index.html | 2 +- .../model/scannerregistration/index.html | 2 +- .../model/scannerregistrationreq/index.html | 2 +- .../scannerregistrationsettings/index.html | 2 +- .../model/scanoverview/index.html | 2 +- .../model/schedule/index.html | 2 +- .../model/scheduleobj/index.html | 2 +- .../model/schedulerstatus/index.html | 2 +- .../model/scheduletask/index.html | 2 +- .../harbor-api-client/model/search/index.html | 2 +- .../model/searchrepository/index.html | 2 +- .../model/searchresult/index.html | 2 +- .../startreplicationexecution/index.html | 2 +- .../model/statistic/index.html | 2 +- docs/harbor-api-client/model/stats/index.html | 2 +- .../model/storage/index.html | 2 +- .../model/stringconfigitem/index.html | 2 +- .../supportedwebhookeventtypes/index.html | 2 +- .../model/systeminfo/index.html | 2 +- docs/harbor-api-client/model/tag/index.html | 2 +- docs/harbor-api-client/model/task/index.html | 2 +- .../model/usercreationreq/index.html | 2 +- .../model/userentity/index.html | 2 +- .../model/usergroup/index.html | 2 +- .../model/usergroupsearchitem/index.html | 2 +- .../model/userprofile/index.html | 2 +- .../model/userresp/index.html | 2 +- .../model/usersearch/index.html | 2 +- .../model/usersearchrespitem/index.html | 2 +- .../model/usersysadminflag/index.html | 2 +- .../model/vulnerabilitysummary/index.html | 2 +- .../model/webhookjob/index.html | 2 +- .../model/webhooklasttrigger/index.html | 2 +- .../model/webhookpolicy/index.html | 2 +- .../model/webhooktargetobject/index.html | 2 +- .../harbor-api-client/model/worker/index.html | 2 +- .../model/workerpool/index.html | 2 +- docs/index.xml | 2 +- docs/user-guide/index.html | 2 +- docs/user-guide/index.xml | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../double-starred-patterns/index.html | 2 +- .../images/artifact-page/index.html | 4 +-- docs/user-manual/images/index.html | 6 ++-- docs/user-manual/images/index.xml | 5 ++-- .../images/push-and-pull-images/index.html | 2 +- docs/user-manual/images/tags/index.html | 2 +- docs/user-manual/images/tags/index.xml | 2 +- .../images/tags/tag-immutability/index.html | 4 +-- .../images/tags/tag-retention/index.html | 2 +- docs/user-manual/images/tags_overview.png | Bin 50038 -> 0 bytes docs/user-manual/images/tags_overview_1.png | Bin 60667 -> 0 bytes docs/user-manual/images/tags_overview_2.png | Bin 72325 -> 0 bytes docs/user-manual/images/tags_overview_3.png | Bin 61420 -> 0 bytes .../images/working-with-tags/index.html | 16 ----------- docs/user-manual/index.html | 4 +-- docs/user-manual/index.xml | 2 +- .../projects/configuration/index.html | 4 +-- .../projects/configuration/index.xml | 2 +- .../configuration/robot-accounts/index.html | 2 +- .../configuration/robot_accounts_overview.png | Bin 75667 -> 0 bytes .../configuration/webhooks/index.html | 2 +- .../configuration/webhooks_overview.png | Bin 108060 -> 0 bytes .../configuration/webhooks_slack_legacy.png | Bin 149846 -> 0 bytes docs/user-manual/projects/index.html | 2 +- docs/user-manual/projects/index.xml | 2 +- .../managing-project-users/index.html | 2 +- .../projects/repositories/index.html | 2 +- docs/user-manual/what-is-harbor/index.html | 2 +- .../why-use-container-registry/index.html | 2 +- docs/user-manual/working-with-logs/index.html | 2 +- img/aws-marketplace-icon.svg | 1 + index.html | 2 +- index.xml | 9 +++--- posts/container-image-versioning/index.html | 4 +-- .../index.html | 2 +- .../index.html | 2 +- .../index.html | 4 +-- .../index.html | 6 ++-- posts/index.html | 20 ++++++------- posts/index.xml | 2 +- .../overcome-docker-hub-rate-limit/index.html | 2 +- posts/page/2/index.html | 14 ++++----- .../index.html | 8 +++--- .../index.html | 4 +-- secrets/index.xml | 2 +- signup/index.html | 26 +++++------------ sitemap.xml | 2 +- subscription/index.xml | 2 +- success/index.xml | 2 +- tags/index.html | 22 +++++++------- tags/index.xml | 2 +- team_collaboration/index.xml | 2 +- 374 files changed, 552 insertions(+), 574 deletions(-) delete mode 100644 docs/user-manual/images/tags_overview.png delete mode 100644 docs/user-manual/images/tags_overview_1.png delete mode 100644 docs/user-manual/images/tags_overview_2.png delete mode 100644 docs/user-manual/images/tags_overview_3.png delete mode 100644 docs/user-manual/images/working-with-tags/index.html delete mode 100644 docs/user-manual/projects/configuration/robot_accounts_overview.png delete mode 100644 docs/user-manual/projects/configuration/webhooks_overview.png delete mode 100644 docs/user-manual/projects/configuration/webhooks_slack_legacy.png create mode 100644 img/aws-marketplace-icon.svg diff --git a/algolia.json b/algolia.json index f575608d..b5192d88 100644 --- a/algolia.json +++ b/algolia.json @@ -1 +1 @@ -[{"category":"Python API Client","content":"","date":"2023-02-13T00:00:00Z","description":"Documentation for Harbor API","href":"https://container-registry.com/docs/harbor-api-client/api/","objectID":"fd67290dcb3c2d101adc432f6c783f71_0","order":0,"tags":null,"title":"API"},{"category":"Python API Client","content":"","date":"2023-02-13T00:00:00Z","description":"Documentation for Harbor models","href":"https://container-registry.com/docs/harbor-api-client/model/","objectID":"701783c9278819aefe0b8373f2d48ceb_0","order":0,"tags":null,"title":"Models"},{"category":"User Guides","content":"How to Setup Google Workspace as OIDC Provider for Your Harbor Container Registry In this tutorial, we will show you how to configure all necessary settings in your Google Workspace. The steps appear in chronological order but some of them may be skipped if you already dealt with Google Cloud before. The other tutorial explains what you should do in your Container Registry instance if you want to use OIDC authentication in general. However, before doing anything in Container Registry, you need to complete the configuration on the provider side. Prerequisites You need a custom domain on Container Registry. 1 - Create a New Project in the Google Cloud Platform Although it is not mandatory, we recommend you to create a new project in the Google Cloud Platform for managing your OIDC authentication. You can find detailed instructions in the Google official documentation. If you want to use an existing project, feel free to skip the next part. Steps Upon your first registration in Google Cloud, one project is automatically generated for you. It is usually called My First Project. You will see it on the top left of your console. If you click on the arrow next to it, the list of your projects will be displayed. Here, you can find the New Project button. Give your project a name and hit Create. You will be redirected back to your default project. Click on the arrow next to its name again, select the right project, and hit Open. We will add it to your DNS record and your domain will appear as authorized in the Google Cloud Console. This may take a couple of days. 2 - Configure Google OAuth Consent Screen If you decided to create a new project or if your current one does not have a consent screen yet, you have to configure it before you can acquire your credentials. Inside your Container Registry project: Find APIs and services on the left pane; Select OAuth consent screen; Select User Type; Consult Google official documentation to choose the right one for you; Fill in the mandatory fields: your application name; user support email: an email that users can reach out to you with; developer contact information for the external type of use; Add an authorized domain: use your custom domain name that needs to be authorized in Google Cloud before as explained above. Save your changes, and you will be re-directed to the Scopes configuration. 3 - Configure OAuth Scopes for Container Registry Scopes specify what kind of user data Container Registry can access in your Google account. You need to add three types of scopes: your OpenID; your email; your general profile information, such as your username. To do so: on the Scopes screen, simply click Add or remove scopes; normally, the scopes you need will appear on the top of the list; they should have no description in the API field; scroll down the form and hit Update; You will see the scopes added to non-sensitive scopes: Click Save and continue on the bottom of the scopes page. 4 - Adding Users On the next page, you will be able to add users that must be able to log in to Container Registry. Click Save and Continue when you are finished. 5 - Publish Your Application In the last step, after adding the users, you can review your consent screen data. After that: scroll down the page and hit Back to Dashboard; on the Dashboard, click Publish app and then Confirm to activate the consent screen. Your consent screen – called application – must yet be approved by the Google team. After that, it will be shown as published. In the meantime, you can create your API credentials. 6 - Create Your Google API Credentials for OIDC Find APIs and services on the left pane; Select Credentials; Click + Create credentials; Select OAuth client ID; In the Application type, select Web application from the dropdown; Give it a name; In Authorized redirect URIs, enter the following: https://your-custom-domain.com/c/oidc/callback Hit Create. You will see a dialogue window with your credentials that you can copy directly using the Copy buttons next to them or download as a JSON file. Your credentials can be accessed, edited, downloaded, or deleted at any time on the Credentials page. 7 - Configure OIDC Authentication in Your Container Registry Instance Keep your credentials at hand and proceed to this tutorial to finish the OIDC authentication setup for your Container Registry instance.","date":"2021-10-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-guide/oidc-configuration-for-google-workspaces/","objectID":"da5cdf744ac43dccfdf6d61be7fe2b3e_0","order":0,"tags":null,"title":"OIDC configuration for Google Workspaces"},{"category":"User Manual","content":"Why Use Container Registry as a Service Container registries are storages for your container images. It is an essential service for containerization technology that saves you a lot of headaches when you run Kubernetes clusters to test and deploy your containerized applications. Why Use a Container Registry When you work with Kubernetes deployments, you face the chicken-egg dilemma: you cannot keep the images in the cluster but you need them to run it. A container registry keeps all your images that you pull into a Kubernetes cluster when you start it. But Container Registry is even more than that: it is a SaaS platform that helps you to manage your Docker images. Challenges There are quite a few challenges associated with managing your container images. You need to pull container images quickly. You can have more control over the costs of your incoming Kubernetes traffic. Since the traffic might go from one cluster into the other, this might result in additional costs. You need to protect certain images from unauthorized access. You want to avoid bugs and data breaches that can spread between containers since they are built upon each other. If one Docker container has security issues in the source code, all the images built from it will inherit these issues. You want a better structure of your image storage. You do not want to throw them all untagged into the same repository without a chance to find anything inside it later. Solution Consequently, you get enough reasons for using Container Registry: a container registry service that solves all of these problems. Developer Tools You get a solution that can be managed through API and robot accounts (integration users). It can also be operated through CLI tools. You can create webhooks to trigger events further down your CI/CD pipeline. You can replicate images to/from another repository (multiple providers are supported). Storage and Costs The images pushed to Container Registry are compressed and do not require much storage space. Besides, you can control the size of your storage to avoid cost explosion. For enterprise customers, we offer a custom storage. Security Features User Authorization and Authentication You can create users with different roles and permissions deriving from their roles (RBAC). Users can be onboarded using an OIDC provider or LDAP/AD server. Vulnerability Scanning You can run vulnerability checks using different providers. More than one developer may be working on an image and some imperfections may always slip your team\u0026rsquo;s attention. It is important not to let the other images inherit it and ruin your deployments. 2 pre-installed vulnerability scanners. Other Security Features Container Registry supports content trust: enforcing only sign images. Managing Images You can organize your images into projects, as well as tag and label them directly in the GUI. You can make certain tags immutable. You can retire tags automatically. You can delete unused and/or untagged images on schedule. You can get log data that tracks the history of everything that happened in the project. You have access to the build history of every image in the repository. Other Supported Artifacts Container Registry supports Open Container Initiative (OCI). You can store helm charts to manage your Kubernetes deployments. Admin Features In-browser admin portal, accessible from everywhere, on any device. Apart from this, Container Registry provides a simple graphical user interface. Although pushing images requires you to use a command line tool, all other actions can be done with a mouse click. Why Use Container Registry as a Service With our service, you have the latest Harbor technology but do not have to install it by yourself. You only need to log in to your account using a browser. That means that you can access your registry from everywhere. Besides, we fixed quite a few of Harbor\u0026rsquo;s and Docker Hub\u0026rsquo;s issues and offer much better image scanners and other security features.","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/why-use-container-registry/","objectID":"7cc66c81d3ca6b57e8358749b925b2b9_0","order":0,"tags":null,"title":"Why Use Container Registry"},{"category":"Administration Manual","content":"Database Authentication The database user authnetication mode is applied by default. With this mode, all user management happens in the Container Registry GUI and the data is stored in the local database. When selecting this authentication mode, keep in mind that once you added any users (except for yourself) to the instance using the database mode, the instance will be locked from switching to any other mode. Nonetheless, this mode has a few advantages. As a system admin, you can reset or change user passwords and enable self-registration to facilitate the onboarding process of a new users. Activate Database Authentication Mode In the navigation pane on the left, select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select Database; Hit Save. Self-Registration You can allow users to sign up for an account in your instance by activating the self-registration feature: In this case, when users access the URL of your instance, they see the Sign up for an account link. If they click on the link, they will be shown a registration form where they can create their user name. Once a new user filled in and submitted the signup form, this user is added to the instance automatically and appears immediately in the list of users under Administration -\u0026gt; Users.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/database-authentication/","objectID":"ed5bde98367c62b5f085437e50f2a8d9_0","order":0,"tags":null,"title":"Database Authentication"},{"category":"Getting Started Guide","content":"Getting Started If you want to start using Container Registry in a few simple steps, please check the instructions in this chapter. They will help you to get quickly to the point. These tutorials describe registration process and how to push and pull images and provide a short overview of the features. Here is a breakdown of the Table of contents. Feel free to access the individual sections by clicking on the titles in the left sidebar. Prerequisites New User Sign Up Push and Pull Images Other Useful Features","date":"2021-08-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/getting-started-guide/","objectID":"7659d80287131c0137b04dfd52d360ca_0","order":0,"tags":null,"title":"Getting Started Guide"},{"category":"User Manual","content":"Robot Accounts Robot accounts are used to access your project through an API. They perform a limited range of actions that you can specify per account and are generally used for workflow, deployment, and testing automation. Robot accounts created on the project level can access only one project. They cannot be transferred to other projects. To create robots that have access to multiple projects, create system robot accounts as explained here. Overview of Existing Robot Accounts Inside a project, under the Robot Accounts tab, you will find a list of the robot accounts associated with the project. For each robot account, you can see its: name; enabled state; permissions; created time; expiration date if any; description. Robot Account Name The robot account name is used to log in to an external client as a user name. It\u0026rsquo;s built following this naming convention: robot_: permanent part for all robot accounts; project name; the + sign; the variable name that you can specify for this particular robot. Robot Account Secret Robot accounts use a CLI secret to log in to external clients. This secret is generated and displayed once on creation of the account but is not stored anywhere in the project or instance. However, it can be resetted later to generate a new secret. Docker Login With Robot Account Below is an example of how to log in with a robot account in Docker: docker login your-subdomain.container-registry.com -u robot_project_name+robot_variable_name -p 3xiYiY9eaenXDhZHj8k7WGcF5IfSSGVk Robot Account Permissions Upon creation, you can grant the new account all or a few selected permissions: Push artifacts Pull artifacts Delete artifacts Read Helm charts Create a Helm chart version Delete a Helm chart version Create a tag Delete a tag Create artifact labels Create a scan Create a Robot Account Use + NEW ROBOT ACCOUNT to add a new one: Specify its variable name; Set when it should expire: after how many days; or never; Check the permissions you need (by default, all of them are selected); Save it and then make sure that you save the token/CLI secret using one of the methods: copy the token into clipboard with the copy icon and paste it into some text editor (1); EXPORT TO FILE to export it as a JSON file(2). The JSON file looks like the following: { \u0026#34;creation_time\u0026#34;:\u0026#34;2021-08-04T13:58:45.934Z\u0026#34;, \u0026#34;expires_at\u0026#34;:1628949525, \u0026#34;id\u0026#34;:1, \u0026#34;name\u0026#34;:\u0026#34;robot_documentation+test\u0026#34;, \u0026#34;secret\u0026#34;:\u0026#34;D4pGyGP3eFaW8Ako4249kSNCtZ0McxgV\u0026#34; } exprires_at is shown as Unix Epoch. When it is set to never, it shows -1: { \u0026#34;creation_time\u0026#34;:\u0026#34;2021-08-04T14:17:44.764Z\u0026#34;, \u0026#34;expires_at\u0026#34;:-1, \u0026#34;id\u0026#34;:2, \u0026#34;name\u0026#34;:\u0026#34;robot_documentation+test2\u0026#34;, \u0026#34;secret\u0026#34;:\u0026#34;3xiYiY9eaenXDhZHj8k7WGcF5IfSSGVk\u0026#34; } The id in the JSON file reflects a simple sequential numbering of all robot accounts that have ever been created in the instance. Refresh Or Specify Own Secret If you lost the CLI secret (token) for a robot account or you want to specify it by yourself, you can do the following: Select the robot with a checkbox; Go to Actions; Select Refresh robot secret. This will open the following dialogue window. By default, without enabling a manual secret, you can generate a new one by clicking on Refresh: You will see the same dialogue window that was displayed upon creation of the robot account, with the copy to clipboard and export to file options for saving the new token. It won\u0026rsquo;t be possible to retrieve the new secret later. Specify the New Secret Manually If you enable this feature, you can enter your own secret. It should be: between 8 and 20 characters long; the combination of: at least 1 uppercase, at least 1 lowercase; at least 1 number Enable and Disable Robot Accounts Every newly created robot account is enabled by default. You can disable robot accounts. They will stay in the project and can be re-enabled again at any time. It is not possible to change enable status for more than one robot at once; you have to repeat the procedure for every account. Select the robot with a checkbox; Go to Actions; Click Disable/Enable. Edit or Delete Robot Accounts To edit the data that you entered during account creation or to delete one or a few robots: Select the robot with a checkbox (it is not possible to edit them in bulks); Go to Actions; Click Edit or Delete. Change Robot Account Permissions The Edit will open the dialogue window where you can also change permissions.","date":"2021-08-04T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/robot-accounts/","objectID":"5178bd29379b88948070e2d625baa8b7_0","order":0,"tags":null,"title":"Robot Accounts"},{"category":"User Manual","content":"Repositories Repositories can be described as folders within one project. If a project is a storage for images involved in the same application, the repositories can be a method to sort these images depending on the application feature, stage in the development life cycle, or any other factor. Browse and Filter Repositories Inside every project, you will see the list of all its repositories. Similarly to filtering and searching through projects, you can use a search field to find a repository by its name: Create a Repository New repositories can only be created using the command line tool. When you tag an image before pushing it into your project on Container Registry, the first part of the tag is the repository: docker tag hello-world your-subdomain.container-registry.com/library/repository:tag Read more about tagging and pushing images in this tutorial. Refresh Repositories List When you push an image to a new repository and have the project page open in your browser at the same time, you need to refresh the view to see the newly created repository: Change View You can switch between the default list view and card view: The view wil be resetted to the default list view every time you leave the project page. Delete a Repository Deleting a repository can only be done from the GUI. In the List View Select repositories you want to delete or select all by checking the tickbox in the upper left corner of the table. Click the Delete button INFO When you deleted a repository but then push the image tagged with it once again, the same repository will be created anew. To be able to delete only certain repositories in bulks, you can first filter them and then use the checkbox to select all repositories in the result list. In the Card View In the card view, the Delete button is hidden under Actions: Push Command Inside the project, you will find push command templates that help you to tag and push images, Helm charts and other artifacts. Inside a Repository Inside the repository, you can see a list of different artifacts – images, OCI indexes, and helm charts – and some general information about them. Repository Description You can provide your repository with a description in plain text or Markdown format. Inside the repository, go to the Info section: The Markdown format will create a well structured description of your repository. Managing Artifacts Refer to this guide to learn about managing artifacts (images, Helm charts, and tags) in your repository.","date":"2021-08-03T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/repositories/","objectID":"f76c1c66f68421d986b43a00196ef85d_0","order":0,"tags":null,"title":"Repositories"},{"category":"Getting Started Guide","content":"Prerequisites The only prerequisite for you to get started is to use an OCI compliant container runtime environment, such as Docker or Podman. Check the system and hardware requirements for Docker in its official documentation and follow the instructions to get it running on your machine. You can refer to the respective install guide for Podman.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/prerequisites/","objectID":"4a7ac3c25523c387f4947978f8e3bcfd_0","order":0,"tags":null,"title":"Prerequisites"},{"category":"Python API Client","content":"Access Properties Name Type Description Notes resource str The resource of the access [optional] action str The action of the access [optional] effect str The effect of the access [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/access/","objectID":"0d0a82c7d0bc997074d34b8b0ac6750f_0","order":0,"tags":null,"title":"Access"},{"category":"Python API Client","content":"Accessory Properties Name Type Description Notes id int The ID of the accessory [optional] artifact_id int The artifact id of the accessory [optional] subject_artifact_id int The subject artifact id of the accessory [optional] size int The artifact size of the accessory [optional] digest str The artifact digest of the accessory [optional] type str The artifact size of the accessory [optional] icon str The icon of the accessory [optional] creation_time datetime The creation time of the accessory [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/accessory/","objectID":"922f7a5b2f461466e054b140de918790_0","order":0,"tags":null,"title":"Accessory"},{"category":"Python API Client","content":"ActionRequest Properties Name Type Description Notes action str The action of the request, should be stop, pause or resume [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/actionrequest/","objectID":"715f6338d9fc0237960c0d895a0a61c2_0","order":0,"tags":null,"title":"ActionRequest"},{"category":"Python API Client","content":"AdditionLink Properties Name Type Description Notes href str The link of the addition [optional] absolute bool Determine whether the link is an absolute URL or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/additionlink/","objectID":"72eec620cfa0ed4f07f29c10e9742997_0","order":0,"tags":null,"title":"AdditionLink"},{"category":"Python API Client","content":"AdditionLinks Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/additionlinks/","objectID":"ac8a88b3f1d3dbb7b0b798b3bc7d7958_0","order":0,"tags":null,"title":"AdditionLinks"},{"category":"Python API Client","content":"Annotations Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/annotations/","objectID":"c9dc6af732323276a8e4a670c9eca244_0","order":0,"tags":null,"title":"Annotations"},{"category":"Python API Client","content":"Artifact Properties Name Type Description Notes id int The ID of the artifact [optional] type str The type of the artifact, e.g. image, chart, etc [optional] media_type str The media type of the artifact [optional] manifest_media_type str The manifest media type of the artifact [optional] project_id int The ID of the project that the artifact belongs to [optional] repository_id int The ID of the repository that the artifact belongs to [optional] digest str The digest of the artifact [optional] size int The size of the artifact [optional] icon str The digest of the icon [optional] push_time datetime The push time of the artifact [optional] pull_time datetime The latest pull time of the artifact [optional] extra_attrs ExtraAttrs [optional] annotations Annotations [optional] references list[Reference] [optional] tags list[Tag] [optional] addition_links AdditionLinks [optional] labels list[Label] [optional] scan_overview ScanOverview The overview of the scan result. [optional] accessories list[Accessory] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/artifact/","objectID":"0fc95dcb8105ca9e4416dd0baa622c2f_0","order":0,"tags":null,"title":"Artifact"},{"category":"Python API Client","content":"AuditLog Properties Name Type Description Notes id int The ID of the audit log entry. [optional] username str Username of the user in this log entry. [optional] resource str Name of the repository in this log entry. [optional] resource_type str Tag of the repository in this log entry. [optional] operation str The operation against the repository in this log entry. [optional] op_time datetime The time when this operation is triggered. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/auditlog/","objectID":"05c65702a7e48a081539c61cc182c8e0_0","order":0,"tags":null,"title":"AuditLog"},{"category":"Python API Client","content":"AuthproxySetting Properties Name Type Description Notes endpoint str The fully qualified URI of login endpoint of authproxy, such as 'https://192.168.1.2:8443/login' [optional] tokenreivew_endpoint str The fully qualified URI of token review endpoint of authproxy, such as 'https://192.168.1.2:8443/tokenreview' [optional] skip_search bool The flag to determine whether Harbor can skip search the user/group when adding him as a member. [optional] verify_cert bool The flag to determine whether Harbor should verify the certificate when connecting to the auth proxy. [optional] server_certificate str The certificate to be pinned when connecting auth proxy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/authproxysetting/","objectID":"aede1acc2547e49270aece05799c0b41_0","order":0,"tags":null,"title":"AuthproxySetting"},{"category":"Python API Client","content":"Body Properties Name Type Description Notes dry_run bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/body/","objectID":"d2e1d20bf6d8b3d1ebbe2a0c4fc4ffb6_0","order":0,"tags":null,"title":"Body"},{"category":"Python API Client","content":"Body1 Properties Name Type Description Notes action str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/body1/","objectID":"aaa1536b09814f10db0e6229525dd27d_0","order":0,"tags":null,"title":"Body1"},{"category":"Python API Client","content":"BoolConfigItem Properties Name Type Description Notes value bool The boolean value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/boolconfigitem/","objectID":"81954cd3c8b03bc49239275b257c42af_0","order":0,"tags":null,"title":"BoolConfigItem"},{"category":"Python API Client","content":"ChartMetadata Properties Name Type Description Notes name str The name of the chart home str The URL to the relevant project page [optional] sources list[str] The URL to the source code of chart [optional] version str A SemVer 2 version of chart description str A one-sentence description of chart [optional] keywords list[str] A list of string keywords [optional] engine str The name of template engine icon str The URL to an icon file api_version str The API version of this chart app_version str The version of the application enclosed in the chart deprecated bool Whether or not this chart is deprecated [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/chartmetadata/","objectID":"cc376b6c58ed4d49fd255e0bd2777308_0","order":0,"tags":null,"title":"ChartMetadata"},{"category":"Python API Client","content":"ChartVersion Properties Name Type Description Notes labels list[Label] A list of label [optional] created str The created time of the chart entry [optional] removed bool A flag to indicate if the chart entry is removed [optional] digest str The digest value of the chart entry [optional] urls list[str] The urls of the chart entry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/chartversion/","objectID":"e27d2ab7e3a7c95079374391aaccc36c_0","order":0,"tags":null,"title":"ChartVersion"},{"category":"Python API Client","content":"ComponentHealthStatus Properties Name Type Description Notes name str The component name [optional] status str The health status of component [optional] error str (optional) The error message when the status is \u0026amp;quot;unhealthy\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/componenthealthstatus/","objectID":"838582a0580f7e46a2c8ddd552f1db0d_0","order":0,"tags":null,"title":"ComponentHealthStatus"},{"category":"Python API Client","content":"Configurations Properties Name Type Description Notes auth_mode str The auth mode of current system, such as \u0026amp;quot;db_auth\u0026amp;quot;, \u0026amp;quot;ldap_auth\u0026amp;quot;, \u0026amp;quot;oidc_auth\u0026amp;quot; [optional] ldap_base_dn str The Base DN for LDAP binding. [optional] ldap_filter str The filter for LDAP search [optional] ldap_group_base_dn str The base DN to search LDAP group. [optional] ldap_group_admin_dn str Specify the ldap group which have the same privilege with Harbor admin [optional] ldap_group_attribute_name str The attribute which is used as identity of the LDAP group, default is cn.' [optional] ldap_group_search_filter str The filter to search the ldap group [optional] ldap_group_search_scope int The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' [optional] ldap_scope int The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' [optional] ldap_search_dn str The DN of the user to do the search. [optional] ldap_search_password str The password of the ldap search dn [optional] ldap_timeout int Timeout in seconds for connection to LDAP server [optional] ldap_uid str The attribute which is used as identity for the LDAP binding, such as \u0026amp;quot;CN\u0026amp;quot; or \u0026amp;quot;SAMAccountname\u0026amp;quot; [optional] ldap_url str The URL of LDAP server [optional] ldap_verify_cert bool Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. [optional] ldap_group_membership_attribute str The user attribute to identify the group membership [optional] project_creation_restriction str Indicate who can create projects, it could be ''adminonly'' or ''everyone''. [optional] read_only bool The flag to indicate whether Harbor is in readonly mode. [optional] self_registration bool Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. [optional] token_expiration int The expiration time of the token for internal Registry, in minutes. [optional] uaa_client_id str The client id of UAA [optional] uaa_client_secret str The client secret of the UAA [optional] uaa_endpoint str The endpoint of the UAA [optional] uaa_verify_cert bool Verify the certificate in UAA server [optional] http_authproxy_endpoint str The endpoint of the HTTP auth [optional] http_authproxy_tokenreview_endpoint str The token review endpoint [optional] http_authproxy_admin_groups str The group which has the harbor admin privileges [optional] http_authproxy_admin_usernames str The username which has the harbor admin privileges [optional] http_authproxy_verify_cert bool Verify the HTTP auth provider's certificate [optional] http_authproxy_skip_search bool Search user before onboard [optional] http_authproxy_server_certificate str The certificate of the HTTP auth provider [optional] oidc_name str The OIDC provider name [optional] oidc_endpoint str The endpoint of the OIDC provider [optional] oidc_client_id str The client ID of the OIDC provider [optional] oidc_client_secret str The OIDC provider secret [optional] oidc_groups_claim str The attribute claims the group name [optional] oidc_admin_group str The OIDC group which has the harbor admin privileges [optional] oidc_group_filter str The OIDC group filter which filters out the group name doesn't match the regular expression [optional] oidc_scope str The scope of the OIDC provider [optional] oidc_user_claim str The attribute claims the username [optional] oidc_verify_cert bool Verify the OIDC provider's certificate' [optional] oidc_auto_onboard bool Auto onboard the OIDC user [optional] oidc_extra_redirect_parms str Extra parameters to add when redirect request to OIDC provider [optional] robot_token_duration int The robot account token duration in days [optional] robot_name_prefix str The rebot account name prefix [optional] notification_enable bool Enable notification [optional] quota_per_project_enable bool Enable quota per project [optional] storage_per_project int The storage quota per project [optional] audit_log_forward_endpoint str The audit log forward endpoint [optional] skip_audit_log_database bool Skip audit log database [optional] session_timeout int The session timeout for harbor, in minutes. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurations/","objectID":"e629148ba1e7f17b6e6c75fd546837ce_0","order":0,"tags":null,"title":"Configurations"},{"category":"Python API Client","content":"ConfigurationsResponse Properties Name Type Description Notes auth_mode StringConfigItem The auth mode of current system, such as \u0026amp;quot;db_auth\u0026amp;quot;, \u0026amp;quot;ldap_auth\u0026amp;quot;, \u0026amp;quot;oidc_auth\u0026amp;quot; [optional] ldap_base_dn StringConfigItem The Base DN for LDAP binding. [optional] ldap_filter StringConfigItem The filter for LDAP search [optional] ldap_group_base_dn StringConfigItem The base DN to search LDAP group. [optional] ldap_group_admin_dn StringConfigItem Specify the ldap group which have the same privilege with Harbor admin [optional] ldap_group_attribute_name StringConfigItem The attribute which is used as identity of the LDAP group, default is cn.' [optional] ldap_group_search_filter StringConfigItem The filter to search the ldap group [optional] ldap_group_search_scope IntegerConfigItem The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' [optional] ldap_scope IntegerConfigItem The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' [optional] ldap_search_dn StringConfigItem The DN of the user to do the search. [optional] ldap_timeout IntegerConfigItem Timeout in seconds for connection to LDAP server [optional] ldap_uid StringConfigItem The attribute which is used as identity for the LDAP binding, such as \u0026amp;quot;CN\u0026amp;quot; or \u0026amp;quot;SAMAccountname\u0026amp;quot; [optional] ldap_url StringConfigItem The URL of LDAP server [optional] ldap_verify_cert BoolConfigItem Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. [optional] ldap_group_membership_attribute StringConfigItem The user attribute to identify the group membership [optional] project_creation_restriction StringConfigItem Indicate who can create projects, it could be ''adminonly'' or ''everyone''. [optional] read_only BoolConfigItem The flag to indicate whether Harbor is in readonly mode. [optional] self_registration BoolConfigItem Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. [optional] token_expiration IntegerConfigItem The expiration time of the token for internal Registry, in minutes. [optional] uaa_client_id StringConfigItem The client id of UAA [optional] uaa_client_secret StringConfigItem The client secret of the UAA [optional] uaa_endpoint StringConfigItem The endpoint of the UAA [optional] uaa_verify_cert BoolConfigItem Verify the certificate in UAA server [optional] http_authproxy_endpoint StringConfigItem The endpoint of the HTTP auth [optional] http_authproxy_tokenreview_endpoint StringConfigItem The token review endpoint [optional] http_authproxy_admin_groups StringConfigItem The group which has the harbor admin privileges [optional] http_authproxy_admin_usernames StringConfigItem The usernames which has the harbor admin privileges [optional] http_authproxy_verify_cert BoolConfigItem Verify the HTTP auth provider's certificate [optional] http_authproxy_skip_search BoolConfigItem Search user before onboard [optional] http_authproxy_server_certificate StringConfigItem The certificate of the HTTP auth provider [optional] oidc_name StringConfigItem The OIDC provider name [optional] oidc_endpoint StringConfigItem The endpoint of the OIDC provider [optional] oidc_client_id StringConfigItem The client ID of the OIDC provider [optional] oidc_groups_claim StringConfigItem The attribute claims the group name [optional] oidc_admin_group StringConfigItem The OIDC group which has the harbor admin privileges [optional] oidc_group_filter StringConfigItem The OIDC group filter which filters out the group doesn't match the regular expression [optional] oidc_scope StringConfigItem The scope of the OIDC provider [optional] oidc_user_claim StringConfigItem The attribute claims the username [optional] oidc_verify_cert BoolConfigItem Verify the OIDC provider's certificate' [optional] oidc_auto_onboard BoolConfigItem Auto onboard the OIDC user [optional] oidc_extra_redirect_parms StringConfigItem Extra parameters to add when redirect request to OIDC provider [optional] robot_token_duration IntegerConfigItem The robot account token duration in days [optional] robot_name_prefix StringConfigItem The rebot account name prefix [optional] notification_enable BoolConfigItem Enable notification [optional] quota_per_project_enable BoolConfigItem Enable quota per project [optional] storage_per_project IntegerConfigItem The storage quota per project [optional] audit_log_forward_endpoint StringConfigItem The endpoint of the audit log forwarder [optional] skip_audit_log_database BoolConfigItem Whether skip the audit log in database [optional] scan_all_policy ConfigurationsResponseScanAllPolicy [optional] session_timeout IntegerConfigItem The session timeout in minutes [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponse/","objectID":"f59cd09b541ac1d8f9031b56ceb03c5d_0","order":0,"tags":null,"title":"ConfigurationsResponse"},{"category":"Python API Client","content":"ConfigurationsResponseScanAllPolicy Properties Name Type Description Notes type str The type of scan all policy, currently the valid values are \u0026amp;quot;none\u0026amp;quot; and \u0026amp;quot;daily\u0026amp;quot; [optional] parameter ConfigurationsResponseScanAllPolicyParameter [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponsescanallpolicy/","objectID":"2bde847152a9df6a03e47c866f18969e_0","order":0,"tags":null,"title":"ConfigurationsResponseScanAllPolicy"},{"category":"Python API Client","content":"ConfigurationsResponseScanAllPolicyParameter Properties Name Type Description Notes daily_time int The offset in seconds of UTC 0 o'clock, only valid when the policy type is \u0026amp;quot;daily\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponsescanallpolicyparameter/","objectID":"56b4dcc91595754b5ceeea4c8d46725a_0","order":0,"tags":null,"title":"ConfigurationsResponseScanAllPolicyParameter"},{"category":"Python API Client","content":"CVEAllowlist Properties Name Type Description Notes id int ID of the allowlist [optional] project_id int ID of the project which the allowlist belongs to. For system level allowlist this attribute is zero. [optional] expires_at int 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. [optional] items list[CVEAllowlistItem] [optional] creation_time datetime The creation time of the allowlist. [optional] update_time datetime The update time of the allowlist. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/cveallowlist/","objectID":"b107d31150adb7e5ede106b7c7983ead_0","order":0,"tags":null,"title":"CVEAllowlist"},{"category":"Python API Client","content":"CVEAllowlistItem Properties Name Type Description Notes cve_id str The ID of the CVE, such as \u0026amp;quot;CVE-2019-10164\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/cveallowlistitem/","objectID":"8d03f1a32abab548b20ee2a5030d385e_0","order":0,"tags":null,"title":"CVEAllowlistItem"},{"category":"Python API Client","content":"Endpoint Properties Name Type Description Notes url str The URL of OIDC endpoint to be tested. [optional] verify_cert bool Whether the certificate should be verified [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/endpoint/","objectID":"44a7cd60bb11cbfa30c36668baf7e55c_0","order":0,"tags":null,"title":"Endpoint"},{"category":"Python API Client","content":"Error Properties Name Type Description Notes code str The error code [optional] message str The error message [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/error/","objectID":"b9a8524f2f433a01207349a55bb7f06f_0","order":0,"tags":null,"title":"Error"},{"category":"Python API Client","content":"Errors Properties Name Type Description Notes errors list[Error] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/errors/","objectID":"a23509704b236e883e8c7e3420763091_0","order":0,"tags":null,"title":"Errors"},{"category":"Python API Client","content":"EventType Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/eventtype/","objectID":"e7d9644903017b1be84e55c4fa7315e1_0","order":0,"tags":null,"title":"EventType"},{"category":"Python API Client","content":"ExecHistory Properties Name Type Description Notes id int the id of purge job. [optional] job_name str the job name of purge job. [optional] job_kind str the job kind of purge job. [optional] job_parameters str the job parameters of purge job. [optional] schedule ScheduleObj [optional] job_status str the status of purge job. [optional] deleted bool if purge job was deleted. [optional] creation_time datetime the creation time of purge job. [optional] update_time datetime the update time of purge job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/exechistory/","objectID":"0e067a403e96699e6aa3d3e72553a0c2_0","order":0,"tags":null,"title":"ExecHistory"},{"category":"Python API Client","content":"Execution Properties Name Type Description Notes id int The ID of execution [optional] vendor_type str The vendor type of execution [optional] vendor_id int The vendor id of execution [optional] status str The status of execution [optional] status_message str The status message of execution [optional] metrics Metrics [optional] trigger str The trigger of execution [optional] extra_attrs ExtraAttrs [optional] start_time str The start time of execution [optional] end_time str The end time of execution [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/execution/","objectID":"c866a567c85ee88e961cd762ff5db5e9_0","order":0,"tags":null,"title":"Execution"},{"category":"Python API Client","content":"ExtraAttrs Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/extraattrs/","objectID":"db959b9695d3630516899810baa11e2d_0","order":0,"tags":null,"title":"ExtraAttrs"},{"category":"Python API Client","content":"FilterStyle Properties Name Type Description Notes type str The filter type [optional] style str The filter style [optional] values list[str] The filter values [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/filterstyle/","objectID":"15acac66143f2b1921223f5bcd40e7c2_0","order":0,"tags":null,"title":"FilterStyle"},{"category":"Python API Client","content":"GCHistory Properties Name Type Description Notes id int the id of gc job. [optional] job_name str the job name of gc job. [optional] job_kind str the job kind of gc job. [optional] job_parameters str the job parameters of gc job. [optional] schedule ScheduleObj [optional] job_status str the status of gc job. [optional] deleted bool if gc job was deleted. [optional] creation_time datetime the creation time of gc job. [optional] update_time datetime the update time of gc job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/gchistory/","objectID":"67893bd28206f128afab06dc1101db1c_0","order":0,"tags":null,"title":"GCHistory"},{"category":"Python API Client","content":"GeneralInfo Properties Name Type Description Notes current_time datetime The current time of the server. [optional] with_notary bool If the Harbor instance is deployed with nested notary. [optional] with_chartmuseum bool If the Harbor instance is deployed with nested chartmuseum. [optional] registry_url str The url of registry against which the docker command should be issued. [optional] external_url str The external URL of Harbor, with protocol. [optional] auth_mode str The auth mode of current Harbor instance. [optional] project_creation_restriction str Indicate who can create projects, it could be 'adminonly' or 'everyone'. [optional] self_registration bool Indicate whether the Harbor instance enable user to register himself. [optional] has_ca_root bool Indicate whether there is a ca root cert file ready for download in the file system. [optional] harbor_version str The build version of Harbor. [optional] registry_storage_provider_name str The storage provider's name of Harbor registry [optional] read_only bool The flag to indicate whether Harbor is in readonly mode. [optional] notification_enable bool The flag to indicate whether notification mechanism is enabled on Harbor instance. [optional] authproxy_settings AuthproxySetting The setting of auth proxy this is only available when Harbor relies on authproxy for authentication. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/generalinfo/","objectID":"846a70b4dbad1e5d6ed9d9ad734e15f5_0","order":0,"tags":null,"title":"GeneralInfo"},{"category":"Python API Client","content":"Icon Properties Name Type Description Notes content_type str The content type of the icon [optional] content str The base64 encoded content of the icon [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/icon/","objectID":"4ce7b20ea1eb5f555e043740e9bccd42_0","order":0,"tags":null,"title":"Icon"},{"category":"Python API Client","content":"ImmutableRule Properties Name Type Description Notes id int [optional] priority int [optional] disabled bool [optional] action str [optional] template str [optional] params dict(str, object) [optional] tag_selectors list[ImmutableSelector] [optional] scope_selectors dict(str, list[ImmutableSelector]) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/immutablerule/","objectID":"d97a2d5069d90370e2c37d4bc48b3f4a_0","order":0,"tags":null,"title":"ImmutableRule"},{"category":"Python API Client","content":"ImmutableSelector Properties Name Type Description Notes kind str [optional] decoration str [optional] pattern str [optional] extras str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/immutableselector/","objectID":"46644088845e48c0e968014e8164e172_0","order":0,"tags":null,"title":"ImmutableSelector"},{"category":"Python API Client","content":"Instance Properties Name Type Description Notes id int Unique ID [optional] name str Instance name [optional] description str Description of instance [optional] vendor str Based on which driver, identified by ID [optional] endpoint str The service endpoint of this instance [optional] auth_mode str The authentication way supported [optional] auth_info dict(str, str) The auth credential data if exists [optional] status str The health status [optional] enabled bool Whether the instance is activated or not [optional] default bool Whether the instance is default or not [optional] insecure bool Whether the instance endpoint is insecure or not [optional] setup_timestamp int The timestamp of instance setting up [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/instance/","objectID":"b9c3a43d1775c91cc6aef74ae2480706_0","order":0,"tags":null,"title":"Instance"},{"category":"Python API Client","content":"IntegerConfigItem Properties Name Type Description Notes value int The integer value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/integerconfigitem/","objectID":"473fff943c7e46d6232f5a82a2694bf0_0","order":0,"tags":null,"title":"IntegerConfigItem"},{"category":"Python API Client","content":"InternalConfigurationsResponse Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/internalconfigurationsresponse/","objectID":"58bd925c8a11c63ef346227930f213bd_0","order":0,"tags":null,"title":"InternalConfigurationsResponse"},{"category":"Python API Client","content":"InternalConfigurationValue Properties Name Type Description Notes value object The value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/internalconfigurationvalue/","objectID":"a5b48abc7dabd5c8772746027c437a6a_0","order":0,"tags":null,"title":"InternalConfigurationValue"},{"category":"Python API Client","content":"IsDefault Properties Name Type Description Notes is_default bool A flag indicating whether a scanner registration is default. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/isdefault/","objectID":"6575faf5584533bc04a003dab39ab16b_0","order":0,"tags":null,"title":"IsDefault"},{"category":"Python API Client","content":"JobQueue Properties Name Type Description Notes job_type str The type of the job queue [optional] count int The count of jobs in the job queue [optional] latency int The latency the job queue (seconds) [optional] paused bool The paused status of the job queue [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/jobqueue/","objectID":"264b90d3dc0b44d455989035c65661ea_0","order":0,"tags":null,"title":"JobQueue"},{"category":"Python API Client","content":"Label Properties Name Type Description Notes id int The ID of the label [optional] name str The name the label [optional] description str The description the label [optional] color str The color the label [optional] scope str The scope the label [optional] project_id int The ID of project that the label belongs to [optional] creation_time datetime The creation time the label [optional] update_time datetime The update time of the label [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/label/","objectID":"ffc23091a7ebed23d64b9a668a6d4c3d_0","order":0,"tags":null,"title":"Label"},{"category":"Python API Client","content":"LdapConf Properties Name Type Description Notes ldap_url str The url of ldap service. [optional] ldap_search_dn str The search dn of ldap service. [optional] ldap_search_password str The search password of ldap service. [optional] ldap_base_dn str The base dn of ldap service. [optional] ldap_filter str The serach filter of ldap service. [optional] ldap_uid str The serach uid from ldap service attributes. [optional] ldap_scope int The serach scope of ldap service. [optional] ldap_connection_timeout int The connect timeout of ldap service(second). [optional] ldap_verify_cert bool Verify Ldap server certificate. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapconf/","objectID":"fe0e93d8abc4a21df686ae5ea11c8733_0","order":0,"tags":null,"title":"LdapConf"},{"category":"Python API Client","content":"LdapFailedImportUser Properties Name Type Description Notes uid str the uid can't add to system. [optional] error str fail reason. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapfailedimportuser/","objectID":"408924358069e6ec7158f7b89207e3dd_0","order":0,"tags":null,"title":"LdapFailedImportUser"},{"category":"Python API Client","content":"LdapImportUsers Properties Name Type Description Notes ldap_uid_list list[str] selected uid list [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapimportusers/","objectID":"99deac71325589f98237c22fb0d895dc_0","order":0,"tags":null,"title":"LdapImportUsers"},{"category":"Python API Client","content":"LdapPingResult Properties Name Type Description Notes success bool Test success [optional] message str The ping operation output message. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldappingresult/","objectID":"429c2d3ec160e5fbefac60c5dae0d5a8_0","order":0,"tags":null,"title":"LdapPingResult"},{"category":"Python API Client","content":"LdapUser Properties Name Type Description Notes username str ldap username. [optional] realname str The user realname from \u0026amp;quot;uid\u0026amp;quot; or \u0026amp;quot;cn\u0026amp;quot; attribute. [optional] email str The user email address from \u0026amp;quot;mail\u0026amp;quot; or \u0026amp;quot;email\u0026amp;quot; attribute. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapuser/","objectID":"e4ea541ca1d547ae61920a93f47f5ffc_0","order":0,"tags":null,"title":"LdapUser"},{"category":"Python API Client","content":"Metadata Properties Name Type Description Notes id str id [optional] name str name [optional] icon str icon [optional] maintainers list[str] maintainers [optional] version str version [optional] source str source [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/metadata/","objectID":"c538b81fe9bf3e0a8afcec885490d2c5_0","order":0,"tags":null,"title":"Metadata"},{"category":"Python API Client","content":"Metrics Properties Name Type Description Notes task_count int The count of task [optional] success_task_count int The count of success task [optional] error_task_count int The count of error task [optional] pending_task_count int The count of pending task [optional] running_task_count int The count of running task [optional] scheduled_task_count int The count of scheduled task [optional] stopped_task_count int The count of stopped task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/metrics/","objectID":"f5b3cd1b0417d0221f716501cb77fa6e_0","order":0,"tags":null,"title":"Metrics"},{"category":"Python API Client","content":"NativeReportSummary Properties Name Type Description Notes report_id str id of the native scan report [optional] scan_status str The status of the report generating process [optional] severity str The overall severity [optional] duration int The seconds spent for generating the report [optional] summary VulnerabilitySummary [optional] start_time datetime The start time of the scan process that generating report [optional] end_time datetime The end time of the scan process that generating report [optional] complete_percent int The complete percent of the scanning which value is between 0 and 100 [optional] scanner Scanner [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/nativereportsummary/","objectID":"8357dfbc1f5c3e81619f22f92e8c125e_0","order":0,"tags":null,"title":"NativeReportSummary"},{"category":"Python API Client","content":"NotifyType Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/notifytype/","objectID":"6e442da8dc01b195b3c52a95d6d22e47_0","order":0,"tags":null,"title":"NotifyType"},{"category":"User Guides","content":"How to Set up Azure Active Directory as OIDC Provider for Your Harbor Container Registry This guide will walk you through the setup of Harbor with Azure AD (Azure Active Directory) using OIDC (OpenID Connect). The other tutorial explains what you should do in your Container Registry instance if you want to use OIDC authentication in general. However, before doing anything in Container Registry, you need to complete the configuration on the provider side. Prerequisites You need a custom domain on Container Registry. 1 - In Azure Active Directory Azure Active Directory \u0026ndash;\u0026gt; App Registrations \u0026ndash;\u0026gt; New Registration Name it as you like (eg. 8gears container registry) Choose accounts in this organizational directory only (though your use case may vary) Redirect URI: Web \u0026lt;\u0026ndash; This is important. Set the value to: https://YOUR-CORE-HARBOR-DOMAIN/c/oidc/callback \u0026laquo;- This value is also on the bottom of the Configuration \u0026ndash;\u0026gt; Authentication tab in the Harbor dashboard. Make note of the Application client ID \u0026amp; the directory tenant ID Click Certificates \u0026amp; secrets \u0026ndash;\u0026gt; Client secrets \u0026ndash;\u0026gt; +New client secret. Set the expiration to whenever you want to rotate it. Copy this value. 2 - Harbor OIDC Configuration In the Harbor dashboard go to Configuration \u0026ndash;\u0026gt; Authentication. Auth Mode \u0026ndash;\u0026gt; OIDC OIDC Endpoint \u0026ndash;\u0026gt; https://login.microsoftonline.com/TENANT ID FROM ABOVE/v2.0 OIDC Client ID \u0026ndash;\u0026gt; CLIENT ID FROM ABOVE OIDC Client Secret \u0026ndash;\u0026gt; SECRET FROM ABOVE Group Claim Name \u0026ndash;\u0026gt; groups OIDC Scope \u0026ndash;\u0026gt; openid,email,profile,offline_access Save it. This will now enable a Groups tab in the Harbor dashboard. It\u0026rsquo;s going to be populated with the Azure AD Object ID of the groups found. I believe it\u0026rsquo;s populated with groups found by users who log in. Have your users go to the Harbor dashboard login screen and choose LOGIN VIA OIDC PROVIDER. Users can than choose their username in Harbor. The prefilled suggestion default to Firstname_Lastname. Once logged-in users have access to basically nothing until you add them to Projects. Add an Azure AD groups Object ID to a project and those users have the specified level of access to that Harbor project now. Group Name don\u0026rsquo;t work - you have to use Object ID. Once logged-in user can go to their User Profile and grab the CLI secret, which is what user want to use with their local docker/podman client to push/pull images from the projects they have access too.","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-guide/oidc-configuration-for-azure-ad/","objectID":"ef39518d9bd9117eefe70f7c220828ed_0","order":0,"tags":null,"title":"OIDC configuration for Azure AD"},{"category":"Python API Client","content":"OIDCCliSecretReq Properties Name Type Description Notes secret str The new secret [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/oidcclisecretreq/","objectID":"14a6feecbdd2342131b78b121eaa0498_0","order":0,"tags":null,"title":"OIDCCliSecretReq"},{"category":"Python API Client","content":"OIDCUserInfo Properties Name Type Description Notes id int the ID of the OIDC info record [optional] user_id int the ID of the user [optional] subiss str the concatenation of sub and issuer in the ID token [optional] secret str the secret of the OIDC user that can be used for CLI to push/pull artifacts [optional] creation_time datetime The creation time of the OIDC user info record. [optional] update_time datetime The update time of the OIDC user info record. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/oidcuserinfo/","objectID":"cef561e2103f8dfa566532b7c0b2eacf_0","order":0,"tags":null,"title":"OIDCUserInfo"},{"category":"Python API Client","content":"OverallHealthStatus Properties Name Type Description Notes status str The overall health status. It is \u0026amp;quot;healthy\u0026amp;quot; only when all the components' status are \u0026amp;quot;healthy\u0026amp;quot; [optional] components list[ComponentHealthStatus] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/overallhealthstatus/","objectID":"549cfafc5225d6ca55e44ca0267fa1a1_0","order":0,"tags":null,"title":"OverallHealthStatus"},{"category":"Python API Client","content":"PasswordReq Properties Name Type Description Notes old_password str The user's existing password. [optional] new_password str New password for marking as to be updated. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/passwordreq/","objectID":"8e70bfd090f23c078d0cc6485d28b6ab_0","order":0,"tags":null,"title":"PasswordReq"},{"category":"Python API Client","content":"Permission Properties Name Type Description Notes resource str The permission resoruce [optional] action str The permission action [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/permission/","objectID":"d912209133436457947e0c8611552c9c_0","order":0,"tags":null,"title":"Permission"},{"category":"Python API Client","content":"Platform Properties Name Type Description Notes architecture str The architecture that the artifact applys to [optional] os str The OS that the artifact applys to [optional] os_version str The version of the OS that the artifact applys to [optional] os_features list[str] The features of the OS that the artifact applys to [optional] variant str The variant of the CPU [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/platform/","objectID":"d0f13d9898065f54a45e494227cc9ac0_0","order":0,"tags":null,"title":"Platform"},{"category":"Python API Client","content":"PreheatPolicy Properties Name Type Description Notes id int The ID of preheat policy [optional] name str The Name of preheat policy [optional] description str The Description of preheat policy [optional] project_id int The ID of preheat policy project [optional] provider_id int The ID of preheat policy provider [optional] provider_name str The Name of preheat policy provider [optional] filters str The Filters of preheat policy [optional] trigger str The Trigger of preheat policy [optional] enabled bool Whether the preheat policy enabled [optional] creation_time datetime The Create Time of preheat policy [optional] update_time datetime The Update Time of preheat policy [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/preheatpolicy/","objectID":"0856561127ff1f8eab6df911aaa13404_0","order":0,"tags":null,"title":"PreheatPolicy"},{"category":"Python API Client","content":"Project Properties Name Type Description Notes project_id int Project ID [optional] owner_id int The owner ID of the project always means the creator of the project. [optional] name str The name of the project. [optional] registry_id int The ID of referenced registry when the project is a proxy cache project. [optional] creation_time datetime The creation time of the project. [optional] update_time datetime The update time of the project. [optional] deleted bool A deletion mark of the project. [optional] owner_name str The owner name of the project. [optional] togglable bool Correspond to the UI about whether the project's publicity is updatable (for UI) [optional] current_user_role_id int 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. [optional] current_user_role_ids list[int] The list of role ID of the current user who triggered the API (for UI) [optional] repo_count int The number of the repositories under this project. [optional] chart_count int The total number of charts under this project. [optional] metadata ProjectMetadata The metadata of the project. [optional] cve_allowlist CVEAllowlist The CVE allowlist of this project. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/project/","objectID":"84e6196cf1607acf904daa3f8aaac594_0","order":0,"tags":null,"title":"Project"},{"category":"Python API Client","content":"ProjectDeletable Properties Name Type Description Notes deletable bool Whether the project can be deleted. [optional] message str The detail message when the project can not be deleted. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectdeletable/","objectID":"889e727aac59d262dd8f751218d0a99b_0","order":0,"tags":null,"title":"ProjectDeletable"},{"category":"Python API Client","content":"ProjectMember Properties Name Type Description Notes role_id int The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer [optional] member_user UserEntity [optional] member_group UserGroup [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmember/","objectID":"1ee0a3379be492f1f4ac195d24b424bb_0","order":0,"tags":null,"title":"ProjectMember"},{"category":"Python API Client","content":"ProjectMemberEntity Properties Name Type Description Notes id int the project member id [optional] project_id int the project id [optional] entity_name str the name of the group member. [optional] role_name str the name of the role [optional] role_id int the role id [optional] entity_id int 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. [optional] entity_type str the entity's type, u for user entity, g for group entity. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmemberentity/","objectID":"2c5fccf84ca0ec748dee57e238a2cc17_0","order":0,"tags":null,"title":"ProjectMemberEntity"},{"category":"Python API Client","content":"ProjectMetadata Properties Name Type Description Notes public str The public status of the project. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] enable_content_trust str Whether content trust is enabled or not. If it is enabled, user can't pull unsigned images from this project. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] enable_content_trust_cosign str 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 \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] prevent_vul str Whether prevent the vulnerable images from running. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] severity str If the vulnerability is high than severity defined here, the images can't be pulled. The valid values are \u0026amp;quot;none\u0026amp;quot;, \u0026amp;quot;low\u0026amp;quot;, \u0026amp;quot;medium\u0026amp;quot;, \u0026amp;quot;high\u0026amp;quot;, \u0026amp;quot;critical\u0026amp;quot;. [optional] auto_scan str Whether scan images automatically when pushing. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] reuse_sys_cve_allowlist str Whether this project reuse the system level CVE allowlist as the allowlist of its own. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. If it is set to \u0026amp;quot;true\u0026amp;quot; the actual allowlist associate with this project, if any, will be ignored. [optional] retention_id str The ID of the tag retention policy for the project [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmetadata/","objectID":"afaaed877dc6166a289c6bb85f4bff80_0","order":0,"tags":null,"title":"ProjectMetadata"},{"category":"Python API Client","content":"ProjectReq Properties Name Type Description Notes project_name str The name of the project. [optional] public bool deprecated, reserved for project creation in replication [optional] metadata ProjectMetadata The metadata of the project. [optional] cve_allowlist CVEAllowlist The CVE allowlist of the project. [optional] storage_limit int The storage quota of the project. [optional] registry_id int The ID of referenced registry when creating the proxy cache project [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectreq/","objectID":"a5ebb6091ad35c44c244bc82d28cb1ab_0","order":0,"tags":null,"title":"ProjectReq"},{"category":"Python API Client","content":"ProjectScanner Properties Name Type Description Notes uuid str The identifier of the scanner registration","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectscanner/","objectID":"68524be383bca65a0ef83c6678204224_0","order":0,"tags":null,"title":"ProjectScanner"},{"category":"Python API Client","content":"ProjectSummary Properties Name Type Description Notes repo_count int The number of the repositories under this project. [optional] chart_count int The total number of charts under this project. [optional] project_admin_count int The total number of project admin members. [optional] maintainer_count int The total number of maintainer members. [optional] developer_count int The total number of developer members. [optional] guest_count int The total number of guest members. [optional] limited_guest_count int The total number of limited guest members. [optional] quota ProjectSummaryQuota [optional] registry Registry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectsummary/","objectID":"51543ba405b00e1fc1654515f1e32bc0_0","order":0,"tags":null,"title":"ProjectSummary"},{"category":"Python API Client","content":"ProjectSummaryQuota Properties Name Type Description Notes hard ResourceList The hard limits of the quota [optional] used ResourceList The used status of the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectsummaryquota/","objectID":"26056b5fb3e73f526518d029b03a6609_0","order":0,"tags":null,"title":"ProjectSummaryQuota"},{"category":"Python API Client","content":"ProviderUnderProject Properties Name Type Description Notes id int [optional] provider str [optional] enabled bool [optional] default bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/providerunderproject/","objectID":"0d7e004ac62e3ee86e55b21facc452c6_0","order":0,"tags":null,"title":"ProviderUnderProject"},{"category":"Python API Client","content":"Quota Properties Name Type Description Notes id int ID of the quota [optional] ref QuotaRefObject The reference object of the quota [optional] hard ResourceList The hard limits of the quota [optional] used ResourceList The used status of the quota [optional] creation_time datetime the creation time of the quota [optional] update_time datetime the update time of the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quota/","objectID":"146029f117e5344666b1e2803e1adf81_0","order":0,"tags":null,"title":"Quota"},{"category":"Python API Client","content":"QuotaRefObject Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quotarefobject/","objectID":"97465e43a2d1e7df88fd049d532c3540_0","order":0,"tags":null,"title":"QuotaRefObject"},{"category":"Python API Client","content":"QuotaUpdateReq Properties Name Type Description Notes hard ResourceList The new hard limits for the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quotaupdatereq/","objectID":"cbc241d81fee050820f3a8f9f648f5b8_0","order":0,"tags":null,"title":"QuotaUpdateReq"},{"category":"Python API Client","content":"Reference Properties Name Type Description Notes parent_id int The parent ID of the reference [optional] child_id int The child ID of the reference [optional] child_digest str The digest of the child artifact [optional] platform Platform [optional] annotations Annotations [optional] urls list[str] The download URLs [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/reference/","objectID":"5bef4ee67bfda74f407f9d9cb96fd658_0","order":0,"tags":null,"title":"Reference"},{"category":"Python API Client","content":"Registry Properties Name Type Description Notes id int The registry ID. [optional] url str The registry URL string. [optional] name str The registry name. [optional] credential RegistryCredential [optional] type str Type of the registry, e.g. 'harbor'. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional] description str Description of the registry. [optional] status str Health status of the registry. [optional] creation_time datetime The create time of the policy. [optional] update_time datetime The update time of the policy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registry/","objectID":"99ad2ffba0a3a2278ba0a8d1a0a4c291_0","order":0,"tags":null,"title":"Registry"},{"category":"Python API Client","content":"RegistryCredential Properties Name Type Description Notes type str Credential type, such as 'basic', 'oauth'. [optional] access_key str Access key, e.g. user name when credential type is 'basic'. [optional] access_secret str Access secret, e.g. password when credential type is 'basic'. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registrycredential/","objectID":"1604f9260852854473c61464146ec5fa_0","order":0,"tags":null,"title":"RegistryCredential"},{"category":"Python API Client","content":"RegistryEndpoint Properties Name Type Description Notes key str The endpoint key [optional] value str The endpoint value [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryendpoint/","objectID":"364a523e04eaf1080694edaa1b46d67b_0","order":0,"tags":null,"title":"RegistryEndpoint"},{"category":"Python API Client","content":"RegistryInfo Properties Name Type Description Notes type str The registry type [optional] description str The description [optional] supported_resource_filters list[FilterStyle] The filters that the registry supports [optional] supported_triggers list[str] The triggers that the registry supports [optional] supported_copy_by_chunk bool The registry whether support copy by chunk. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryinfo/","objectID":"b1eb542623090e8a605dd2de10cffeea_0","order":0,"tags":null,"title":"RegistryInfo"},{"category":"Python API Client","content":"RegistryPing Properties Name Type Description Notes id int The registry ID. [optional] type str Type of the registry, e.g. 'harbor'. [optional] url str The registry URL. [optional] credential_type str Credential type of the registry, e.g. 'basic'. [optional] access_key str The registry access key. [optional] access_secret str The registry access secret. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryping/","objectID":"012636962d7b954a87c33a563bf4f118_0","order":0,"tags":null,"title":"RegistryPing"},{"category":"Python API Client","content":"RegistryProviderCredentialPattern Properties Name Type Description Notes access_key_type str The access key type [optional] access_key_data str The access key data [optional] access_secret_type str The access secret type [optional] access_secret_data str The access secret data [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryprovidercredentialpattern/","objectID":"3be6ae5443127fc489b5fe1630984e58_0","order":0,"tags":null,"title":"RegistryProviderCredentialPattern"},{"category":"Python API Client","content":"RegistryProviderEndpointPattern Properties Name Type Description Notes endpoint_type str The endpoint type [optional] endpoints list[RegistryEndpoint] The endpoint list [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryproviderendpointpattern/","objectID":"24e62ea1c4dba84d298341f63c42cb3a_0","order":0,"tags":null,"title":"RegistryProviderEndpointPattern"},{"category":"Python API Client","content":"RegistryProviderInfo Properties Name Type Description Notes endpoint_pattern RegistryProviderEndpointPattern The endpoint pattern [optional] credential_pattern RegistryProviderCredentialPattern The credential pattern [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryproviderinfo/","objectID":"9a76a240bac408880b13d274f52acb91_0","order":0,"tags":null,"title":"RegistryProviderInfo"},{"category":"Python API Client","content":"RegistryUpdate Properties Name Type Description Notes name str The registry name. [optional] description str Description of the registry. [optional] url str The registry URL. [optional] credential_type str Credential type of the registry, e.g. 'basic'. [optional] access_key str The registry access key. [optional] access_secret str The registry access secret. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryupdate/","objectID":"f1d13f821849c520b43a9c999f2644ee_0","order":0,"tags":null,"title":"RegistryUpdate"},{"category":"Python API Client","content":"ReplicationExecution Properties Name Type Description Notes id int The ID of the execution [optional] policy_id int The ID if the policy that the execution belongs to [optional] status str The status of the execution [optional] trigger str The trigger mode [optional] start_time datetime The start time [optional] end_time datetime The end time [optional] status_text str The status text [optional] total int The total count of all executions [optional] failed int The count of failed executions [optional] succeed int The count of succeed executions [optional] in_progress int The count of in_progress executions [optional] stopped int The count of stopped executions [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationexecution/","objectID":"450165ee54d20aab4cfcf505d06907ff_0","order":0,"tags":null,"title":"ReplicationExecution"},{"category":"Python API Client","content":"ReplicationFilter Properties Name Type Description Notes type str The replication policy filter type. [optional] value object The value of replication policy filter. [optional] decoration str matches or excludes the result [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationfilter/","objectID":"66de82f0968a87db20741659be65f083_0","order":0,"tags":null,"title":"ReplicationFilter"},{"category":"Python API Client","content":"ReplicationPolicy Properties Name Type Description Notes id int The policy ID. [optional] name str The policy name. [optional] description str The description of the policy. [optional] src_registry Registry The source registry. [optional] dest_registry Registry The destination registry. [optional] dest_namespace str The destination namespace. [optional] dest_namespace_replace_count int 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. [optional] trigger ReplicationTrigger [optional] filters list[ReplicationFilter] The replication policy filter array. [optional] replicate_deletion bool Whether to replicate the deletion operation. [optional] deletion bool Deprecated, use \u0026amp;quot;replicate_deletion\u0026amp;quot; instead. Whether to replicate the deletion operation. [optional] override bool Whether to override the resources on the destination registry. [optional] enabled bool Whether the policy is enabled or not. [optional] creation_time datetime The create time of the policy. [optional] update_time datetime The update time of the policy. [optional] speed int speed limit for each task [optional] copy_by_chunk bool Whether to enable copy by chunk. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationpolicy/","objectID":"c68de375b940745c6353c4081909a815_0","order":0,"tags":null,"title":"ReplicationPolicy"},{"category":"Python API Client","content":"ReplicationTask Properties Name Type Description Notes id int The ID of the task [optional] execution_id int The ID of the execution that the task belongs to [optional] status str The status of the task [optional] job_id str The ID of the underlying job that the task related to [optional] operation str The operation of the task [optional] resource_type str The type of the resource that the task operates [optional] src_resource str The source resource that the task operates [optional] dst_resource str The destination resource that the task operates [optional] start_time datetime The start time of the task [optional] end_time datetime The end time of the task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtask/","objectID":"32dbf40ebaa9020ada4538b79bad66b6_0","order":0,"tags":null,"title":"ReplicationTask"},{"category":"Python API Client","content":"ReplicationTrigger Properties Name Type Description Notes type str The replication policy trigger type. The valid values are manual, event_based and scheduled. [optional] trigger_settings ReplicationTriggerSettings [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtrigger/","objectID":"30caa4a277395cd67ed1afcce35cb710_0","order":0,"tags":null,"title":"ReplicationTrigger"},{"category":"Python API Client","content":"ReplicationTriggerSettings Properties Name Type Description Notes cron str The cron string for scheduled trigger [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtriggersettings/","objectID":"77fcf4be060bbb25bb7b41a55ae96e00_0","order":0,"tags":null,"title":"ReplicationTriggerSettings"},{"category":"Python API Client","content":"Repository Properties Name Type Description Notes id int The ID of the repository [optional] project_id int The ID of the project that the repository belongs to [optional] name str The name of the repository [optional] description str The description of the repository [optional] artifact_count int The count of the artifacts inside the repository [optional] pull_count int The count that the artifact inside the repository pulled [optional] creation_time datetime The creation time of the repository [optional] update_time datetime The update time of the repository [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/repository/","objectID":"20d1e5277d30ff2c6a22ae34f43ce07b_0","order":0,"tags":null,"title":"Repository"},{"category":"Python API Client","content":"ResourceList Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/resourcelist/","objectID":"81a1bad107dc4b0b0b27509e7697da95_0","order":0,"tags":null,"title":"ResourceList"},{"category":"Python API Client","content":"RetentionExecution Properties Name Type Description Notes id int [optional] policy_id int [optional] start_time str [optional] end_time str [optional] status str [optional] trigger str [optional] dry_run bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionexecution/","objectID":"cfb981b02e61c5dfc9591053f93c0048_0","order":0,"tags":null,"title":"RetentionExecution"},{"category":"Python API Client","content":"RetentionExecutionTask Properties Name Type Description Notes id int [optional] execution_id int [optional] repository str [optional] job_id str [optional] status str [optional] status_code int [optional] status_revision int [optional] start_time str [optional] end_time str [optional] total int [optional] retained int [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionexecutiontask/","objectID":"7f67f49dc8bba3acd5a15405cf7c2e03_0","order":0,"tags":null,"title":"RetentionExecutionTask"},{"category":"Python API Client","content":"RetentionMetadata Properties Name Type Description Notes templates list[RetentionRuleMetadata] templates [optional] scope_selectors list[RetentionSelectorMetadata] supported scope selectors [optional] tag_selectors list[RetentionSelectorMetadata] supported tag selectors [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionmetadata/","objectID":"23bc13525bac61975557721bd9f0fb73_0","order":0,"tags":null,"title":"RetentionMetadata"},{"category":"Python API Client","content":"RetentionPolicy Properties Name Type Description Notes id int [optional] algorithm str [optional] rules list[RetentionRule] [optional] trigger RetentionRuleTrigger [optional] scope RetentionPolicyScope [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionpolicy/","objectID":"e041edc2a145708fc7a3834b6a7bf79a_0","order":0,"tags":null,"title":"RetentionPolicy"},{"category":"Python API Client","content":"RetentionPolicyScope Properties Name Type Description Notes level str [optional] ref int [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionpolicyscope/","objectID":"b37f48ff8e0160bf1178839335a6cef3_0","order":0,"tags":null,"title":"RetentionPolicyScope"},{"category":"Python API Client","content":"RetentionRule Properties Name Type Description Notes id int [optional] priority int [optional] disabled bool [optional] action str [optional] template str [optional] params dict(str, object) [optional] tag_selectors list[RetentionSelector] [optional] scope_selectors dict(str, list[RetentionSelector]) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionrule/","objectID":"ce63c73e63b31ad71b7cd70949e24eb8_0","order":0,"tags":null,"title":"RetentionRule"},{"category":"Python API Client","content":"RetentionRuleMetadata Properties Name Type Description Notes rule_template str rule id [optional] display_text str rule display text [optional] action str rule action [optional] params list[RetentionRuleParamMetadata] rule params [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionrulemetadata/","objectID":"25a170630c56ccfee76b9a871453f7ed_0","order":0,"tags":null,"title":"RetentionRuleMetadata"},{"category":"Python API Client","content":"RetentionRuleParamMetadata Properties Name Type Description Notes type str [optional] unit str [optional] required bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionruleparammetadata/","objectID":"02fc7323ebbaae414fed468455ad2c67_0","order":0,"tags":null,"title":"RetentionRuleParamMetadata"},{"category":"Python API Client","content":"RetentionRuleTrigger Properties Name Type Description Notes kind str [optional] settings object [optional] references object [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionruletrigger/","objectID":"8baca87988c1ee5615ad0a373574d2c2_0","order":0,"tags":null,"title":"RetentionRuleTrigger"},{"category":"Python API Client","content":"RetentionSelector Properties Name Type Description Notes kind str [optional] decoration str [optional] pattern str [optional] extras str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionselector/","objectID":"68e2d27370c93b2e207d01e29e05d6ea_0","order":0,"tags":null,"title":"RetentionSelector"},{"category":"Python API Client","content":"RetentionSelectorMetadata Properties Name Type Description Notes display_text str [optional] kind str [optional] decorations list[str] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionselectormetadata/","objectID":"a543c1e29d9810a5ca307a68730d10cf_0","order":0,"tags":null,"title":"RetentionSelectorMetadata"},{"category":"Python API Client","content":"Robot Properties Name Type Description Notes id int The ID of the robot [optional] name str The name of the tag [optional] description str The description of the robot [optional] secret str The secret of the robot [optional] level str The level of the robot, project or system [optional] duration int The duration of the robot in days [optional] editable bool The editable status of the robot [optional] disable bool The disable status of the robot [optional] expires_at int The expiration data of the robot [optional] permissions list[RobotPermission] [optional] creation_time datetime The creation time of the robot. [optional] update_time datetime The update time of the robot. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robot/","objectID":"85c5bf49a019113f760a27ee35a33c0b_0","order":0,"tags":null,"title":"Robot"},{"category":"Python API Client","content":"RobotCreate Properties Name Type Description Notes name str The name of the tag [optional] description str The description of the robot [optional] secret str The secret of the robot [optional] level str The level of the robot, project or system [optional] disable bool The disable status of the robot [optional] duration int The duration of the robot in days [optional] permissions list[RobotPermission] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreate/","objectID":"3d363599432883f912626e8b430a4c7d_0","order":0,"tags":null,"title":"RobotCreate"},{"category":"Python API Client","content":"RobotCreated Properties Name Type Description Notes id int The ID of the robot [optional] name str The name of the tag [optional] secret str The secret of the robot [optional] creation_time datetime The creation time of the robot. [optional] expires_at int The expiration data of the robot [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreated/","objectID":"15432a836f50b7a2e396c1a20456c856_0","order":0,"tags":null,"title":"RobotCreated"},{"category":"Python API Client","content":"RobotCreateV1 Properties Name Type Description Notes name str The name of robot account [optional] description str The description of robot account [optional] expires_at int The expiration time on or after which the JWT MUST NOT be accepted for processing. [optional] access list[Access] The permission of robot account [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreatev1/","objectID":"970fa7403d5132fd1dedbedf034ea39f_0","order":0,"tags":null,"title":"RobotCreateV1"},{"category":"Python API Client","content":"RobotPermission Properties Name Type Description Notes kind str The kind of the permission [optional] namespace str The namespace of the permission [optional] access list[Access] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotpermission/","objectID":"1ad15f1108417734fbc793b87edb5af4_0","order":0,"tags":null,"title":"RobotPermission"},{"category":"Python API Client","content":"RobotSec Properties Name Type Description Notes secret str The secret of the robot [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotsec/","objectID":"efda5d3563416ce335af066f403c47e4_0","order":0,"tags":null,"title":"RobotSec"},{"category":"Python API Client","content":"RoleRequest Properties Name Type Description Notes role_id int The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/rolerequest/","objectID":"1e101e18a163352a3f6c6bb72dfb8a78_0","order":0,"tags":null,"title":"RoleRequest"},{"category":"Python API Client","content":"ScanDataExportExecution Properties Name Type Description Notes id int The ID of the execution [optional] user_id int The ID if the user triggering the export job [optional] status str The status of the execution [optional] trigger str The trigger mode [optional] start_time datetime The start time [optional] end_time datetime The end time [optional] status_text str The status text [optional] user_name str The name of the user triggering the job [optional] file_present bool Indicates whether the export artifact is present in registry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportexecution/","objectID":"f79bec47d23f9d0bb835e5422b3f99fb_0","order":0,"tags":null,"title":"ScanDataExportExecution"},{"category":"Python API Client","content":"ScanDataExportExecutionList Properties Name Type Description Notes items list[ScanDataExportExecution] The list of scan data export executions [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportexecutionlist/","objectID":"ac2bdb0ac169556019aef07f82d4cba8_0","order":0,"tags":null,"title":"ScanDataExportExecutionList"},{"category":"Python API Client","content":"ScanDataExportJob Properties Name Type Description Notes id int The id of the scan data export job [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportjob/","objectID":"d10b322588d8b1b41011bea6955249d8_0","order":0,"tags":null,"title":"ScanDataExportJob"},{"category":"Python API Client","content":"ScanDataExportRequest Properties Name Type Description Notes job_name str Name of the scan data export job [optional] projects list[int] 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. [optional] labels list[int] A list of one or more labels for which to export the scan data, defaults to all if empty [optional] repositories str A list of repositories for which to export the scan data, defaults to all if empty [optional] cve_ids str CVE-IDs for which to export data. Multiple CVE-IDs can be specified by separating using ',' and enclosed between '{}'. Defaults to all if empty [optional] tags str A list of tags enclosed within '{}'. Defaults to all if empty [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportrequest/","objectID":"865e9dc1f5494a4d1259aa1df5317173_0","order":0,"tags":null,"title":"ScanDataExportRequest"},{"category":"Python API Client","content":"Scanner Properties Name Type Description Notes name str Name of the scanner [optional] vendor str Name of the scanner provider [optional] version str Version of the scanner adapter [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanner/","objectID":"56d707cf57a98ee31ae50dc05d2b76d6_0","order":0,"tags":null,"title":"Scanner"},{"category":"Python API Client","content":"ScannerAdapterMetadata Properties Name Type Description Notes scanner Scanner [optional] capabilities list[ScannerCapability] [optional] properties dict(str, str) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanneradaptermetadata/","objectID":"75fe187b0f06b2706f61f24a2c1b045d_0","order":0,"tags":null,"title":"ScannerAdapterMetadata"},{"category":"Python API Client","content":"ScannerCapability Properties Name Type Description Notes consumes_mime_types list[str] [optional] produces_mime_types list[str] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannercapability/","objectID":"6a07db3861755ea2236ba3bdd76480e7_0","order":0,"tags":null,"title":"ScannerCapability"},{"category":"Python API Client","content":"ScannerRegistration Properties Name Type Description Notes uuid str The unique identifier of this registration. [optional] name str The name of this registration. [optional] description str An optional description of this registration. [optional] url str A base URL of the scanner adapter [optional] disabled bool Indicate whether the registration is enabled or not [optional] [default to False] is_default bool Indicate if the registration is set as the system default one [optional] [default to False] auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] [default to \u0026lsquo;\u0026rsquo;] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional] skip_cert_verify bool Indicate if skip the certificate verification when sending HTTP requests [optional] [default to False] use_internal_addr bool Indicate whether use internal registry addr for the scanner to pull content or not [optional] [default to False] create_time datetime The creation time of this registration [optional] update_time datetime The update time of this registration [optional] adapter str Optional property to describe the name of the scanner registration [optional] vendor str Optional property to describe the vendor of the scanner registration [optional] version str Optional property to describe the version of the scanner registration [optional] health str Indicate the healthy of the registration [optional] [default to \u0026lsquo;\u0026rsquo;]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistration/","objectID":"322ce65785f9b859af33a18828f4b46d_0","order":0,"tags":null,"title":"ScannerRegistration"},{"category":"Python API Client","content":"ScannerRegistrationReq Properties Name Type Description Notes name str The name of this registration description str An optional description of this registration. [optional] url str A base URL of the scanner adapter. auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional] skip_cert_verify bool Indicate if skip the certificate verification when sending HTTP requests [optional] [default to False] use_internal_addr bool Indicate whether use internal registry addr for the scanner to pull content or not [optional] [default to False] disabled bool Indicate whether the registration is enabled or not [optional] [default to False]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistrationreq/","objectID":"0b2e47bcc131402d6d2b458205807b91_0","order":0,"tags":null,"title":"ScannerRegistrationReq"},{"category":"Python API Client","content":"ScannerRegistrationSettings Properties Name Type Description Notes name str The name of this registration url str A base URL of the scanner adapter. auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] [default to \u0026lsquo;\u0026rsquo;] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistrationsettings/","objectID":"b4c105c03793b8e310312e97eafa6363_0","order":0,"tags":null,"title":"ScannerRegistrationSettings"},{"category":"Python API Client","content":"ScanOverview Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanoverview/","objectID":"986dcd3783d67b0718945c1362ccf9ae_0","order":0,"tags":null,"title":"ScanOverview"},{"category":"Python API Client","content":"Schedule Properties Name Type Description Notes id int The id of the schedule. [optional] status str The status of the schedule. [optional] creation_time datetime the creation time of the schedule. [optional] update_time datetime the update time of the schedule. [optional] schedule ScheduleObj [optional] parameters dict(str, object) The parameters of schedule job [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/schedule/","objectID":"3112a641898b1ea1a950d4329b4a126b_0","order":0,"tags":null,"title":"Schedule"},{"category":"Python API Client","content":"ScheduleObj Properties Name Type Description Notes type str The schedule type. The valid values are 'Hourly', 'Daily', 'Weekly', 'Custom', 'Manual' and 'None'. 'Manual' means to trigger it right away and 'None' means to cancel the schedule. [optional] cron str A cron expression, a time-based job scheduler. [optional] next_scheduled_time datetime The next time to schedule to run the job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scheduleobj/","objectID":"8a3b9db730d997271979c7e63348f0c0_0","order":0,"tags":null,"title":"ScheduleObj"},{"category":"Python API Client","content":"SchedulerStatus Properties Name Type Description Notes paused bool if the scheduler is paused [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/schedulerstatus/","objectID":"22018972044839406790c9cbae1b485d_0","order":0,"tags":null,"title":"SchedulerStatus"},{"category":"Python API Client","content":"ScheduleTask Properties Name Type Description Notes id int the id of the Schedule task [optional] vendor_type str the vendor type of the current schedule task [optional] vendor_id int the vendor id of the current task [optional] cron str the cron of the current schedule task [optional] update_time datetime the update time of the schedule task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scheduletask/","objectID":"850a27d37434d74c59467c906f5418e3_0","order":0,"tags":null,"title":"ScheduleTask"},{"category":"Python API Client","content":"Search Properties Name Type Description Notes project list[Project] Search results of the projects that matched the filter keywords. [optional] repository list[SearchRepository] Search results of the repositories that matched the filter keywords. [optional] chart list[SearchResult] Search results of the charts that macthed the filter keywords. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/search/","objectID":"47f008eb36a135c36c23300f155b50e6_0","order":0,"tags":null,"title":"Search"},{"category":"Python API Client","content":"SearchRepository Properties Name Type Description Notes project_id int The ID of the project that the repository belongs to [optional] project_name str The name of the project that the repository belongs to [optional] project_public bool The flag to indicate the publicity of the project that the repository belongs to (1 is public, 0 is not) [optional] repository_name str The name of the repository [optional] pull_count int The count how many times the repository is pulled [optional] artifact_count int The count of artifacts in the repository [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/searchrepository/","objectID":"e0f5fb8af96a6c926e84f1a62f4a5adf_0","order":0,"tags":null,"title":"SearchRepository"},{"category":"Python API Client","content":"SearchResult Properties Name Type Description Notes name str The chart name with repo name [optional] score int The matched level [optional] chart ChartVersion [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/searchresult/","objectID":"87c84902c9aed5514c462b91f81bb223_0","order":0,"tags":null,"title":"SearchResult"},{"category":"Python API Client","content":"StartReplicationExecution Properties Name Type Description Notes policy_id int The ID of policy that the execution belongs to. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/startreplicationexecution/","objectID":"5f3d6e34b1e8d804bce8b28f55d3d1cd_0","order":0,"tags":null,"title":"StartReplicationExecution"},{"category":"Python API Client","content":"Statistic Properties Name Type Description Notes private_project_count int The count of the private projects [optional] private_repo_count int The count of the private repositories [optional] public_project_count int The count of the public projects [optional] public_repo_count int The count of the public repositories [optional] total_project_count int The count of the total projects, only be seen by the system admin [optional] total_repo_count int The count of the total repositories, only be seen by the system admin [optional] total_storage_consumption int The total storage consumption of blobs, only be seen by the system admin [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/statistic/","objectID":"8963a6d777d100dce05c7a37178e96df_0","order":0,"tags":null,"title":"Statistic"},{"category":"Python API Client","content":"Stats Properties Name Type Description Notes total int The total number of scan processes triggered by the scan all action [optional] completed int The number of the finished scan processes triggered by the scan all action [optional] metrics dict(str, int) The metrics data for the each status [optional] ongoing bool A flag indicating job status of scan all. [optional] trigger str The trigger of the scan all job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/stats/","objectID":"813cf6a1e13f8159ede74c29dfb68862_0","order":0,"tags":null,"title":"Stats"},{"category":"Python API Client","content":"Storage Properties Name Type Description Notes total int Total volume size. [optional] free int Free volume size. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/storage/","objectID":"410736401500b9ce9509236263a6e574_0","order":0,"tags":null,"title":"Storage"},{"category":"Python API Client","content":"StringConfigItem Properties Name Type Description Notes value str The string value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/stringconfigitem/","objectID":"3a6bda8b011efdc42a7fc5ab3f66f886_0","order":0,"tags":null,"title":"StringConfigItem"},{"category":"Python API Client","content":"SupportedWebhookEventTypes Properties Name Type Description Notes event_type list[EventType] [optional] notify_type list[NotifyType] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/supportedwebhookeventtypes/","objectID":"0cc140b9f16d35c122e6001d6ed5deb1_0","order":0,"tags":null,"title":"SupportedWebhookEventTypes"},{"category":"Python API Client","content":"SystemInfo Properties Name Type Description Notes storage list[Storage] The storage of system. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/systeminfo/","objectID":"3268b0b10f9aa94ff2225321e37d09ad_0","order":0,"tags":null,"title":"SystemInfo"},{"category":"Python API Client","content":"Tag Properties Name Type Description Notes id int The ID of the tag [optional] repository_id int The ID of the repository that the tag belongs to [optional] artifact_id int The ID of the artifact that the tag attached to [optional] name str The name of the tag [optional] push_time datetime The push time of the tag [optional] pull_time datetime The latest pull time of the tag [optional] immutable bool The immutable status of the tag [optional] signed bool The attribute indicates whether the tag is signed or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/tag/","objectID":"07d266778ace9e9df513fc5122a18bc3_0","order":0,"tags":null,"title":"Tag"},{"category":"Python API Client","content":"Task Properties Name Type Description Notes id int The ID of task [optional] execution_id int The ID of task execution [optional] status str The status of task [optional] status_message str The status message of task [optional] run_count int The count of task run [optional] extra_attrs ExtraAttrs [optional] creation_time str The creation time of task [optional] update_time str The update time of task [optional] start_time str The start time of task [optional] end_time str The end time of task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/task/","objectID":"45ae2146063e258f94f75708fca476bf_0","order":0,"tags":null,"title":"Task"},{"category":"Python API Client","content":"UserCreationReq Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional] password str [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usercreationreq/","objectID":"a00e9cf3031800a3a958b34b8d01b34e_0","order":0,"tags":null,"title":"UserCreationReq"},{"category":"Python API Client","content":"UserEntity Properties Name Type Description Notes user_id int The ID of the user. [optional] username str The name of the user. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userentity/","objectID":"6fd555579c445c4d331099eb508cdcb1_0","order":0,"tags":null,"title":"UserEntity"},{"category":"Python API Client","content":"UserGroup Properties Name Type Description Notes id int The ID of the user group [optional] group_name str The name of the user group [optional] group_type int The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group. [optional] ldap_group_dn str The DN of the LDAP group if group type is 1 (LDAP group). [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usergroup/","objectID":"db297eb59feb6e1bbe2f75409b02d658_0","order":0,"tags":null,"title":"UserGroup"},{"category":"Python API Client","content":"UserGroupSearchItem Properties Name Type Description Notes id int The ID of the user group [optional] group_name str The name of the user group [optional] group_type int The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usergroupsearchitem/","objectID":"c1bd816229ab4acb112f9d11d559b840_0","order":0,"tags":null,"title":"UserGroupSearchItem"},{"category":"Python API Client","content":"UserProfile Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userprofile/","objectID":"26f34f3100a3fff7e95635f786ac119f_0","order":0,"tags":null,"title":"UserProfile"},{"category":"Python API Client","content":"UserResp Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional] user_id int [optional] username str [optional] sysadmin_flag bool [optional] admin_role_in_auth bool indicate the admin privilege is grant by authenticator (LDAP), is always false unless it is the current login user [optional] oidc_user_meta OIDCUserInfo [optional] creation_time datetime The creation time of the user. [optional] update_time datetime The update time of the user. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userresp/","objectID":"bed3b344f9c3ac0742e89b80d51732d9_0","order":0,"tags":null,"title":"UserResp"},{"category":"Python API Client","content":"UserSearch Properties Name Type Description Notes user_id int The ID of the user. [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersearch/","objectID":"1d2a545d3862dc0c2d432004da05fad9_0","order":0,"tags":null,"title":"UserSearch"},{"category":"Python API Client","content":"UserSearchRespItem Properties Name Type Description Notes user_id int The ID of the user. [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersearchrespitem/","objectID":"3c9e9b2fa01d8580ba5399367826d9a7_0","order":0,"tags":null,"title":"UserSearchRespItem"},{"category":"Python API Client","content":"UserSysAdminFlag Properties Name Type Description Notes sysadmin_flag bool true-admin, false-not admin. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersysadminflag/","objectID":"0185deb015aa8504214aed592dad9eb5_0","order":0,"tags":null,"title":"UserSysAdminFlag"},{"category":"Python API Client","content":"VulnerabilitySummary Properties Name Type Description Notes total int The total number of the found vulnerabilities [optional] fixable int The number of the fixable vulnerabilities [optional] summary dict(str, int) Numbers of the vulnerabilities with different severity [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/vulnerabilitysummary/","objectID":"9aa8f7c5fc5810f12e657bb8abc844de_0","order":0,"tags":null,"title":"VulnerabilitySummary"},{"category":"Python API Client","content":"WebhookJob Properties Name Type Description Notes id int The webhook job ID. [optional] policy_id int The webhook policy ID. [optional] event_type str The webhook job event type. [optional] notify_type str The webhook job notify type. [optional] status str The webhook job status. [optional] job_detail str The webhook job notify detailed data. [optional] creation_time datetime The webhook job creation time. [optional] update_time datetime The webhook job update time. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhookjob/","objectID":"e1856d71aa702e698ee1dfee229d4330_0","order":0,"tags":null,"title":"WebhookJob"},{"category":"Python API Client","content":"WebhookLastTrigger Properties Name Type Description Notes policy_name str The webhook policy name. [optional] event_type str The webhook event type. [optional] enabled bool Whether or not the webhook policy enabled. [optional] creation_time datetime The creation time of webhook policy. [optional] last_trigger_time datetime The last trigger time of webhook policy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhooklasttrigger/","objectID":"3c1b9bf60215892ee50352162920c6de_0","order":0,"tags":null,"title":"WebhookLastTrigger"},{"category":"Python API Client","content":"WebhookPolicy Properties Name Type Description Notes id int The webhook policy ID. [optional] name str The name of webhook policy. [optional] description str The description of webhook policy. [optional] project_id int The project ID of webhook policy. [optional] targets list[WebhookTargetObject] [optional] event_types list[str] [optional] creator str The creator of the webhook policy. [optional] creation_time datetime The create time of the webhook policy. [optional] update_time datetime The update time of the webhook policy. [optional] enabled bool Whether the webhook policy is enabled or not. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhookpolicy/","objectID":"377c29698404ff5b59ca19d49633a281_0","order":0,"tags":null,"title":"WebhookPolicy"},{"category":"Python API Client","content":"WebhookTargetObject Properties Name Type Description Notes type str The webhook target notify type. [optional] address str The webhook target address. [optional] auth_header str The webhook auth header. [optional] skip_cert_verify bool Whether or not to skip cert verify. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhooktargetobject/","objectID":"8fcbfab75345b2472011d77fce12d64d_0","order":0,"tags":null,"title":"WebhookTargetObject"},{"category":"Python API Client","content":"Worker Properties Name Type Description Notes id str the id of the worker [optional] pool_id str the id of the worker pool [optional] job_name str the name of the running job in the worker [optional] job_id str the id of the running job in the worker [optional] start_at datetime The start time of the worker [optional] check_in str the checkin of the running job in the worker [optional] checkin_at datetime The checkin time of the worker [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/worker/","objectID":"4e0ab38608fe30ace53d7f71832d55bc_0","order":0,"tags":null,"title":"Worker"},{"category":"Python API Client","content":"WorkerPool Properties Name Type Description Notes pid int the process id of jobservice [optional] worker_pool_id str the id of the worker pool [optional] start_at datetime The start time of the work pool [optional] heartbeat_at datetime The heartbeat time of the work pool [optional] concurrency int The concurrency of the work pool [optional] host str The host of the work pool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/workerpool/","objectID":"f6ae153a88095f7b3b513d537ac9bf0b_0","order":0,"tags":null,"title":"WorkerPool"},{"category":"Administration Manual","content":"Manage Pre-Installed Scanners You can find pre-installed vulnerability scanners under Administration -\u0026gt; Interrogation Services -\u0026gt; Scanners. If you click on an arrow next to a scanner, you\u0026rsquo;ll see the most important details about it. If you select a scanner using the small circle next to its name, you can perform the following actions with it Set a Default Vulnerability Scanner Use the Set as Default button to set a new default scanner for your instance: Edit Existing Scanner Click on the Action button and then select Edit: That will open a dialogue window where you can change: the scanner\u0026rsquo;s name; its description; the endpoint URL; authorization method; certification verification; registry address option; as described here. Disable or Enable a Scanner When you disable a scanner, project admins won\u0026rsquo;t be able to add it to their projects or use it as a scanner if it has been already added before disabling. To allow using the scanner again, enable it. Delete a Scanner You can delete a system scanner using the Action button.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/manage-pre-installed-scanners/","objectID":"2542c73c29a893d7199f90a9a2466186_0","order":0,"tags":null,"title":"Manage Pre-Installed Scanners"},{"category":"Administration Manual","content":"Registration for System Admins: Create a New Instance All accounts with a Dedicated Service subscription can have multiple users. For the first time, the system administrator must complete the subscription purchase and configure the instance to enable other users to work with it later. Users of Individual accounts are considered system admins of their accounts. The registration is the same. To start working with Container Registry: Go to our pricing page; Select your subscription or start a free trial; Fill in the form and provide your credit card details; Check your emails: you must have received a confirmation that your account has been created; Inside the email, click on password to display your password; you will be re-directed to a single use secure URL generated by OneTimeSecret where you can see your password for the Container Registry account; INFO The password will be kept by OneTimeSecret for a while but try to finish the registration within a few hours. The same email will contain a subdomain that was automatically generated for your instance; click on it to go to your account; Use admin as your user name and the password kept in OneTimeSecret as your password.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/registration-for-system-admins/","objectID":"5a91f757a9ffd1569a35c13f79e90142_0","order":0,"tags":null,"title":"Registration for System Admins"},{"category":"Administration Manual","content":"UAA Authentication A user authentication and authorization server issues access tokens for your application to make it able to access another application: in this case, your Container Registry instance. You can configure a UAA server by yourself or select a provider that will set up for you a UAA instance. This instance will generate a token every time the user identity was confirmed – the user was authenticated – to enable user authorization that allows the user to perform certain actions in the system he was successfully logged in to. Most of the UAA providers work with either SAML 2.0, OAuth 2.0, or LDAP protocols. The setups may vary. Please refer to the official documentation of your selected provider. To configure the UAA authentication mode in Container registry, you will need: a UAA endpoint; a UAA client ID; a UAA client secret. Steps Go to the navigation pane on the left side of the GUI; Select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select UAA; Fill in the form; Tick the checkbox if your endpoint has a trusted certificate; Click Save.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/uaa-authentication/","objectID":"942907f9031700add02a828de7cde273_0","order":0,"tags":null,"title":"UAA Authentication"},{"category":"User Manual","content":"Push and Pull Images Pushing and pulling images is explained in detail in this getting started guide.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/push-and-pull-images/","objectID":"a309841863b58ed4653f01a171fed5f8_0","order":0,"tags":null,"title":"Push and Pull Images"},{"category":"User Manual","content":"Tag Retention As a project administrator, you can save storage capacity by defining rules to govern the number and retention period of artifacts stored in a repository. This allows you to keep only the necessary artifacts and discard those that are no longer required or have been superseded by a newer version. Managing your repository in this way can help ensure that only the most needed artifacts are kept, freeing up valuable storage space. WARNING The artifacts that are not covered by the retention rule will be deleted. However, the operation is conducted at the artifact level. Artifacts that have more than one tag will be retained even if not all their tags are covered by the retention policy. You can set tag retention rules for each repository in your project. With the following rules, you can identify which tags you would like to keep. It is important to note that you don\u0026rsquo;t actually define rules to explicitly remove tags; instead, any tags that are not eligible for retention are automatically discarded. Multiple retention rules are executed with an OR logic applied between each rule. Each retention rule consists of three filters that are applied sequentially. Retention Rule Definitions Repository: Allows you to select the repositories for further processing. You can identify repositories that either match a name or name fragment, or exclude that name or name fragment from matching. Wild cards definition such as *repo, repo*, or ** are permitted. Quantity to retain: adds the option to take the artifact push/pull count or number of days into consideration for your retention. Specifying a maximum number of tags, or by specifying a maximum period for which to retain tags. Tags to retain: Identify the tag on which to apply the rule. You can identify repositories that either match a name or name fragment, or exclude that name or name fragment from matching. Wild cards definition such as *repo, repo*, or ** are permitted. The checkbox is used to select whether untagged artifacts should be captured as part of the set of artifacts eligible for tag retention. For information about how the definition and usage of Patterns such as ** see https://github.com/bmatcuk/doublestar#patterns. Create a New Tag Retention Policy Inside a project, go to the Policy tab (1); Switch to TAG RETENTION (2); Click ADD RULE (3); A dialogue window will appear: Select Repos To specify repositories where the policy should look for the tags to be retained: type certain repositories in separating them by commas or use a double- or single-starred pattern; select between matching and excluding from the dropdown to include or exclude specified repositories; Select Tag Age or Number To specify how artifacts should be selected for retention, use one of the following options from the second dropdown: to refer to the number of artifacts stored in a repo: select retain the most recently pushed # artifacts and type in the number of artifacts to be retained in the COUNT field; select retain the most recently pulled # artifacts and type in the number of artifacts to be retained in the COUNT field; to refer to the artifacts \u0026ldquo;age\u0026rdquo;: select retain the artifacts pushed within the last # days and fill in the DAYS field; select retain the artifacts pulled within the last # days and fill in the DAYS field; select retain always will keep the artifacts and tags forever. Select Tags by Name To specify the tags to be retained: type in certain tags separated by commas or use a double- or single-starred pattern; select between matching and excluding to include or exclude selected tags; check untagged artifacts if you want to include artifacts that have no tag. Manage Tag Retention Rules You can edit, disable/enable, and delete a tag retention rule using the Action button next to each rule. Disabled rules will be marked with a red exclamation mark. Run Retention Rules Retention rules do nothing until they are run proactively. Indeed, it means that no tags or artifacts are deleted before you run a retention rule. You can do it either manually or create a schedule for it. Run the Retention Manually If you want the retention to take an effect immediately, you can use the RUN NOW (1) button. But, before doing this, we highly recommend using DRY RUN (2) which only simulates the retention policy execution and provides a log (4) describing once again which artifacts and tags are to be deleted or retained. Use ABORT (3) to stop an execution. Example of the log data: 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:83]: Run retention process. Repository: library/test Rule Algorithm: or Dry Run: true 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:98]: Load 2 candidates from repository library/test 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:201]: | Digest | Tag | Kind | Labels | PushedTime | PulledTime | CreatedTime | Retention | |-------------------------------------------------------------------------|----------|-------|--------|---------------------|---------------------|---------------------|-----------| | sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 | 4.0,test | image | | 2021/08/12 14:26:29 | 2021/08/11 14:32:52 | 2021/08/11 08:30:49 | RETAIN | | sha256:1649f969e17dff21275d1e227581fd492c77c9d856f989c2a1188a5798f6dfd2 | 2.0,1.0 | image | | 2021/08/04 12:47:31 | 2021/08/11 14:32:53 | 2021/07/29 12:02:18 | DEL | Schedule the Execution of the Retention Rule To make the retention execution happen automatically and on a regular basis, you can create a schedule for the policy to run. Go to the Schedule; Click EDIT; Select a schedule from the dropdown; If you select CRON, you need to create specify the frequency using the online CRON formatter (copy and paste the value from it); Alternatively, consult our short knowledge article by clicking on the i icon and create the schedule by yourself.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/tag-retention/","objectID":"98755519e4e51c05422526d0c350fc3e_0","order":0,"tags":null,"title":"Tag Retention"},{"category":"User Manual","content":"Table of Contents The current chapter provides general guidelines for users that work with images and helm charts. Throughout this manual, we will often refer to projects, a project administrator role, and permission rights level necessary to perform certain actions. This is only relevant for dedicated accounts since each organization with this type of account can have multiple users and organize repositories into projects. If you have an individual account, your permission level is always sufficient for any kind of an operation since you are a system and project administrator at the same time. When you read about something related to projects, please consider your account as a project. Read more about the differences between dedicated and individual accounts in this article. Why Use Container Registry as a Service What Is Harbor Container Registry User Interface: A Short Overview Working With Projects Repositories Managing Project Users Project Configuration Robot Accounts Webhooks Working With Artifacts Push and Pull Images Artifact Page Working With Tags Tag Policies Tag Retention Tag Immutability Working With Logs Dedicated vs Individual Account Double-Starred Patterns","date":"2021-08-13T00:00:00Z","description":"description_test","href":"https://container-registry.com/docs/user-manual/","objectID":"50e921a7f98d7d8805f5b0dd1d77c3ff_0","order":0,"tags":null,"title":"User Manual"},{"category":"User Manual","content":"Artifact Page When you click on a single artifact, you will be redirected to a view showing detailed information about this artifact. In this view, you can also perform a few additional actions on the selected artifact. Tags Overview Working with tags is described in detail in another tutorial since the features for doing this are distributed across the GUI. The current section explains general GUI features that are available in the single artifact view. The Tags overview table shows all tags assigned to an image. It contains the following columns: Checkboxes allow you to bulk-edit tags, for instance, add new tags or remove existing ones. Name shows the actual tag without the repository path. Pull Command allows you to copy into clipboard the command string that will pull the image with this particular tag. An example: docker pull your-subdomain.container-registry.com/project/repository[:TAG] Signed shows if the image was signed. Pull Time and Push Time show when the image was pulled or pushed for the last time. General Information The next section – Overview, can be expanded or collapsed – shows general information about: the CPU architecture the image was built for; the author nickname; a local path to the configuration file; when the image was created locally (for instance, downloaded from a GitHub repository to the local machine from which it was later pushed to the repository); for which operating system it was built. Additions Vulnerabilities If the image has been scanned and any vulnerabilities were detected, this section will display a detailed report about them. Each vulnerability has a CVE identifier. CVE means Common Vulnerabilities and Exposures. The CVE lists are maintained by the MITRE Corporation, a subsidiary of the US Department of Homeland Security. Each identifier has a year and a sequential number, for instance: CVE-2021-3449 In the Vulnerabilities table, you can click on the arrow next to the identifier to read the description of the vulnerability. The description is identical to that in the official CVE database. It helps you to learn about the origins of vulnerability and its possible consequences. Furthermore, you can click on the i icon twice to retrieve a list of the resources where you can get some additional information about this vulnerability. In the Severity column, you can see the severity level of the vulnerability. The levels are calculated using this methodology proposed by the National Institute of Standards and Technology of the US Department of Commerce. The Package column shows which package (of a programming language) causes this vulnerability. The Current version column shows which version of an operating system is affected by this vulnerability, whereas Fixed in version column shows which version (and higher) of the operating system is free from the problem. You can perform a new scan on the image using the Scan button to refresh the list of vulnerabilities if you have at least project administrator privileges. Build History If you are the person who worked with the image before pushing it to the repository, the history of your changes is retrievable locally using this command: docker image history [IMAGE] In Container Registry, you can see the same history in the Build History section. It may be useful if you want to locate the origin of the source code and track other changes.","date":"2021-08-12T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/artifact-page/","objectID":"6f0fdf501dd7338001db6350ff053a68_0","order":0,"tags":null,"title":"Artifact Page"},{"category":"User Manual","content":"Managing Project Users The user that created a project and the super admin of the instance can add users to projects to enable them to perform different actions. It is possible to pull images from a public repository without being a project member. But a membership grants users other rights depending on the role they are assigned. Project Member Permissions Below is the overview of all project permissions by five types of roles: Action Limited Guest Guest Developer Master Project Admin System Administrator See the project configurations ✓ ✓ ✓ ✓ ✓ ✓ Edit the project configurations ✓ ✓ See a list of project members ✓ ✓ ✓ ✓ ✓ Create/edit/delete project members ✓ ✓ See a list of project logs ✓ ✓ ✓ ✓ ✓ See a list of project replications ✓ ✓ ✓ See a list of project replication jobs ✓ ✓ See a list of project labels ✓ ✓ ✓ Create/edit/delete project labels ✓ ✓ ✓ See a list of repositories ✓ ✓ ✓ ✓ ✓ ✓ Create repositories ✓ ✓ ✓ ✓ Edit/delete repositories ✓ ✓ ✓ See a list of images ✓ ✓ ✓ ✓ ✓ ✓ Retag image ✓ ✓ ✓ ✓ ✓ Pull image ✓ ✓ ✓ ✓ ✓ ✓ Push image ✓ ✓ ✓ ✓ Scan/delete image ✓ ✓ ✓ Add scanners to Harbor ✓ Edit scanners in projects ✓ ✓ See a list of image vulnerabilities ✓ ✓ ✓ ✓ ✓ ✓ See image build history ✓ ✓ ✓ ✓ ✓ ✓ Add/Remove labels of image ✓ ✓ ✓ ✓ See a list of helm charts ✓ ✓ ✓ ✓ ✓ ✓ Download helm charts ✓ ✓ ✓ ✓ ✓ ✓ Upload helm charts ✓ ✓ ✓ ✓ Delete helm charts ✓ ✓ ✓ See a list of helm chart versions ✓ ✓ ✓ ✓ ✓ ✓ Download helm chart versions ✓ ✓ ✓ ✓ ✓ ✓ Upload helm chart versions ✓ ✓ ✓ ✓ Delete helm chart versions ✓ ✓ ✓ Add/Remove labels of helm chart version ✓ ✓ ✓ ✓ See a list of project robots ✓ ✓ ✓ Create/edit/delete project robots ✓ ✓ See configured CVE whitelist ✓ ✓ ✓ ✓ ✓ ✓ Create/edit/remove CVE whitelist ✓ ✓ Enable/disable webhooks ✓ ✓ ✓ ✓ Create/delete tag retention rules ✓ ✓ ✓ ✓ Enable/disable tag retention rules ✓ ✓ ✓ ✓ Create/delete tag immutability rules ✓ ✓ ✓ Enable/disable tag immutability rules ✓ ✓ ✓ See project quotas ✓ ✓ ✓ ✓ ✓ ✓ Edit project quotas ✓ The matrix applies to the users that are registered in the instance. Unregistered anonymous users can access public projects in the read-only mode and pull any images from such projects and for both types of projects. Adding Project Members By default, any new project has no users except the project admin that created it. Super admins can access projects that they are not members of. To enable your collaborators to work on the project, you need to add them. There are two methods for doing this. An important prerequisite is that they must be users of the same instance. If they are not, refer to this article to add users to the instance. Regardless of the method you want to use for adding project members: Go to the Projects section in the navigation pane; Open the project in detailed view; Go to the Members tab. Adding Users One by One If you want to add single users, use + User button. Start typing in the name and a dropdown with a few suggestions will appear. By default, every new user is granted the project admin role, thus, acquiring the same rights as the project creator has. Remember to change this, if you want to restrict the permissions level. Adding LDAP/AP User Groups Prerequisites This method is available for instances using LDAP/AD authentication. Read about configuring this method of authentication here. Another important Prerequisite is that you must enable the memberof feature on the LDAP/AD server. It is explained in the same guide mentioned above, as well as in this external technical note. Eventually, you need to create user groups on your LADP/AD server since, with this authentication method, the super admins cannot manage users inside the Container Registry interface. Steps Click + Group button; Select a user group: If you use the group option for the first time, and do not have any user groups in your Container Registry yet, select Add a group from LDAP to project member. Enter the LDAP Group DN; Optionally: give your group a catchy name. If you already used some LDAP/AD groups, select Add an existing user group to project members and start typing the name of the group. Assign a role to the new project group. The corresponding permissions will be granted to all users in this group. Adding OIDC User Groups Prerequisites This method is available for instances using OIDC as authentication method. Read about configuring this method of authentication here. User groups must be created in the OIDC provider workspace. Steps Click + Group button; Type in the correct name of the group as it exists in the OIDC provider; Assign a project role to this group. The corresponding permissions will be granted to all users in this group. Deleting Users To delete one or a few users, click on the tickbox next to the user entry, then go to Actions and select Remove. Changing Project Role To change the project role for one or a few users, check the tickboxes next to their names, click Actions, and select a new role.","date":"2021-08-02T12:11:51+02:00","description":"Managing project membership","href":"https://container-registry.com/docs/user-manual/projects/managing-project-users/","objectID":"1f847759880c31287b6366930de41d4c_0","order":0,"tags":null,"title":"Managing Project Users"},{"category":"Getting Started Guide","content":"New User Sign Up Container Registry is a cloud-based solution that you can use in your browser or CLI tool or through an API. Your Instance on Container Registry All accounts with a Dedicated Service subscription receive a subdomain on container-registry.com. Your organization can also request a custom domain. Every subdomain/domain represents one instance. For different instances, you need different login credentials. Registration Methods As a user, you can use one of these methods to register in your Container Registry instance: Your account admin can create a user for you and send you the credentials. If the self-registration is enabled for the instance, then go to the subdomain/custom domain, and click on Sing up for an account, and fill in the form. If the OIDC login is enabled for the instance, go to the subdomain/custom domain, click on Login via OIDC provider, and use one of your federated identity profiles. The last two methods must be configured by your Container Registry administrator. If you are the administrator, please refer to this tutorial in our administrator guide.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/new-user-sign-up/","objectID":"33eb530bb48210b190977f985db76538_0","order":0,"tags":null,"title":"New User Sign Up"},{"category":"User Manual","content":"What Is Harbor? Our service is built upon Harbor. Harbor is an open-source technology for storing and managing container images. It was developed by VMware, a leading provider of virtual machines, and then transferred to the Cloud Native Computing Foundation (CNCF), one of the biggest open-source initiatives. In its turn, the Harbor project evolved out of Docker\u0026rsquo;s source code. Its contributors attempted to enhance the latter and eliminate its security problems. A lot of developers all over the world worked on both projects. This may have led to a certain inconsistency in the code. At Container Registry, we have been making our solution more secure than its ancestors. Harbor is cloud-native. Moreover, it does not only store images but can scan their contents for security issues. Harbor also allows developers to sign the images that they push to the registry with their personal keys, thus, marking the images as trustworthy. For more information on Harbor, visit the official Harbor project website.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/what-is-harbor/","objectID":"687e3e2d35fc5f51212dcc45f7420084_0","order":0,"tags":null,"title":"What Is Harbor?"},{"category":"Getting Started Guide","content":"Working With OCI Helm Charts Harbor does not support ChartMuseum interfaces to store Helm Charts. Now only OCI is used to store Helm Charts. Interacting with Helm Charts stored in OCI registries is a bit different but has a few advantages over the classic Chart Museum. With OCI based Helm Charts you get the same command syntax as with interacting with container images runtimes. registry login .... The only difference is that you need to use the helm command instead of docker or Podman. Fewer commands needed for installing Charts. No repo add and repo update commands anymore. Publishing Helm Charts to OCI registries does not need the separate plugin cm-push plugin anymore. The performance for repositories with many Helm Charts is better. Logging Into to Your Registry To install, push or pull Helm Charts in and from your private registry, you need to log in to it first. TIP For quick local testing, you can use your username and password or in the case of OIDC the CLI secret, for production and CI/CD environments; we strongly recommended the use of robot account. Using Username and Password to log in into your registry: echo $PWD | helm registry login your-subdomain.container-registry.com -u USER_NAME --stdin Installing OCI based Helm Charts Installing Helm Charts stored in OCI registries is simplified compared to working with Chart Museum repositories. The overhead of adding and updating repositories repo add and repo update is not needed anymore. helm install oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3 As you can see, the workflow is straightforward. All the other installation command arguments stay the same, except that you now directly address the Chart location in the URI format with the oci:// prefix protocol. The option to pull the Helm Chart tarball from a specific repository is also available in case you peek into the Helm Chart templates before installing them. # Download the Helm Chart tarball. helm pull oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3 Publishing Helm Charts to OCI Registries Publishing Helm Charts to OCI registries is also simplified as not external dependencies need to be installed cm-push plugin. helm chart package . # . the current directory contains the Chart.yaml. helm push ./nginx-1.2.3.tgz oci://your-subdomain.container-registry.com/library Adapting or switching from ChartMuseum to OCI based Helm Charts does not come with much effort. The commands are similar and there are fewer steps needed to install charts Additional Recommendations for OCI Helm Chart Users Migration from ChartMuseum to OCI based Helm Charts can be done without much effort and even adds some advantages. We recommend using OCI based Helm Charts for new projects and migrating existing projects to OCI based Helm Charts. To ease the migration, there are a few tools available. goharbor/chartmuseum-migration-tools docker run -ti --rm 8gears.container-registry.com/library/chartmuseum2oci --url $HARBOR_URL --username $HARBOR_USER --password $HARBOR_PASSWORD In cases when you depend on third party Helm Chart that are ChartMuseum based, you can transparently proxy those Charts as OCI artifacts using the Helm Chart OCI Proxy. Helm Chart OCI Proxy","date":"2024-03-18T12:11:51+02:00","description":"This guide contains the essential knowledge to work with OCI based Helm Charts.","href":"https://container-registry.com/docs/getting-started-guide/working-with-helm-charts-and-oci-registries/","objectID":"588b0e7d05ad056dfc80e2d84a020f43_0","order":0,"tags":null,"title":"Working With Helm Charts and OCI Registries"},{"category":"Administration Manual","content":"Table of Contents The current chapter explains how to administer your Container Register system. An important prerequisite for using the features mentioned in is chapter is the system administrator role. System admins can see and access the Administration tab on the navigation pane on the left side, which is invisible for other users. The administration manual includes the following articles: Register at Container Registry: Admin Registration Configure User Authentication Database Authentication UAA Authentication LDAP/AD Authentication User Management System Robot Accounts Endpoints for Replication and Proxy Cache Configure Artifacts Replication Configure Replication Rules System-Wide Labels Project Quotas Vulnerability Scanner Manage Pre-Installed Scanners Add New Scanners Scanning Artifacts General Configurations Terminal Deletion of Images Other System Settings","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/","objectID":"3f9591e0a890413447ef93711c89353d_0","order":0,"tags":null,"title":"Administration Manual"},{"category":"Administration Manual","content":"Add New Scanners Although vulnerability scanning is a highly unified procedure, different scanners may capture different vulnerabilities. Some scanners are developed to act in a more severe way than others to meet specific compliance requirements. Nonetheless, adding more scanners may increase the general coverage and improve your cyber security. To add a new scanner: Expand Administration; Go to Interrogation Services; On the Scanners tab, click + New Scanner; Fill in the form: Give your scanner a name; Optionally, add a description; Enter the endpoint URL or IP address (if you are using an internal server); Choose your authorization method: For Basic one, enter your username and password which you received from the scanner provider; For Bearer, enter the secret token from your provider; For API key, enter the API key from your account on the scanner service provider. Choose if you want to activate certificate verification; If you entered an IP instead of an URL, select Use internal registry address to allow this. Test the new connection and save the scanner if it was successful.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/add-new-scanners/","objectID":"3846e09f899e1179c19d7e0548fec9ea_0","order":0,"tags":null,"title":"Add New Scanners"},{"category":"Administration Manual","content":"LDAP/AD Authentication Every company needs a directory where all user login data is kept. There are two popular technologies for configuring and managing such directories – Windows Active Directory (AD) and Lightweight Directory Access Protocol – that are Harbor-compatible. It means that you can use an LDAP/AD server to add new users to the Container Registry instance and manage existing accounts on the server. Indeed, you need to set up and configure such a server before you can activate this kind of user authentication in Container Registry. How you do it, depends on your provider. You can look for instructions on the official website of the OpenLDAP project or in the Windows server official documentation. Limitations of LDAP/AD Authentication If you select this authentication mode, then, as a system admin, you will only be able to see a list of users in your Container Registry admin console but you won\u0026rsquo;t be able to perform any actions with them in the GUI, neither create and delete users nor change and reset their passwords. That all must be done on the LDAP or AD server. For the users, the self-registration option is not available in this mode (and you cannot enable it as an admin). Advantages of LDAP/AD Authentication If you already have an LDAP/AD server, you can onboard Container Registry users quicker. You can use the same LDAP/AD server to add and manage users of more than one Container Registry instance. You can create user groups and assign multiple users to projects in one leap. Enable LDAP/AD User Authentication Information You Need for Configuring LDAP/AD Authentication All entries in an LDAP directory are organized into a structure resembling roots of a tree or a reverted tree. There is a root node – the highest one in the structure – where a few brunches with more nodes originate; other nodes have own brunches, etc. Each entry – a node – has a unique identifying path, called a distinguished name or DN. Every time a user submits his credentials, a search is performed inside this structure to match the provided user credentials with an entry and authenticate the user. That\u0026rsquo;s why you need to keep at hand the following information about your LDAP server to configure it in Container Registry. LDAP Search DN. This node coincides with the user who has access to the LDAP server which is usually an admin. This parameter should be specified as cn=admin, dc=your-subdomain.container-registry.com where the attribute cn stands for \u0026ldquo;common name\u0026rdquo; and dc stands for \u0026ldquo;domain component\u0026rdquo;. LDAP Search Password. Consequently, here you need to enter the password of the user you specified in the previous parameter. LDAP Base DN. Theoretically, you may use your LDAP server not only for managing Container Registry but also for other applications. In this case, the tree would have nodes/entries that are irrelevant to Container Registry users. Thus, you need to specify a node where the search for the relevant entries should start. This is your subdomain or custom domain in our service. This parameter needs to be specified as dc=your-subdomain.container-registry.com. LDAP Scope. This parameter specifies the depth of the search in relation to the starting point: the previous parameter. You have a choice between the following values: Base: to search the entire tree; the base DN will be ignored; Subtree: to search the nodes below the starting point; OneLevel: to search the nodes on the same level as the start node. LDAP Filter. With this, you can narrow the search down to users or user groups. This will facilitate the search but, more importantly, restricts access to your Container Registry. You can use more than one attribute in the filter, as well as wildcards. A detailed tutorial on writing LDAP filters can be found here. LDAP UID. Every entry in the LDAP has multiple attributes. The LDAP UID parameter specifies which of the attributes must be used as a key to match the user credentials (of the user who tries to log in to the system) with the entries in the tree. Typically, either the uid or the cn attribute are used. Steps in the GUI In the navigation pane on the left, select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select LDAP/AD; Fill in the form; Select if you want to use a server certificate or not by using a checkbox; TEST LDAP SERVER to ensure that you\u0026rsquo;ve entered correct parameters; If you see an affirmative message, hit Save. LDAP User Groups Optionally, you can create user groups to be able to assign users to projects in bulks in the Container Registry GUI. Since an LDAP directory is a tree-like structure, it\u0026rsquo;s naturally hierarchical. Groups are a way to put entities – in our case, users – together independently of that hierarchy. One user can be a member of more than one group. On the LDAP/AD server, you need to use the memberof attribute of the entries. If you are new to this technology, look into this tutorial that explains how to create groups on the LDAP server and add users into them. Once you created LDAP groups on the server, you have to configure group settings in the Container Registry GUI as well. You also cannot leave these settings empty if there are groups on your LDAP server. The parameters are similar to those in the general server configuration. LDAP Group Base DN. Like LDAP Search DN, it specifies a starting point in the tree structure of nodes/entries with user accounts and other records, with the only difference that this parameter may rather refer to a group or organizational unit name. For the latter, use the ou attribute. LDAP Group Filter. Like LDAP Filter, it limits the search to certain nodes. First of all, you need to specify that you want to search only within groups and not all other nodes. If you use OpenLDAP, the filter is objectclass=groupOfNames. If you use Active Directory, apply the objectclass=group filter. In addition to that,","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/ldap-ad-authentication/","objectID":"500c07706a2a9b987e967f1c74040751_0","order":0,"tags":null,"title":"LDAP/AD Authentication"},{"category":"Administration Manual","content":"you can use other LDAP attributes to make your search more precise. LDAP Group GUID. This parameter specifies which attribute of a node is reserved for the name of the group. Typically, this would be cn. LDAP Group Admin DN. In this field, you can enter the distinguished name of an LDAP/AD group the members of which will all be granted system admin access rights for your Container Registry instance. LDAP Group Membership. This is also an attribute of a node but this attribute applies to the nodes holding user accounts. Thus, it specifies which attribute should the search look at to identify of which group the user is a member of. The default node attribute that identifies group membership is memberof. LDAP Scope. Identical to the LDAP Scope mentioned before but applies to the group nodes.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/ldap-ad-authentication/","objectID":"500c07706a2a9b987e967f1c74040751_1","order":1,"tags":null,"title":"LDAP/AD Authentication"},{"category":"Administration Manual","content":"Configure User Authentication Configuring user authentication can be accessed in the navigation pane, then Administration -\u0026gt; Configuration -\u0026gt; Authentication tab. Once you created your account as a system admin, you can choose between four methods of user authentication that will also specify how you add and manage users in your instance. The difference between the four methods is how identity management, user authentication, and authorization are performed: locally, using an external server, or an external provider. Identity management keeps user account data such as their user names and IDs; User authentication procedure proves the user identity; User authorization enables authenticated users to perform certain actions. Considering these differences, you can configure one of the following authentication modes: database mode: the user accounts are created and managed using the Container Registry GUI; authentication happens by comparing their credentials against the data in this local database; UAA mode: you will need an external user identity, authentication, and authorization provider or server; it will keep the user data, perform user authentication, and communicate the result of such authentication back to the Container Registry instance; LDAP/AP mode: you will need an external LDAP/AD server where the new user accounts will be created and managed and that will perform user authentication; OIDC mode: similarly to UAA, user accounts will be created and managed by a Single Sign-On provider, and this provider will perform user authentication. When you sign up for the first time as a system admin, the database mode is activated by default. Before you start adding new users in this mode, you can switch to a different one. Restrictions on Switching Between User Authentication Modes As you may know, generally, you can always migrate your user accounts from an LDAP/Active directory server to a OpenID provider. The steps depend on the latter. Most OIDC providers, such as Google, Azure, etc, provide tools for migrating user accounts with functionalities for matching user records. Once you\u0026rsquo;ve done the migration, you can switch the user authentication mode in the Container Registry administration console. IMPORTANT Switching the authentication mode between the internal database (database mode) and LDAP/OIDC is only possible without users in the system. Before you can switch to a different authentication method, the system admin (admin) needs to delete all users manually in the UI or via API. It is also not possible to export or migrate user accounts from the Container Registry GUI.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/","objectID":"a2a9fba40fdd48ea01829409f8c44e2a_0","order":0,"tags":null,"title":"Configure User Authentication"},{"category":"User Manual","content":"Tag Immutability What Is Tag Immutability and Why You Need It Harbor, the technology behind Container Registry, cannot (yet) deal with the situation when more than one image has the same tag. When there is an image in the registry with a certain tag, and then another image with the same tag is pushed to it, the first image loses its tag. The second image, pushed later, retains the tag but only until the next image with the same tag is pushed. Thus, the very purpose of tags existence – helping to differentiate between images – becomes a bit meaningless since the images override each other. The reason behind this trouble is that, for now, Harbor cannot match tags and SHA256 hashes. Therefore, hashes remain the only reliable image reference. To rehabiliate the tags, Harbor allows you to specify tag immutability rules, although they must be set manually for each tag that can be a subject to repetition. The immutability won\u0026rsquo;t allow an image with the same tag to be pushed into the repository. To be more precise, the policy is about a pair of an artifact and its tag. INFO If you add a tag into an immutability policy, you won\u0026rsquo;t be able to perform the following actions with this artifact from anywhere in the GUI or you command line tool: delete the tagged artifact completely; re-tag the artifact that is assigned the tag involved in the immutability policy; alter the tagged artifact through a replication from another target registry or in any other way. You still can perform any operations with other tags assigned to the same artifact, even though the tags are attached to the same SHA256 hash/digest. Create a Tag Immutability Policy Inside a project, go to the Policy tab; Switch to TAG IMMUTABILITY (2); Click ADD RULE (3); To select repositories and tags, specify matching patterns as explained here; Manage Immutability Policies You can edit, disable/enable, and delete a tag immutability rule using the Action button next to each rule. Disabled rules will be marked with a red exclamation mark.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/tag-immutability/","objectID":"ba4c6a11b181ace05476eddcb34b692e_0","order":0,"tags":null,"title":"Tag Immutability"},{"category":"User Manual","content":"Working With Tags Image tags have a function similar to those of the branch refs in Git: pointing to a state of the artifact at a specific time. Originally, the purpose of image tags was to differentiate between multiple versions of the same image. But more often than not different tags may refer to the same image. The tags come in handy when you want to pull and run an image. SHA256 hashes – the native identifiers of the Docker images and their versions – are difficult to read and impossible to memorize. Tags replace them in a way and help to spot the image you need quickly and refer to it in a more human way. Contrary to the labels, tags are not only visible inside your Container Registry project but they remain \u0026ldquo;attached\u0026rdquo; to the image after it is pulling from the repository and as long as they are not removed using the Container registry GUI or a command line tool. Managing Tags Overview of the Image Tags You can check which tags are assigned to an image using one of the methods: Inside the repository, in the artifacts list, hover over the entry in the Tags column to make the following popup message appear: In the artifact view, you can see all tags in the Tags table: Adding New Tags / Tagging Images You can add tags to image versions inside the Container Registry GUI. Since you are not building the image at this moment, the old tag and the new tag will refer to the same image. It may make sense, though, if you want to tag the latest image which has a default \u0026ldquo;latest\u0026rdquo; tag to make it more catchy and easy to find. In the artifact view, select the tags you want to use for the new tag using checkboxes; Click + ADD TAG and type in the new tag. INFO If you try to tag an artifact with the tag that already exists in the same repository, the error message will appear and you will need to select another tag: Retagging Images Retagging images in the Container Registry GUI is different from adding tags since it copies the artifact into another repository and/or project. To retag an artifact: In the artifacts list inside the repository, select an artifact using the checkbox; Go to Actions; Click Copy; Specify the destination: Start typing the project name to retrieve a dropdown; Prerequisites In the source repository, you need at least guest access which is read access; in the target repository, you need at least developer access or above to have writer permissions. Removing Tags / Detagging Images INFO Removing tags in the Container Registry GUI is different from removing tags using docker rmi command in a command line tool. Even if you remove all tags, the image – the artifact – won\u0026rsquo;t be deleted. To remove one or more tags: In the artifact view, tick the checkboxes of the tags you want to remove; Click REMOVE TAG; Confirm that you want them removed.","date":"2021-08-12T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/working-with-tags/","objectID":"e1d8ab7ab9d1ae19e1952a2010c42675_0","order":0,"tags":null,"title":"Working With Tags"},{"category":"User Manual","content":"Project Configuration For each project, you can configure a wide range of properties and features. We already touched on some of them in the general description, repositories section, and the section about project members. In addition to that, for each project, you can manage the following: helm charts; labels; scanners; tag policies; robot accounts; webhooks; project type; deployment security; CVE allowlists. Labels and tags are explained in a separate chapter that deals with images in general. In this chapter, we will go through the rest. Prerequisites To change any of the project configurations, you need to have one of the roles: System administrator; Project administrator. Labels tab In addition to tags, you can create labels for images. Labels will only be visible for the users that can log in to the Container Registry GUI. Create a Label Inside a project, go to the Labels tab; Click +NEW LABEL; Enter the label name; Select a color or enter a color hash; Enter a description. Edit or Delete Labels To edit or delete a label: Tick the checkbox next to it; Click on either Edit or Delete. You can delete more than label at once if you select a few of them. Scanner Tab In this tab, you can select the vulnerability scanner you want to use for the images in the project. Only one scanner can activate at the same time for a certain project. At the instance level, only superadmins can add scanners, enable them, and set default scanners. When a project is created, it inherits the instance\u0026rsquo;s default vulnerability scanner. To select another one, use Select Scanner button under the Scanner tab. This will open the list of enabled scanners where you can pick up the one you need for your project: Configuration Tab Some of the important properties and features can be found in the Configuration tab. Type of Project You can change the type of project after it has been created from private to public or the other way around. Deployment Security This configuration allows you to make your deployments more secure by limiting which images can be deployed. This can be done using two features. Content Trust When this feature is enabled, you can only deploy (pull) images that were signed. After enabling this feature in the Container Registry GUI, you can still push unsigned images into your project. But since none can pull them, it makes sense to start pushing only signed images. Prevent Vulnerable Images From Running When you have active vulnerability scanners in your project, they will calculate a vulnerability score following the methodology created by the National Institute of Standards and Technology of the US Department of Commerce. Its common Common Vulnerability Scoring System Calculator (CVSS Version 3.1) and the list of the involved metrics can be accessed here. The specification document can be viewed here. Accordingly, your project scanner will mark certain images as having one of the vulnerability severity levels: None; Low; Medium; High; Critical. Both Trivy and Clair, default Container Registry scanners, use this scale. In the current setting, you can specify which of the levels is not acceptable. The images marked with this level and all severity levels that are higher, will be suppressed from deployment. Vulnerability Scanners Scanners can be added to the instance and its projects only by superadmins but project admins can specify if images should be automatically scanned on push. If this feature is not enabled but you have scanners in your project, you still can scan images manually. CVE Allowlists This is another setting that is applied to vulnerability scanners. Common Vulnerabilities and Exposures List is a project by the US Department of Homeland Security and Cybersecurity and Infrastructure Security Agency. The aim of it is to \u0026ldquo;to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.\u0026rdquo; Each vulnerability is associated with a string type record in the CVE database. These records have IDs. With our CVE allowlist feature, you can use these CVE IDs to make the scanner ignore certain vulnerabilities. There are multiple ways to add CVE IDs to your project. System Allowlist When you select this option, all CVE IDs that were configured on the instance level by your superadmin (as described here) will be inherited by the project. Project Allowlist Alternatively, you can create your own lists manually or adjust the system-level allowlist. Use ADD to add the IDs manually using commas or putting each ID on a new line. You can search for CVE IDs in this database. Adding using commas: Adding using line breaks: Result for both: Use COPY FROM SYSTEM to copy the instance-level CVE IDs and then use X to delete any of them. You can also add new ones using ADD as in the previous case to expand the copied allowlist. System vs Project Allowlist: Which Overrides Which? When you never created any project-wide lists, then the system-wide (instance-wide) allowlist will be applied to all of your projects, as well as to all other projects in the instance. You do not need to select the System allowlist option pro-actively, it is set by default upon creation of the project. Once you create any project-wide allowlists, the project-wide lists will override the system-wide ones. It means that if you copy any allowlists from system but then modify them, the new custom allowlist will be applied to this specific project. Thus, be careful with deleting items from the system-wide allowlists when re-using them as project-wide allowlists to avoid any security issues in your images. Also note, that removing CVE IDs from the system won\u0026rsquo;t automatically remove them from the project if you re-used these IDs in a per-project allowlist. Set Expiration Date By default, no expiration date will be set for your CVE allowlist. They will remain active forever. To set a particular expiration date for either system-wide or project-wide lists, use the calendar to select a date. Once the date is set, the Never expires checkbox will be unticked automatically.","date":"2021-08-03T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/","objectID":"e7f371c63d1f2e27600c8bd63f4c1c37_0","order":0,"tags":null,"title":"Project Configuration"},{"category":"Getting Started Guide","content":"Push and Pull Images Log In to Your Private Registry If you use a private registry, you need to use Docker login to push and pull images to and from Container Registry. For this, you can use your Container Registry username but you need to generate your CLI login for Docker first. Go to your user profile in the upper right corner of the cockpit: Copy the CLI secret: In your command line tool, log in to Docker: docker login your-subdomain.container-registry.com -u USER_NAME -p CLI Push Images Before Tagging: Projects and Repositories Container Registry Structure Inside your Container Registry instance, you can have two types of \u0026ldquo;folders\u0026rdquo; to sort your artifacts and control user access. Projects are bigger ones and contain repositories, the smaller folders. User access is managed on the project level. Default Project Upon your first registration, a sample public project called library already exists in your Container Registry instance. You can pull and push your images from or into it. Alternatively, you can create your own public or private project following the instructions from this tutorial. Fully Qualified Repository Name A fully qualified repository name includes a project and repository name and is used on the next step. You can pull or push your images from/into an existing repository inside your project or create a new repository while pushing an image to Container Registry. Tag the Image Tag the image you want to push; use the qualified name of your repository as repository and some tag as tag: docker tag SOURCE_IMAGE[:TAG] your-subdomain.container-registry.com/library/repository[:TAG] Alternatively: Build Image You can also build a new image with a tag: docker build -t SOURCE_IMAGE[:TAG] -t your-subdomain.container-registry.com/library/repository[:TAG] Push the Image Push the image using its tag to Container Registry: docker push your-subdomain.container-registry.com/library/repository[:TAG] In case of success, you will see the Docker image\u0026rsquo;s ID in your command line tool and in your project repository in Container Registry, under the Artifacts section together with the push timestamp like this: TIP To make pushing images easier for you, we prepared the sample tag and push commands that you can access through the GUI. You only need to change the source image tag and the final tag which you what to use in your Container Registry. Inside the project, click on the PUSH COMMAND as shown on the screenshot: Pull Images If you want to pull images from a private registry, login to it first as described above. Use the following sample command in your command line tool: docker pull your-subdomain.container-registry.com/library/repository:TAG Pulling by Tag or Hash You can pull images using their tags or SHA265 hashes (digests). The hashes are more reliable since tags do not catch all changes in image layers. Pull by Hash In the Container Registry GUI, open the project, then the registry. You will see the list of artifacts. Click on the copy icon in the Pull command column next to an artifact to get a pull command with the hash. If you already have the same image on your PC, they will be matched and the Image is up to date status will be shown in your command line tool. Example pull comand: docker pull your-subdomain.container-registry.com/library/repository@sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 Pull by Tag If you do not know the exact tag, go to your Container Registry account, open the project and the repository, and look for the image you need. The tag is displayed next to it, as well as information about when it was pushed. Annotations and labels can also provide you with a hint. Click on the image to get to the overview of its tags and click on the Pull command icon next to a tag to copy the following command into clipboard: docker pull your-subdomain.container-registry.com/library/repository:TAG","date":"2021-07-28T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/push-and-pull-images/","objectID":"451a6c963048508fd4c3189d59bd605d_0","order":0,"tags":null,"title":"Push and Pull Images"},{"category":"User Manual","content":"Container Registry User Interface: A Short Overview When you log in to your Container Registry account as a user, you will see the following console. INFO If you log in as an administrator, you will see an additional administration section. Refer to our Administration Guide for the GUI features overview. Main GUI Features The navigation pane provides you access to your projects and logs. Projects are folders for your images which can be assigned certain settings. Logs contain information about push and pull actions, created repositorues, and a few others. Inside each project, you can also access logs for only this particular project. More about it in the section about working with logs. Both logs and projects have a detailed view where you can search and filter your projects or logs (1) and set the page size to increase or limit the number of displyed items (2). Event Log stores information about local events that do not have directly to do with your registry. User profile and settings contain your user name (which can\u0026rsquo;t be changed after your initial registration), your email, your name, and some additional information. Besides, in your user profile, you can access and manage your CLI secret. Manage Your CLI Secret If you click on the three dots next to the CLI, you will see two additional options: Generate secret will generate a new CLI secret; Upload your own secret will open another dialogue window where you can type in your own secret. Additional GUI Features To search through all project names, repository names, and charts, use the search field on the top pane of the console. In the upper right corner, you can switch language and select from one of the following: English (default language) Chinese Japanese Spanish French Portugese Turkish German In the bottom left corner of the console, you can change the colour theme of the interface from light to dark. Next to it, you have a link that brings you to our Swagger-based API documentation.","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/container-registry-user-interface-a-short-overview/","objectID":"a8666d936bd011108595485e496b09ed_0","order":0,"tags":null,"title":"Container Registry User Interface: A Short Overview"},{"category":"Python API Client","content":"Harbor API Client These APIs provide services for manipulating Harbor project. This Python package is automatically generated by the Swagger Codegen project: API version: 2.0 Package version: 2.7.0 Build package: io.swagger.codegen.languages.PythonClientCodegen Requirements. Python 2.7 and 3.4+ Installation \u0026amp; Usage pip install If the python package is hosted on Github, you can install directly from Github pip install git+https://github.com/container-registry/harbor-api-client.git (you may need to run pip with root permission: sudo pip install git+https://github.com/container-registry/harbor-api-client.git) Then import the package: import harbor_client Setuptools Install via Setuptools. python setup.py install --user (or sudo python setup.py install to install the package for all users) Then import the package: import harbor_client Getting Started Please follow the installation procedure and then run the following: from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) uid_list = harbor_client.LdapImportUsers() # LdapImportUsers | The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Import selected available ldap users. api_instance.import_ldap_user(uid_list, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;import_ldap_user: %s\\n\u0026#34; % e) Documentation for API Endpoints All URIs are relative to http://localhost/api/v2.0 Class Method HTTP request Description LdapApi import_ldap_user POST /ldap/users/import Import selected available ldap users. LdapApi ping_ldap POST /ldap/ping Ping available ldap service. LdapApi search_ldap_group GET /ldap/groups/search Search available ldap groups. LdapApi search_ldap_user GET /ldap/users/search Search available ldap users. RetentionApi create_retention POST /retentions Create Retention Policy RetentionApi delete_retention DELETE /retentions/{id} Delete Retention Policy RetentionApi get_rentenition_metadata GET /retentions/metadatas Get Retention Metadatas RetentionApi get_retention GET /retentions/{id} Get Retention Policy RetentionApi get_retention_task_log GET /retentions/{id}/executions/{eid}/tasks/{tid} Get Retention job task log RetentionApi list_retention_executions GET /retentions/{id}/executions Get Retention executions RetentionApi list_retention_tasks GET /retentions/{id}/executions/{eid}/tasks Get Retention tasks RetentionApi operate_retention_execution PATCH /retentions/{id}/executions/{eid} Stop a Retention execution RetentionApi trigger_retention_execution POST /retentions/{id}/executions Trigger a Retention Execution RetentionApi update_retention PUT /retentions/{id} Update Retention Policy SystemCVEAllowlistApi get_system_cve_allowlist GET /system/CVEAllowlist Get the system level allowlist of CVE. SystemCVEAllowlistApi put_system_cve_allowlist PUT /system/CVEAllowlist Update the system level allowlist of CVE. ArtifactApi add_label POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels Add label to artifact ArtifactApi copy_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts Copy artifact ArtifactApi create_tag POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags Create tag ArtifactApi delete_artifact DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Delete the specific artifact ArtifactApi delete_tag DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name} Delete tag ArtifactApi get_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition} Get the addition of the specific artifact ArtifactApi get_artifact GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Get the specific artifact ArtifactApi get_vulnerabilities_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities Get the vulnerabilities addition of the specific artifact ArtifactApi list_accessories GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/accessories List accessories ArtifactApi list_artifacts GET /projects/{project_name}/repositories/{repository_name}/artifacts List artifacts ArtifactApi list_tags GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags List tags ArtifactApi remove_label DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels/{label_id} Remove label from artifact AuditlogApi list_audit_logs GET /audit-logs Get recent logs of the projects which the user is a member of ConfigureApi get_configurations GET /configurations Get system configurations. ConfigureApi get_internalconfig GET /internalconfig Get internal configurations. ConfigureApi update_configurations PUT /configurations Modify system configurations. GcApi create_gc_schedule POST /system/gc/schedule Create a gc schedule. GcApi get_gc GET /system/gc/{gc_id} Get gc status. GcApi get_gc_history GET /system/gc Get gc results. GcApi get_gc_log GET /system/gc/{gc_id}/log Get gc job log. GcApi get_gc_schedule GET /system/gc/schedule Get gc's schedule. GcApi stop_gc PUT /system/gc/{gc_id} Stop the specific GC execution GcApi update_gc_schedule PUT /system/gc/schedule Update gc's schedule. HealthApi get_health GET /health Check the status of Harbor components IconApi get_icon GET /icons/{digest} Get artifact icon ImmutableApi create_immu_rule POST /projects/{project_name_or_id}/immutabletagrules Add an immutable tag rule to current project ImmutableApi delete_immu_rule DELETE /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Delete the immutable tag rule. ImmutableApi list_immu_rules GET /projects/{project_name_or_id}/immutabletagrules List all immutable tag rules of current project ImmutableApi update_immu_rule PUT /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Update the immutable tag rule or enable or disable the rule JobserviceApi action_pending_jobs PUT /jobservice/queues/{job_type} stop and clean, pause, resume pending jobs in the queue JobserviceApi get_worker_pools GET /jobservice/pools Get worker pools JobserviceApi get_workers GET /jobservice/pools/{pool_id}/workers Get workers JobserviceApi list_job_queues GET /jobservice/queues list job queues JobserviceApi stop_running_job PUT /jobservice/jobs/{job_id} Stop running job LabelApi create_label POST /labels Post creates a label LabelApi delete_label DELETE /labels/{label_id} Delete the label specified by ID. LabelApi get_label_by_id GET /labels/{label_id} Get the label specified by ID. LabelApi list_labels GET /labels List labels according to the query strings. LabelApi update_label PUT /labels/{label_id} Update the label properties. MemberApi create_project_member POST /projects/{project_name_or_id}/members Create project member MemberApi delete_project_member DELETE /projects/{project_name_or_id}/members/{mid} Delete project member MemberApi get_project_member GET /projects/{project_name_or_id}/members/{mid} Get the project member information MemberApi list_project_members GET /projects/{project_name_or_id}/members Get all project member information MemberApi update_project_member PUT /projects/{project_name_or_id}/members/{mid} Update project member OidcApi ping_oidc POST /system/oidc/ping Test the OIDC endpoint. PingApi get_ping GET /ping Ping Harbor to check if it's alive. PreheatApi create_instance POST /p2p/preheat/instances Create p2p provider instances PreheatApi create_policy POST /projects/{project_name}/preheat/policies Create a preheat policy under a project PreheatApi delete_instance DELETE /p2p/preheat/instances/{preheat_instance_name} Delete the specified P2P provider instance PreheatApi delete_policy DELETE /projects/{project_name}/preheat/policies/{preheat_policy_name} Delete a preheat policy PreheatApi get_execution GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Get a execution detail by id PreheatApi get_instance GET /p2p/preheat/instances/{preheat_instance_name} Get a P2P provider instance PreheatApi get_policy GET /projects/{project_name}/preheat/policies/{preheat_policy_name} Get a preheat policy PreheatApi get_preheat_log GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs Get the log text stream of the specified task for the given execution PreheatApi list_executions GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions List executions for the given policy PreheatApi list_instances GET /p2p/preheat/instances List P2P provider instances PreheatApi list_policies GET /projects/{project_name}/preheat/policies List preheat policies PreheatApi list_providers GET /p2p/preheat/providers List P2P providers PreheatApi list_providers_under_project GET /projects/{project_name}/preheat/providers Get all providers at project level PreheatApi list_tasks GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks List all the related tasks for the given execution PreheatApi manual_preheat POST /projects/{project_name}/preheat/policies/{preheat_policy_name} Manual preheat PreheatApi ping_instances POST /p2p/preheat/instances/ping Ping status of a instance. PreheatApi stop_execution PATCH /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Stop a execution PreheatApi update_instance PUT /p2p/preheat/instances/{preheat_instance_name} Update the specified P2P provider instance PreheatApi update_policy PUT /projects/{project_name}/preheat/policies/{preheat_policy_name} Update preheat policy ProjectApi create_project POST /projects Create a new project. ProjectApi delete_project DELETE /projects/{project_name_or_id} Delete project by projectID ProjectApi get_logs GET /projects/{project_name}/logs Get recent logs of the projects ProjectApi get_project GET /projects/{project_name_or_id} Return specific project detail information ProjectApi get_project_deletable GET /projects/{project_name_or_id}/_deletable Get the deletable status of the project ProjectApi get_project_summary GET /projects/{project_name_or_id}/summary Get summary of the project. ProjectApi get_scanner_of_project GET /projects/{project_name_or_id}/scanner Get project level scanner ProjectApi head_project HEAD /projects Check if the project name","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_0","order":0,"tags":null,"title":"Python API Client"},{"category":"Python API Client","content":"user provided already exists. ProjectApi list_projects GET /projects List projects ProjectApi list_scanner_candidates_of_project GET /projects/{project_name_or_id}/scanner/candidates Get scanner registration candidates for configurating project level scanner ProjectApi set_scanner_of_project PUT /projects/{project_name_or_id}/scanner Configure scanner for the specified project ProjectApi update_project PUT /projects/{project_name_or_id} Update properties for a selected project. ProjectMetadataApi add_project_metadatas POST /projects/{project_name_or_id}/metadatas/ Add metadata for the specific project ProjectMetadataApi delete_project_metadata DELETE /projects/{project_name_or_id}/metadatas/{meta_name} Delete the specific metadata for the specific project ProjectMetadataApi get_project_metadata GET /projects/{project_name_or_id}/metadatas/{meta_name} Get the specific metadata of the specific project ProjectMetadataApi list_project_metadatas GET /projects/{project_name_or_id}/metadatas/ Get the metadata of the specific project ProjectMetadataApi update_project_metadata PUT /projects/{project_name_or_id}/metadatas/{meta_name} Update the specific metadata for the specific project PurgeApi create_purge_schedule POST /system/purgeaudit/schedule Create a purge job schedule. PurgeApi get_purge_history GET /system/purgeaudit Get purge job results. PurgeApi get_purge_job GET /system/purgeaudit/{purge_id} Get purge job status. PurgeApi get_purge_job_log GET /system/purgeaudit/{purge_id}/log Get purge job log. PurgeApi get_purge_schedule GET /system/purgeaudit/schedule Get purge's schedule. PurgeApi stop_purge PUT /system/purgeaudit/{purge_id} Stop the specific purge audit log execution PurgeApi update_purge_schedule PUT /system/purgeaudit/schedule Update purge job's schedule. QuotaApi get_quota GET /quotas/{id} Get the specified quota QuotaApi list_quotas GET /quotas List quotas QuotaApi update_quota PUT /quotas/{id} Update the specified quota RegistryApi create_registry POST /registries Create a registry RegistryApi delete_registry DELETE /registries/{id} Delete the specific registry RegistryApi get_registry GET /registries/{id} Get the specific registry RegistryApi get_registry_info GET /registries/{id}/info Get the registry info RegistryApi list_registries GET /registries List the registries RegistryApi list_registry_provider_infos GET /replication/adapterinfos List all registered registry provider information RegistryApi list_registry_provider_types GET /replication/adapters List registry adapters RegistryApi ping_registry POST /registries/ping Check status of a registry RegistryApi update_registry PUT /registries/{id} Update the registry ReplicationApi create_replication_policy POST /replication/policies Create a replication policy ReplicationApi delete_replication_policy DELETE /replication/policies/{id} Delete the specific replication policy ReplicationApi get_replication_execution GET /replication/executions/{id} Get the specific replication execution ReplicationApi get_replication_log GET /replication/executions/{id}/tasks/{task_id}/log Get the log of the specific replication task ReplicationApi get_replication_policy GET /replication/policies/{id} Get the specific replication policy ReplicationApi list_replication_executions GET /replication/executions List replication executions ReplicationApi list_replication_policies GET /replication/policies List replication policies ReplicationApi list_replication_tasks GET /replication/executions/{id}/tasks List replication tasks for a specific execution ReplicationApi start_replication POST /replication/executions Start one replication execution ReplicationApi stop_replication PUT /replication/executions/{id} Stop the specific replication execution ReplicationApi update_replication_policy PUT /replication/policies/{id} Update the replication policy RepositoryApi delete_repository DELETE /projects/{project_name}/repositories/{repository_name} Delete repository RepositoryApi get_repository GET /projects/{project_name}/repositories/{repository_name} Get repository RepositoryApi list_all_repositories GET /repositories List all authorized repositories RepositoryApi list_repositories GET /projects/{project_name}/repositories List repositories RepositoryApi update_repository PUT /projects/{project_name}/repositories/{repository_name} Update repository RobotApi create_robot POST /robots Create a robot account RobotApi delete_robot DELETE /robots/{robot_id} Delete a robot account RobotApi get_robot_by_id GET /robots/{robot_id} Get a robot account RobotApi list_robot GET /robots Get robot account RobotApi refresh_sec PATCH /robots/{robot_id} Refresh the robot secret RobotApi update_robot PUT /robots/{robot_id} Update a robot account Robotv1Api create_robot_v1 POST /projects/{project_name_or_id}/robots Create a robot account Robotv1Api delete_robot_v1 DELETE /projects/{project_name_or_id}/robots/{robot_id} Delete a robot account Robotv1Api get_robot_by_idv1 GET /projects/{project_name_or_id}/robots/{robot_id} Get a robot account Robotv1Api list_robot_v1 GET /projects/{project_name_or_id}/robots Get all robot accounts of specified project Robotv1Api update_robot_v1 PUT /projects/{project_name_or_id}/robots/{robot_id} Update status of robot account. ScanApi get_report_log GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log Get the log of the scan report ScanApi scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan Scan the artifact ScanApi stop_scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/stop Cancelling a scan job for a particular artifact ScanAllApi create_scan_all_schedule POST /system/scanAll/schedule Create a schedule or a manual trigger for the scan all job. ScanAllApi get_latest_scan_all_metrics GET /scans/all/metrics Get the metrics of the latest scan all process ScanAllApi get_latest_scheduled_scan_all_metrics GET /scans/schedule/metrics Get the metrics of the latest scheduled scan all process ScanAllApi get_scan_all_schedule GET /system/scanAll/schedule Get scan all's schedule. ScanAllApi stop_scan_all POST /system/scanAll/stop Stop scanAll job execution ScanAllApi update_scan_all_schedule PUT /system/scanAll/schedule Update scan all's schedule. ScanDataExportApi download_scan_data GET /export/cve/download/{execution_id} Download the scan data export file ScanDataExportApi export_scan_data POST /export/cve Export scan data for selected projects ScanDataExportApi get_scan_data_export_execution GET /export/cve/execution/{execution_id} Get the specific scan data export execution ScanDataExportApi get_scan_data_export_execution_list GET /export/cve/executions Get a list of specific scan data export execution jobs for a specified user ScannerApi create_scanner POST /scanners Create a scanner registration ScannerApi delete_scanner DELETE /scanners/{registration_id} Delete a scanner registration ScannerApi get_scanner GET /scanners/{registration_id} Get a scanner registration details ScannerApi get_scanner_metadata GET /scanners/{registration_id}/metadata Get the metadata of the specified scanner registration ScannerApi list_scanners GET /scanners List scanner registrations ScannerApi ping_scanner POST /scanners/ping Tests scanner registration settings ScannerApi set_scanner_as_default PATCH /scanners/{registration_id} Set system default scanner registration ScannerApi update_scanner PUT /scanners/{registration_id} Update a scanner registration ScheduleApi get_schedule_paused GET /schedules/{job_type}/paused ScheduleApi list_schedules GET /schedules SearchApi search GET /search Search for projects, repositories and helm charts StatisticApi get_statistic GET /statistics Get the statistic information about the projects and repositories SysteminfoApi get_cert GET /systeminfo/getcert Get default root certificate. SysteminfoApi get_system_info GET /systeminfo Get general system info SysteminfoApi get_volumes GET /systeminfo/volumes Get system volume info (total/free size). UserApi create_user POST /users Create a local user. UserApi delete_user DELETE /users/{user_id} Mark a registered user as be removed. UserApi get_current_user_info GET /users/current Get current user info. UserApi get_current_user_permissions GET /users/current/permissions Get current user permissions. UserApi get_user GET /users/{user_id} Get a user's profile. UserApi list_users GET /users List users UserApi search_users GET /users/search Search users by username UserApi set_cli_secret PUT /users/{user_id}/cli_secret Set CLI secret for a user. UserApi set_user_sys_admin PUT /users/{user_id}/sysadmin Update a registered user to change to be an administrator of Harbor. UserApi update_user_password PUT /users/{user_id}/password Change the password on a user that already exists. UserApi update_user_profile PUT /users/{user_id} Update user's profile. UsergroupApi create_user_group POST /usergroups Create user group UsergroupApi delete_user_group DELETE /usergroups/{group_id} Delete user group UsergroupApi get_user_group GET /usergroups/{group_id} Get user group information UsergroupApi list_user_groups GET /usergroups Get all user groups information UsergroupApi search_user_groups GET /usergroups/search Search groups by groupname UsergroupApi update_user_group PUT /usergroups/{group_id} Update group information WebhookApi create_webhook_policy_of_project POST /projects/{project_name_or_id}/webhook/policies Create project webhook policy. WebhookApi delete_webhook_policy_of_project DELETE /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Delete webhook policy of a project WebhookApi get_supported_event_types GET /projects/{project_name_or_id}/webhook/events Get supported event types and notify types. WebhookApi get_webhook_policy_of_project GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Get project webhook policy WebhookApi last_trigger GET /projects/{project_name_or_id}/webhook/lasttrigger Get project webhook policy last trigger info WebhookApi list_webhook_policies_of_project GET /projects/{project_name_or_id}/webhook/policies List project webhook policies. WebhookApi update_webhook_policy_of_project PUT /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Update webhook policy of a project. WebhookjobApi list_webhook_jobs GET /projects/{project_name_or_id}/webhook/jobs List project webhook jobs Documentation For Models Access Accessory ActionRequest AdditionLink AdditionLinks Annotations Artifact AuditLog AuthproxySetting Body Body1 BoolConfigItem CVEAllowlist CVEAllowlistItem ChartMetadata ChartVersion ComponentHealthStatus Configurations ConfigurationsResponse ConfigurationsResponseScanAllPolicy ConfigurationsResponseScanAllPolicyParameter Endpoint Error Errors EventType ExecHistory Execution ExtraAttrs FilterStyle","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_1","order":1,"tags":null,"title":"Python API Client"},{"category":"Python API Client","content":"GCHistory GeneralInfo Icon ImmutableRule ImmutableSelector Instance IntegerConfigItem InternalConfigurationValue InternalConfigurationsResponse IsDefault JobQueue Label LdapConf LdapFailedImportUser LdapImportUsers LdapPingResult LdapUser Metadata Metrics NativeReportSummary NotifyType OIDCCliSecretReq OIDCUserInfo OverallHealthStatus PasswordReq Permission Platform PreheatPolicy Project ProjectDeletable ProjectMember ProjectMemberEntity ProjectMetadata ProjectReq ProjectScanner ProjectSummary ProjectSummaryQuota ProviderUnderProject Quota QuotaRefObject QuotaUpdateReq Reference Registry RegistryCredential RegistryEndpoint RegistryInfo RegistryPing RegistryProviderCredentialPattern RegistryProviderEndpointPattern RegistryProviderInfo RegistryUpdate ReplicationExecution ReplicationFilter ReplicationPolicy ReplicationTask ReplicationTrigger ReplicationTriggerSettings Repository ResourceList RetentionExecution RetentionExecutionTask RetentionMetadata RetentionPolicy RetentionPolicyScope RetentionRule RetentionRuleMetadata RetentionRuleParamMetadata RetentionRuleTrigger RetentionSelector RetentionSelectorMetadata Robot RobotCreate RobotCreateV1 RobotCreated RobotPermission RobotSec RoleRequest ScanDataExportExecution ScanDataExportExecutionList ScanDataExportJob ScanDataExportRequest ScanOverview Scanner ScannerAdapterMetadata ScannerCapability ScannerRegistration ScannerRegistrationReq ScannerRegistrationSettings Schedule ScheduleObj ScheduleTask SchedulerStatus Search SearchRepository SearchResult StartReplicationExecution Statistic Stats Storage StringConfigItem SupportedWebhookEventTypes SystemInfo Tag Task UserCreationReq UserEntity UserGroup UserGroupSearchItem UserProfile UserResp UserSearch UserSearchRespItem UserSysAdminFlag VulnerabilitySummary WebhookJob WebhookLastTrigger WebhookPolicy WebhookTargetObject Worker WorkerPool Documentation For Authorization basic Type: HTTP basic authentication Author","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_2","order":2,"tags":null,"title":"Python API Client"},{"category":"Administration Manual","content":"OpenID Connect Single Sign-On Authentication We support all OIDC compliant identity providers. In the User Guides section, you can find selected configuration tutorials that explain how the settings look like on the provider side. This reference, explains what you need to do in your Container Registry instance to enable and configure the OIDC login. Usually, you should proceed with this tutorial if you have access to your OIDC\u0026rsquo;s provider management console to set up new client. Besides, make sure that you made yourself familiar with general notes on different authentication modes as each of them may have its advantages and disadvantages. Enable the OIDC Authentication In the left navigation pane in the Container Registry UI, select Administration; Click on Configuration; Open the Authentication tab; In the Auth Mode, select OIDC from the dropdown; NOTE Switching the authentication mode from the database mode to OIDC is only possible on a system without existing users. To resolve such issue, the system admin (admin) needs to delete all users manually in the UI or via API. OIDC Configuration Primary Auth Mode When enabled OIDC becomes the default way for users to login. The login screen where the user can select to log in via the identity provider or via local DB will not be shown and redirect the user to the identity provider configured here. Login via DB is still possible but the admin user need to visiting the url account/sign-in explicitly in order to be able to log in via username and password. OIDC Provider Name The OIDC Provider Name is for you to identify the selected IDP or the configuration. The name is not visible to the user. OIDC Endpoint Mandatory Enter the OIDC Endpoint of the publicly accessible endpoint that serves its OpenID configuration document /.well-known/openid-configuration. The URI of the configuration document\u0026rsquo;s endpoint is usually visible in the identity provider management console. For some identity providers configurations an ending slash / is required. OIDC Client ID Mandatory The client id is a public identifier for apps, given out by your identity provider, if you create a new App. Fill in the field with information you copied from your identity provider. OIDC Client Secret Mandatory The client secret is should only be known to the application and the authorization server. It is essential the application’s own password. Fill in the field with information you copied from your identity provider. Group Claim Name Enter the Group Claim Name which contains the list of groups the user is member of in the ID Token. During the login the user is added to the Harbor group he is member of. OIDC Admin Group Specify a name from the Group Claim Name, where users belonging to that group will have admin privileges. OIDC Scope Mandatory In OIDC Scope, enter at least openid,email and offline_access. Optionally add profile to get users first and last name. Verify Certificate Tick on Verify Certificate if your provider offers a CA (Certificate Authority) Signed Certificate and not a self-signed one. Automatic Onboarding Specifies if users will have the option to define their own username when signing up for the first time. If you select Automatic Onboarding, the username request dialog screen won\u0026rsquo;t be shown, and users will be automatically assigned their usernames as they appear in the OpenID token; Username Claim This setting only works in combination with Automatic Onboarding If you activated Automatic Onboarding, you may also specify the property in the ID token that will be used as the usernames. Test the connection to verify the configuration against the IDP. Hit Save if it worked out well. Login via OIDC provider When you log out and then log in again, a new Login via OIDC provider button will appear on the login screen. As a system admin, you can continue to use your old credentials and Username and Password field to access your instance. Identity Provider Callback URL Independently of your provider, you need to set a redirect URL, the is also displayed in the line above the Save Button. https://your-instance-domain.com/c/oidc/callback Refreshing CLI Secret with OIDC Authentication Users\u0026rsquo; CLI secrets my not be valid after a some time. In OIDC enabled setups, the CLI secret depends on the validity of the JWT, which usually has a validity period defined by the identity provider. In cases where the user\u0026rsquo;s CLI password isn\u0026rsquo;t working, the user must log in to the Container Registry UI to refresh the JWT.","date":"2021-09-30T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/oidc-authentication/","objectID":"b0fa7bdc2697390155fe7a10f1d4d171_0","order":0,"tags":null,"title":"OIDC Authentication"},{"category":"Administration Manual","content":"Scanning Artifacts Read more about vulnerability scanning and how the health score is calculated here. Running a System-Wide Scan As a system administrator, you can scan all artifacts in your instance at once. Go to Administration; Click Interrogation Services; Select Vulnerability tab; Click Scan now. This will set the whole process in motion. You can watch the progress. Schedule a Scan Inside the vulnerability tab, you can schedule a system-wide scan. It will scan all artifacts in all projects. The scan can be set to run: hourly; daily; weekly; or on a custom schedule entered in the CRON format. How to Scan Only Selected Artifacts To do this, you need to go to a certain project to pick up artifacts. Click Projects in the navigation pane; Click on a project in the project overview); Click on a repository; Select artifacts; Optionally, filter artifacts; Click Scan.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/scanning-artifacts/","objectID":"315f3dbb8ad511192ccd502221e2a77f_0","order":0,"tags":null,"title":"Scanning Artifacts"},{"category":"Administration Manual","content":"User Management Add Another System Admin You can make another user a system admin: In the navigation pane, expand the Administration section; Select Users; Select a user name from the list; Click SET AS ADMIN. The new admin will have the same rights as the existing ones. Revoke System Admin Access To revoke admin access rights, repeat the steps from the previous section. Instead of Set as Admin, you will see REVOKE ADMIN after selecting user names. Click this button. User Management in the Database Mode Prerequisites User management is only possible in the GUI if you have set the authentication mode to database as explained here. Add New Users In the navigation pane, expand the Administration section and select Users; Then, click New User; Fill in the form; do not forget to note the password; Hit Save; Communicate the credentials to the new user; we recommend using OneTimeSecret. Validation Rules for User Names and Passwords Each user name must be unique within the instance. The minimal length for the password is 8 characters. It must include: 1 lowercase letter; 1 uppercase letter; 1 number. Changing and Resetting User Passwords As an admin, you can change the user password. In the Users tab, tick the checkbox next to the user; Click Actions and then Reset password; In the dialogue window, type in the new password and communicate it to the user. We recommend one-time notes from OneTimeSecret. Allow Users to Reset Their Passwords Instead of resetting user passwords manually, you can configure an email server to let users reset their passwords by themselves. They will use the Forgot password link below the sign-in form and receive a link to their email box. Steps to Configure Email Server Indeed, you need to set up such a server internally or using an external provider. In the navigation pane, expand the Administration section; Go to the Configuration section; Click on the Email tab; Fill in the following fileds : email server; email server port; email username; email password; email sender; can be configured as Container Registry Password Reset \u0026lt;hello@your-subdomain.container-registry.com\u0026gt; Select if you want to use an SSL and/or a trusted certificate. Test the server connection; Hit Save if everything works fine. Delete Users In the navigation pane, expand the Administration section; Select the Users tab; Select the users you want to delete; Click Actions; Select Delete.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/user-management/","objectID":"2696d8f6e8e87ed7a390fd2ee39bcf4e_0","order":0,"tags":null,"title":"User Management"},{"category":"User Manual","content":"Tag Policies Managing Tag Policies Prerequisites These rules require a project administrator permission level and are applied on the repository level. Another way to manage tags in bulks is to define specific rules. Two types of such rules are possible: tag retention rules; tag immutability rules. For both retention and immutability, you can create up to 15 rules that will be applied using an OR algorithm. It means that the rules are calculated independently from each other.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/","objectID":"b89f3577edd8c943787ee84d0869b2b7_0","order":0,"tags":null,"title":"Tag Policies"},{"category":"User Manual","content":"Webhooks Webhooks are API push notifications sent in the form of HTTP or HHTPS POST requests. They pro-actively deliver messages to other applications when some event occurs inside their own application. They can inform or trigger further events in the destination application. For instance, you can directly deploy an application upon the image push. This allows you to automate your deployments. In Container Registry, you can add either an HTTP or Slack-based HTTPS URL that will be used for receiving the messages by the target application. You have a choice between the following events that can initiate a push message: Artifact deleted Artifact pulled Artifact pushed Chart deleted Chart downloaded Chart uploaded Quota exceed Quota near threshold Replication finished Scanning failed All incoming messages (payloads) will be in JSON format. Below is an example from the push artifact event message: { \u0026#34;type\u0026#34;: \u0026#34;PUSH_ARTIFACT\u0026#34;, \u0026#34;occur_at\u0026#34;: 1586922308, \u0026#34;operator\u0026#34;: \u0026#34;username\u0026#34;, \u0026#34;event_data\u0026#34;:{ \u0026#34;resources\u0026#34;: [ { \u0026#34;digest\u0026#34;: \u0026#34;sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792\u0026#34;, \u0026#34;tag\u0026#34;: \u0026#34;5.0\u0026#34;, \u0026#34;resource_url\u0026#34;: \u0026#34;epic-exoscale.container-registry.com/documentation/test_slack:5.0\u0026#34; } ], \u0026#34;repository\u0026#34;: { \u0026#34;date_created\u0026#34;: 1628167510, \u0026#34;name\u0026#34;: \u0026#34;test_slack\u0026#34;, \u0026#34;namespace\u0026#34;: \u0026#34;documentation\u0026#34;, \u0026#34;repo_full_name\u0026#34;: \u0026#34;documentation/test_slack\u0026#34;, \u0026#34;repo_type\u0026#34;: \u0026#34;private\u0026#34; } } } Prerequisites Webhooks must be enabled on the instance level by your system administrator (super admin). The instructions are available here. You must be a project administrator to add webhooks to the project. Get Your Webhook URL You need an endpoint URL that is able to receive HTTP/HTTPS POST requests. HTTP or HTTPS Configure a webhook listener on a server that will receive messages and perform further actions if their content requires so. Slack You can configure Slack, a popular team messenger, to receive notifications from your project. For this, you need: a Slack account; a Slack workspace; a target channel inside this workspace; an app with enabled incoming webhooks. For the last step, there are two methods to implement it: Add the existing legacy Incoming Webhooks app from the Slack marketplace: Go to https://slack.com/apps/A0F7XDUAZ-incoming-webhooks?tab=more_info; Click Install; On the following page, select your channel and click Add Incoming WebHooks Integration. Alternatively, create a new Slack channel: You\u0026rsquo;ll be redirected to the Setup Instructions page where you can copy your webhook URL: After you add your webhook in the Container Registry GUI, you will start receiving Slack notifications that look like this: Create your own Slack app and enable webhooks for it. Go to https://api.slack.com and click Create an app or Go directly to https://api.slack.com/apps?new_app=1; Select From an app manifest if you only need it for the webhooks; Select your workspace; Inside the YAML or JSON file, change the name of your app; Hit Next and then Create; You\u0026rsquo;ll land in the basic information view of your new Slack app; Click Incoming Webhooks; Activate incoming webhooks for this app with the slider and then click Add New WebHook to Workspace; Select the target channel to post notifications and click Allow; Your Slack webhook URL was now generated and can be copied: Your new app will be visible among your Slack apps: After you add your webhook in the Container Registry GUI, you will start receiving Slack notifications that look like this: Webhook Triggers The table contains the details about available webhook triggers and what they do. Event Webhook Event Type Contents of Notification Push artifact to registry PUSH_ARTIFACT Repository namespace name, repository name, resource URL, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Pull artifact from registry PULL_ARTIFACT Repository namespace name, repository name, manifest digest, artifact name, pull time timestamp, username of user who pulled artifact Delete artifact from registry DELETE_ARTIFACT Repository namespace name, repository name, manifest digest, artifact name, artifact size, delete time timestamp, username of user who deleted image Upload Helm chart to chartMuseum UPLOAD_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of push, username of user who uploaded chart Download Helm chart from chartMuseum DOWNLOAD_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of push, username of user who pulled chart Delete Helm chart from chartMuseum DELETE_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of delete, username of user who deleted chart Image scan completed SCANNING_COMPLETED Repository namespace name, repository name, tag scanned, image name, number of critical issues, number of major issues, number of minor issues, last scan status, scan completion time timestamp, vulnerability information (CVE ID, description, link to CVE, criticality, URL for any fix), username of user who performed scan Image scan failed SCANNING_FAILED Repository namespace name, repository name, tag scanned, image name, error that occurred, username of user who performed scan Project quota exceeded QUOTA_EXCEED Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Project quota near threshold QUOTA_WARNING Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Artifact replication finished REPLICATION Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who triggered the replication You can use any combination of them or all triggers. Creating a New Webhook in the Container Registry GUI Go to the Webhooks tab in your project; Click + NEW WEBHOOK: Select slack if you copied your endpoint/webhook URL from a Slack application, or select http if you use another application to receive push notifications; Paste the endpoint URL; For HTTP endpoint URLs, you can provide the Authorization Header that specifies your authorization type and contains your credentials, if required, for instance: Authorization: Bearer {{token}} Select an option to verify remote certificates; For HTTP endpoint, disable the feature; For HTTPS, enable it. Webhooks Overview and Details If you click on the arrow next to a webhook, you can open a detailed overview of the triggers and when they ran for the last time. You may need to flick through the triggers using the arrows in the bottom right corner. Enabling/Disabling, Editing, and Deleting Webhooks You can delete webhooks manually or in bulks if you tick the checkboxes and click Delete under the Action menu. You can disable/re-enable and edit","date":"2021-08-05T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/webhooks/","objectID":"b135e4c7439b19538cce7a471fc23d4f_0","order":0,"tags":null,"title":"Webhooks"},{"category":"User Manual","content":"webhooks one by one if you tick the checkboxes and click Disable/Enable or Edit under the Action menu.","date":"2021-08-05T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/webhooks/","objectID":"b135e4c7439b19538cce7a471fc23d4f_1","order":1,"tags":null,"title":"Webhooks"},{"category":"User Manual","content":"Working With Projects This article contains basic information about projects in Container Registry. What Projects Are For When you log in to your Container Registry account, you will land in the Projects section. Projects play a central role in Container Registry for two reasons. Projects host all repositories of the application that you need images for. Basically, a simple rule will be one project = one application. Inside a project, you can have multiple repositories. Consequently, you can only start working with images, if you have at least one project. By default, upon your initial registration, a sample project will be created for you automatically. The repositories can be created with the push or from the console UI. Permissions are set on the project level in the form of Role-Based Access Control (RBAC). Look here to learn about certain actions that users with different roles can perform. Types of Projects Harbor allows two types of projects: public and private. Public projects do not require project membership to pull images from this kind of project. The users do not even need login credentials for their Docker clients. On the contrary, to access private projects, you have to be added to it by the project administrator. The project administrator is another user and not necessarily the system administrator / superadmin of your instance. Read more about assigning users to projects in this article. Create New Project Navigate to the Projects section; Use the + NEW PROJECT button; Give your project a name; Set the access level to public or private. Set Project Quotas Project quotas are storage quotas for your images. If you create a project as a user, ask your superadmin to adjust the storage quotas (refer to the administration manual). If you create a project as a superadmin, you will be able to set the quotas directly in the dialogue window: Set a number and select the scale; Type in -1 to set an unlimited storage quota. Filter or Search Projects In the Project section, you can filter your projects by: their type: public or private; their name. To filter by project type, use the following dropdown: To filter by project name, use the search field: You can also search for projects using the seach icon in the Project Name column header: To display all projects again, delete your search string and click X. Refresh Existing Projects Since more than one project admin is possible per project, more than one collaborator can create and delete projects in the same instance. If you notice that some repositories or certain images are missing, try to refresh the list of existing projects to make sure that you are looking at the actual view: Delete Projects If you have a project admin role in the project, you can delete your projects. Inside the Projects section, select the projects you want to delete and click Delete: Project Summary Summary of All Projects When you are on the highest level of the project section, you can see the following summary of your projects and repositories: Project List Inside the project section, you can see the list of all projects you are the member of, as well as some basic information about them: Project names; Their type (shown as Acess Level column); Your role in each project; The type of the entry; Number of the repositories Number of charts; Creation time. Summary of Each Project Inside every project, you can get a similar summary that includes: number of repositories in the project (1); project quotas: storage consumption (2); number of helm charts (3); number of project members per project role (4).","date":"2021-03-30T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/","objectID":"6c5ad82046c6871478f1acb26afac188_0","order":0,"tags":null,"title":"Working With Projects"},{"category":"Getting Started Guide","content":"Other Useful Features Our Harbor-based cloud service allows you to manage your images easier. Apart from pulling and pushing images to and from your container registry, you can: Facilitate your Kubernetes deployments by seamless integration between your Kubernetes clusters and Harbor-based container registries; using Kubernetes YAML manifests: Helm Charts; access your Chart Museum directly from the GUI Bypass connectivity issues by using a proxy cache: a pull-through cache for another target registry; a cached copy is checked against the target and is always up-to-date. Better manage your images by organizing them into projects; creating repositories inside projects; tagging images; creating labels and annotations for images; Improve your security by running vulnerability checks on images; using identity providers, such as Google and Azure; distributing commercial images safely; applying role-based access control to all artifacts; Automate your workflow by creating robot accounts; creating, refreshing, and synchronizing their secrets programmatically with Harbor Sync; creating webhooks; specifying a P2P preheat policy for commercial distribution of the images; Have a better overview of your costs by monitoring project quotas.","date":"2021-03-29T12:11:51+02:00","description":"A brief overview of the available features","href":"https://container-registry.com/docs/getting-started-guide/other-useful-features/","objectID":"5580fb613387ff9877f009f1f3f0f259_0","order":0,"tags":null,"title":"Other Useful Features"},{"category":"Administration Manual","content":"General Configurations System-Wide CVE Allowlist You can manage your deployment security by excluding certain vulnerabilities – entries in the Common Vulnerabilities and Exposures List – from the health score calculation. Project admins can do this on the project level re-using system-wide CVE lists or creating their own. Add Items to a System-Wide CVE Allowlist In the navigation pane, expand Administration; Go to Configuration; Open System Settings; Scroll down to Deployment Security; Click ADD; Find the vulnerability in this database; Enter the items separated by simple commans or line breaks; Select an expiration date for the allowlist or click Never expires; Click ADD; Click Save. Edit Existing System-Wide CVE Allowlist Still in the Deployment security, click on the x next to the CVE index to remove it from the system-wide allowlist. Vulnerability Database Updates If you have vulnerability scanners Clair or Anchore, you can see when these databases were updated for the last time. The timestamp can be accessed under Administration -\u0026gt; Interrogation Services -\u0026gt; Vulnerability.","date":"2021-09-08T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/general-configurations/","objectID":"0a64c1e8701adbcfd2c5b799763c29cb_0","order":0,"tags":null,"title":"General Configurations"},{"category":"Administration Manual","content":"System Robot Accounts Robot accounts are used to let another application log in to Container Registry automatically. The overview of all robot accounts in your instance is available from Navigation -\u0026gt; Robot Accounts. Please note that all robot accounts get a prefix to their names when they are created. By default, the prefix is robot$. It is possible to configure another prefix as described here. Available Robot Account Permissions Robot accounts can access Container Registry through API or a command line tool but never the GUI. They can perform one or more of the following actions based on the permissions you granted them: Push artifacts Pull artifacts Delete artifacts Read Helm charts Create a Helm chart version Delete a Helm chart version Create a tag Delete a tag Create artifact labels Create a scan System robot accounts may be granted such permissions for more than one project or even for the entire system. Create a System Robot Account The procedure is similar to creating robot accounts on the project level as described here with the difference that, as a system admin, you can create robots that have access to multiple projects. To create a system robot account: Go to the Administration tab; Select Robot Accounts; Click New Robot Account; Fill in the form: Give your robot a catchy name; Select from the dropdown if its token should expire and how soon; INFO The tokens can be refreshed upon expiration or at any other time as described here. Optionally, add a description; Set which projects it should have access to: A) Select Cover all projects and set permissions that apply to all projects. Select or de-select them from the dropdown. B) If you have a lot of projects, filter them by name and then click Cover all Projects to include the selected results. IMPORTANT The filter that you created in this step will be saved in the robot account configuration. It means that if you later create a project with the name matching the same pattern, the existing robot account will be automatically granted access rights to this project. C) Or check the tickboxes next to specific projects. In this case, you will need to set permissions for each project individually. As a shortcut, you can use the Reset Permissions button to revoke certain permissions from all projects in the list. Hit ADD to add the new system robot account. Upon creation of the new robot account, the secret token for this account will be displayed once. You can also save it as a JSON file if you use the Export to file button. If you do not copy or export the token immediately, you will need to reset it later since the original one won\u0026rsquo;t be accessible any longer due to the restrictions of the underlying Harbor technology. Managing System Robot Accounts From the system robot accounts overview, under Administration -\u0026gt; Robot Accounts, you can manage your robots. To do this, tick the checkbox next to an account and click on Action button. You cannot manage items in bulk. Refresh System Robot Account Token Robot account secret tokens must be refreshed when they expired or can be refreshed when you have not saved the original ones or want to refresh them for security reasons. To do this, use the Refresh Secret button and then Refresh in the opened dialogue window. The new secret will be generated automatically. After you hit Refresh, you will see the dialogue window that allows you either to copy your secret or download it as a JSON file. Remember, that, like in the case of new account creation, this secret token won\u0026rsquo;t be saved anywhere in the system, so make sure you save it immediately. Optionally, you can type in your own secret if you enable this option using the slider. Requirements for the Manual Secret 8-20 characters including: at least 1 uppercase; at least 1 lowercase; at least one number. Edit System Robot Account Still in the Robot Accounts overview, use Action button and then Edit to edit general attributes of the robot account, such as expiration period, description, and permissions. You cannot rename existing robot accounts. Delete System Robot Accounts In the same Robot Accounts overview, use Action button and then Delete to remove any system robot accounts completely. Disable and Enable System Robot Accounts Instead of deleting system robot accounts, you can disable them using Action - \u0026gt; Disable in the Robot Accounts overview. The accounts will be kept in the system and can be enabled using the same Action button. Additional Configuration You can configure a few features that apply to the creation of new system robot accounts. This needs to be done from a different section in the navigation. Go to Administration; Click on Configuration; Then open the System Settings tab. Changing Default Robot Accounts Prefix By default, all new accounts are created with a robot$ prefix that is attached to the name that you provide manually. You can set a different default prefix in the System Settings. In the Robot Name Prefix, type in the new prefix string. The prefix will be applied to all new system and project robot accounts. The robot accounts with the old prefix will be marked as legacy. Robot Accounts Expiration By default, when you create a new system or project robot account, the Expiration time field is filled with a value which is 30 (days). You can set a different default value which will be also in days counted from the creation of a robot account. In the same System Settings tab, you can specify the default expiration period for the tokens of all newly created robot accounts. However, you still can set the expiration period manually while creating a robot.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/system-robot-accounts/","objectID":"07692a3e1de0c414bbc9f9d6bbc7c326_0","order":0,"tags":null,"title":"System Robot Accounts"},{"category":"User Manual","content":"Working With Images, OCI Indexes, Tags, and Helm Charts Needless to say, Docker images are the reason why you actually want to work with Container Registry. This section will describe general features available for managing images and helm charts. To learn about working with tags, refer to this section. To learn how to push and pull images, refer to this tutorial. Types of Artifacts When you open a repository in a project, you will see a list of the available artifacts: items stored in the same repository. The following types of artifacts are possible: Images: items with the Docker whaleship icons; Helm charts: items with the \u0026ldquo;Helm\u0026rdquo; icon; OCI indexes: items with the three-bubbled icon on the left and a folder icon on the right. What are OCI indexes and why do you need them? Some images may be gathered in lists using the OCI index. In general, every Docker image has a manifest: information about its layers, size, digest, as well as for which operating system and type of CPU architecture it was built, etc. Images are only templates that do not change. The changes are stored in the image layers. In Harbor, you can create manifest lists that are basically lists of the layers of the same image. Manifest lists appear in Container Registry as artifacts with a folder icon. When you click on the icon, the entire list of the image manifests will be displayed. Refer to the official Docker documentation to create a manifest list using your command line tool. SHA256 Hash The artifacts are named using a SHA256 hash. A hash can be described as a key or a representation of a text message. It is similar to encryption but it can be decrypted into the original message easily. SHA256 hashes refer to the JSON file that keeps the image manifest and are generated when the image is compressed for being pushed. Since such compression is also a kind of change, a new image layer is created during this preparation for a push. Consequently, this layer needs a new manifest that is pushed to a repository. Further, the manifest is written in a new JSON file. Eventually, this file becomes its own new unique hash. INFO To display the type of the artifact as well as its complete hash, hover over one of them respectively: Displaying artifact type: Displaying artifact hash: You do not need to memorize the hash, though. It can be copied into clipboard. Overview of the Stored Images/Artifacts The overview table has the following columns: Artifacts. Pull Command: when you click on the copy icon next to an artifact, the pull command for this artifact will be copied to clipboard and can be used in your command line tool to pull the artifact. Example of the copied command: docker pull your-subdomain.container-registry.com/library/test@sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 Since there are different types of artifacts stored in repositories, they are all referred to using their SHA256 hashes. Tags. Read more about Docker image tags here. Some artifacts can have multiple tags. Hover over the entry to display an overview of all tags or check them in the artifact view. Size. This column shows the size of the compressed artifact. When you pull it to your local machine, it will be decompressed to its original size again. Vulnerabilities. This column shows the results of the image scan if any scan has been run upon it. Hover over the entry to display all vulnerabilities or check them in the artifact view. Annotation. This column displays additional information that was added to the image manifest. It can include: type of CPU architecture; architecture variant; operating system and, optionally, its versions and features. Read more about setting images annotations here. Labels shows labels that you or your project collaborators assigned to the artifact. Push Time shows when the artifact was pushed for the last time. Pull Time shows when the artifact was pulled for the last time. Filtering Artifacts You can filter artifacts in the repository using the magnifier in the top right corner of the table. Click on it to access different filtering options. Filter Artifacts by Type You can restrict the artifacts overview to a specific type by selecting one of the types in the dropdown: Filter Artifacts by Tags You can display only tagged or untagged images. Filter Artifacts by Label You can display only artifacts that have the same label. You can select more than one label in this operation. Managing Artifacts In the artifacts overview, a few basic operations with artifacts are available. Every time you need to perform one of them: Tick the checkbox next to the artifact; Click Actions: Per-Item Actions These kinds of actions can only be applied to one artifact at a time. Copy Digest This button will open another dialogue window where you can copy the digest to clipboard. Add Labels Labels are another way to add some short information to your artifacts to sort them later or to make them more eye-catching in the overview. Labels must be added to the project by the project administrator as described here. Bulk Actions: Delete or Scan Artifacts These actions can be applied to more than one artifact at a time. INFO To scan images, you need at least the project administrator privileges.","date":"2021-08-11T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/","objectID":"867296aa8812795d3fcf8878e82a9ea6_0","order":0,"tags":null,"title":"Working With Artifacts"},{"category":"Administration Manual","content":"Endpoints For Replications and Proxy Cache Projects Endpoints are container image registries. They can be instances of the Container Registry platform, or other Harbor-based registries, or even non-Harbor-based ones. Non-Harbor Registries: General Information Supported Non-Harbor Registries For Replications Ali Cloud Container Registry (Alibaba ACR); Artifact Hub; AWS Elastic Container Registry; Azure Container Registry; Docker Hub; Docker registry; DTR; GitHub GHCR; Gitlab; Google Container Registry; Harbor; Huawei SWR; Jfrog Artifactory; Quay; Tencent TCR. For Proxy Cache Projects Harbor; Docker Hub; AWS Elastic Container Registry; Azure Container Registry; Google Container Registry; Quay. INFO We update these lists regularly but you can also check for the original ones here. Getting Your Access ID and Access Secret from Other Providers When you create a new endpoint as described below, you will need to enter an Access ID and Access Secret. Different providers have different names for that. Amazon ECR In the case of AWS ECR, those are not your (root) user credentials but the so-called keys for programmatic access. Read this AWS documentation article to understand how you can access these keys in your AWS account. Google Container Registry (GCR) In GCR, those can be downloaded as a JSON file following the instructions from the official documentation. Quay Without Authorization If your Quay registry does not require authorization, do not enter anything in the Access ID and Access Secret fields. With Authorization In this case, you need to leave the Access ID field empty and enter all credentials into the Access Secret field in JSON format, like this: { \u0026#34;oauth2_token\u0026#34;: \u0026#34;YmQZ1QZENVmOD6v9kENzmfptNVhgBuy5oVl85eGV\u0026#34;, \u0026#34;account_name\u0026#34;: \u0026#34;account_name\u0026#34;, \u0026#34;docker_cli_password\u0026#34;: \u0026#34;q6NVazikNqIf4coiQ+JvV4iqiCpkNjE0DLX8ZMQuFRbkHk5iMv6/hd4WdV3W3nyX\u0026#34; } The OAuth2 token can be skipped if you do not want to create a new organization; Account name: If you use robot account credentials, be aware that it can only be used in one Container registry system at the same time. Thus, you will need different robot accounts for every Container Registry instance; Alternatively, and this is even recommended, use your personal account name; Docker CLI password is your general CLI password. Create New Endpoint In the navigation pane: Go to Administration; Then to Registries; Click + New Endpoint. Fill in the form; For the endpoint URL, use the URL of the registry; If you want to connect to another Harbor-based registry, use the account name of your robot account as Access ID and its token as Access Secret; Select if there is a security certificate on the other side or not. Test the connection; Save the endpoint if the test ran successfully. Manage Existing Endpoints You can either edit or delete any of the existing endpoints. In the Registries overview, select one endpoint for editing or one or multiple ones for deleting.","date":"2021-08-27T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/endpoints-for-replications-and-proxy-cache/","objectID":"e7cec8f5c23fa5955f485fbbc7a310bd_0","order":0,"tags":null,"title":"Endpoints For Replications and Proxy Cache"},{"category":"User Manual","content":"Working With Logs Logs track everything that happens in your system. You can access logs from different places in the GUI. Event Logs You will see this side bar on the right from everywhere in Container Registry. Hover over the EVENT LOG tab to exapnd it. Event log includes high-level events, for instance, adding or deleting a new user to the system: In some cases, project-related events will be also displayed in this section. Local events are shown in groups: All; Running; Failed. All Projects Logs Events that happen within certain projects can be found in the Logs section of the Navigation pane on the left. Each log entry includes the following information: username; resource; resource type: tag; artifact; project; operation; timestamp. You can type your search string and use a dropdown filter to narrow the search down to: username; resource; resource type: operation. Project Logs In addition to the Logs section and Event Log, you can dig into log data generated for particular projects. For this, go to the Logs tab inside the project. Each project log entry includes the following information: Username of the project memeber who initialized the operation; Resource: an image or project name depending on the level the operation happened on; Resource type: artifact/image; project; Operation: create; delete; push; pull; Timestamp. Here, you can filter your logs by: user name: date of the operations; type of the operation. For the last two filters to appear, use Advanced filer mode.","date":"2021-08-17T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/working-with-logs/","objectID":"e148e2ad617e81f30991a395ad4e97a2_0","order":0,"tags":null,"title":"Working With Logs"},{"category":"Administration Manual","content":"Configure Replication Rules Replication rules specify which artifacts will be moved between registries and how they should be moved. Each replication rule includes: a filter to catch particular artifacts; a scheduler; a flattening rule. Create or Configure a Replication Rule Prerequisite You need at least one endpoint – a registry to push or pull images from – to create a new replication rule. Steps In the navigation, select Administration and then Replications; Click + New Replication Rule; If you want to edit an existing one, select it for editing as explained below; Fill in the form: Name should not have any white spaces; Description is optional; Replication mode: Push-based means that you will push images from your current Container Registry instance into a remote one; Pull-based means that you will pull images to your current Container registry instance from a remote one; Resource filter: in the push replication mode, your current instance is the resource, whereas, in the pull mode, the resource is the remote registry; the resource filter selects which artifacts should be included in the replication: Name is the repository name; however, you can include all repositories by specifying in this field only the name of the project or using patterns; Tag is the artifact tag; Label; In the Resource dropdown, you can choose between the artifact type: chart, image, or any artifact. Destination/Source registry: you need to specify the remote registry by selecting an existing endpoint from the dropdown; In the Destination Namespace you can enter a custom name for the namespace where the artifacts should be pushed; if you leave it empty, the namespace existing in the source will be created in the destination and the artifacts will be stored there; In you specify a destination namespace or tag, you will need to select a Flattening rule for them (read more about flattening below); Trigger will specify when a replication should run: manually: when you start it pro-actively; scheduled: the replication runs repeatedly after the same time interval; this interval must be specified using the CRON format; event-based runs when an event happens; for manual and scheduled triggers, specify if you want the artifacts with the same name to be overridden in the destination; for event-based trigger, specify if you want to synchronize delete operations. INFO The resource filter is an AND filter. The more conditions you add, the narrow is the selection. Which Events Trigger a Replication or Not The following events will trigger a replication that is set to be event-based: a new artifact has been pushed into the resource registry; an artifact was re-tagged in the resource registry; optionally: an artifact has been deleted from the resource registry; to activate this one, you need to tick the checkbox near Delete remote resources when locally deleted. INFO Changes in the artifact labels do not count as events and never trigger a replication. Flattening Docker images have multiple layers that reflect all changes you\u0026rsquo;ve done to the original image. Layers are organized into hierarchies. When a layer in the hierarchy is changed, Docker will propagate the changes to all the layers below this one. The hierarchy may have more than one brunch. Consequently, you need to make sure that you keep track of where certain layers come from, which changes were applied to them, and how to find the \u0026ldquo;original\u0026rdquo; layer. You can also choose not to track this information if you do not need it. An image hierarchy can be visualized in your command line tool using the tool known as dockviz and looks like this: $ dockviz images -t -l └─511136ea3c5a Virtual Size: 0.0 B ├─f10ebce2c0e1 Virtual Size: 103.7 MB │ └─74fe38d11401 Virtual Size: 209.6 MB Tags: ubuntu:12.04, ubuntu:precise ├─ef519c9ee91a Virtual Size: 100.9 MB │ └─a7cf8ae4e998 Virtual Size: 171.3 MB Tags: ubuntu:12.10, ubuntu:quantal │ ├─5c0d04fba9df Virtual Size: 513.7 MB Tags: nate/mongodb:latest │ └─f832a63e87a4 Virtual Size: 243.6 MB Tags: redis:latest └─02dae1c13f51 Virtual Size: 98.3 MB └─316b678ddf48 Virtual Size: 169.4 MB Tags: ubuntu:13.04, ubuntu:raring In your repository, this hierarchy is represented through slashes in the artifact name. The highest level appears in the image name on the left, before the very first slash. By selecting a flattening rule, you keep some or all or none of the hierarchy levels. It is pretty much like removing parts of the image name. When you drop – flatten – one or a few levels, one or a few slashes and characters between them will be removed from the artifact name. INFO Chartmuseum always needs two levels left on the chart name. Options for the scope of flattening: Flatten All Levels will remove the complete hierarchy leaving only the tag of the last layer; No Flatteing will keep the hierarchy as it appears in the resource registry; Other options always remove a number of levels (parts of the image name starting from the left): Flattening 1 level; Flattening 2 levels; Flattening 3 levels. Pattern Matching Rules for the Name and Tag Resource Filter You can use double-starred patterns as explained here to include only certain repositories in the project or certain tags. The pattern will be matched with the names of repositories or artifacts. In addition to that, you can use two more pattern matching methods. Contrary to double-starred patterns that take any match independently of the number of the characters that can be added to the pattern to build a match, with the question mark, you can specify that only one character can be added. For instance, test? will be matched with test1 and test2 but not with test12. To enter more than one pattern as a match, create a list of them using curly brackets and separating single patterns with simple commas. You can use ? and asterisk in the patterns inside the list. General Information About Replication Tasks Failed Tasks Replication tasks are running replications. Failed replication tasks undergo a few execution attempts automatically. Reasons for Replication Task Failure Most of the time, two reasons for the replication task failure are possible: network issues; insufficient user","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/configure-replication-rules/","objectID":"532f4df93a6fbcb23bd8df5c974f17d7_0","order":0,"tags":null,"title":"Configure Replication Rules"},{"category":"Administration Manual","content":"rights in the destination registry. Managing Replication Rules To manage replication rules, select one of them by clicking on the circle next to a rule and then perform one of the following actions using buttons in the replication rules overview. Run a Replication Manually The Replicate button will run the selected replication. This is possible for replications with any type of trigger but is the only way to run the replication with the manual trigger type. Disable or Enable a Replication Rule Replication rules can be disabled and enabled again if you only want to pause them for a while. Edit or Delete a Replication Rule You can delete or edit any replication rule using the Actions button. INFO If a replication that you want to edit or delete is running at the moment, you will need to wait until all replication tasks are finished successfully. You can check their status as explained below. Check the Status of Replication Tasks To check the status of all past and present replication tasks, select a replication rule and the list of its executions will appear below. Click on the execution ID and you will be redirected to the overview of the replication tasks for this execution. Replication Logs For each replication task, you can access its logs by clicking on the log icon next to the task in the replication task overview. Stop a Running Replication To stop a running replication, select a replication rule to display the list of executions. Select the one that is still in progress by using the checkbox and press Stop. The same button is also available in the replication task overview.","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/configure-replication-rules/","objectID":"532f4df93a6fbcb23bd8df5c974f17d7_1","order":1,"tags":null,"title":"Configure Replication Rules"},{"category":"Administration Manual","content":"Configure Artifacts Replication In Container Registry, artifacts – images and helm charts – can be pushed or pulled between registries in bulks, even between those that are outside of our platform. This process is known as replication. Artifacts are replicated based on a filter: a replication rule. The external registry does not need to be Harbor-based. A replication can be initiated manually but its main advantage is that it can be set to run on a schedule or trigger. Configuring a replication – manual or rule-based automated – includes two major steps: creating a replication endpoint; creating a replication rule. Manual replications still need a rule but must be initiated by hand. Namespace Match With the Destination Registry When you push artifacts to a registry using replication, you do not need to create the namespace – project and repository – in the destination registry before. Exactly as in the case of pushing images to Container Registry from your local machine, the repository will be created in the destination. It also plays no role if the destination is your Container Registry system or an external one. Exception In Quay.io you need to create namespaces in advance before using the endpoint.","date":"2021-08-27T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/","objectID":"3e5bf2321ed976b6648ad5858d7fc30c_0","order":0,"tags":null,"title":"Configure Artifacts Replication"},{"category":"Administration Manual","content":"System-Wide Labels Labels are colored tags that can be added to artifacts and are only visible in the Container Registry GUI. They help you to find artifacts quickly since they can be used in some filters and since they are more eye-catchy than tags. They can be added on the project level by project administrators as explained here, but system administrators can also create system-wide labels that can be used for all projects. Add a New System-Wide Label In the navigation, go to Administration; Select Labels; Click + New Label; Give it a name; Assign it some color; Optionally, add a description. Edit or Delete a System-Wide Label To edit or delete an existing system-wide label: Go to the Labels tab in the Administration; Check a tick box next to a label; Press either Edit or Delete. It is possible to delete labels in bulks, but editing only works for one label at a time.","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/system-wide-labels/","objectID":"ec4a5bb5bca3185e9b32d4cf7b38cc27_0","order":0,"tags":null,"title":"System-Wide Labels"},{"category":"Administration Manual","content":"Project Quotas Individual accounts have 1 GB of storage included. Dedicated accounts have 100 GB. You can set the upper limit for storage usage for every project. Overview of the Storage Usage In the Project Quotas tab of the navigation pane, you can check how much storage is used and by which projects. Default disk space per project shows how much storage every newly created project will be assigned. The bar in the Storage column of the overview shows the percentage of storage use. If it is green, you are below the first half of the storage reserved for this project. The yellow color shows that you are above the first half. The red color shows that the project is close to exhausting its available storage. INFO Default disk space per project is not the total storage use per instance, nor it is the sum of all other project quotas. Changing Project Quotas If you are a system administrator of your Container Registry instance, you will be able to set project quotas during the creation of new projects. For the projects created by other users of your instance, you can adjust quotas afterward or specify a default storage quota. Set Default Storage Quota Per Project In the navigation pane, expand Administration; Find Default disk space per project und click Edit next to it: Choose the volume measure from the dropdown; Type in the amount of storage you need; Set it at -1 for unlimited storage. Change Quotas for Existing Projects In the navigation pane, expand Administration; Click Project Quotas; In the project list, select a checkbox next to the project you want to change the quota for; Click Edit; Select the volume measure from the dropdown; Enter the amount of storage you need; Set it at -1 for unlimited storage. INFO When you change the default project quota and there are some existing projects in the instance, that won\u0026rsquo;t change their storage quotas. General Information About the Storage Size A few notes on when you should expect changes in your storage usage: what makes your storage quotas exhausted quickly and what makes some storage space vacant again. INFO Helm Charts do not influence the storage usage that you see in the project quotas overview. Every Docker image has at least one – usually, numerous – layers. Those layers are \u0026ldquo;stored\u0026rdquo; in blobs: binary files. The track of layers is kept in the image manifest. Shared Blobs and Project Quotas The hierarchy of the image layers was explained in detail here. From this perspective, one can say that some image layers are included in more than one image. But the underlying Harbor technology does not multiply identical layers but rather maps different images to store one unique layer only once and to spare some storage space. Consequently, shared blobs – identical layers – add to the exhaustion of the project storage only once. However, shared blobs stretched across different projects add to the exhaustion of every project. What Happens With the Storage on Image Push On image push, blob files are transmitted first. The manifest is pushed only upon their successful arrival in the registry. Therefore, you may exceed your project quota but you won\u0026rsquo;t be notified about it immediately after you\u0026rsquo;ve started the push. The storage may be exhausted in the process but Container Registry can reject the push only when its manifest arrives and gets rejected due to the quota exceeded by the blobs. Rejection or acceptance happens on \u0026ldquo;First come, first served\u0026rdquo; principle, in the order image manifests arrive. Keep this in mind when pushing a few images in parallel. They may race with each other and the first to be pushed is not necessarily the one to be stored successfully. Images with blobs already existing in the registry will squeeze through faster than those with completely new layers. What Happens With the Storage on Retagging Images Retagging images increases storage exhaustion if you copy an image from one project to another. It does not change project quota exhaustion if you tag the image but leave it in the same project. What Happens With the Storage on Deleting Images Image blobs are not deleted when the image is deleted. Therefore, deleting images won\u0026rsquo;t free any storage space. To remove the blobs completely and to reduce the storage exhaustion in the project, run Garbage Collection as described here.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/project-quotas/","objectID":"82a32351b9f6562064e3f1fe3200e614_0","order":0,"tags":null,"title":"Project Quotas"},{"category":"Administration Manual","content":"Vulnerability Scanners Docker images may contain vulnerabilities that are dangerous from a cyber security point of view. Multiple providers offer software that allows for scanning images for such vulnerabilities and can be integrated into your Container Registry instance. Every instance comes with the two pre-installed vulnerability scanners: Trivy, the default one, and Clair, both open-source. What Vulnerability Scanners Do Known cyber security vulnerabilities are pieces of the source code that can lead to security breaches. They are listed in the ever-growing database Common Vulnerabilities and Exposures List. Vulnerability scanners go through the underlying source code of a Docker image and check if some parts of it match the known vulnerabilities. Some of the vulnerabilities you can exclude from matching as explained here. As a system admin, you manage all scanners available in the instance. Project admins can select scanners for adding them to their projects as explained here. Without any active intervention from you or from the project admins, all projects inherit the default system scanner as their active scanner.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/","objectID":"522135246f895e36e5b76f77ed14a1a5_0","order":0,"tags":null,"title":"Vulnerability Scanners"},{"category":"User Manual","content":"Dedicated vs Individual Account Container Registry offers three types of pricing plans: individual; dedicated; custom/enterprise. The present documentation is mostly written with dedicated accounts in mind. We would like to explain the differences between the three. The table below summarizes critical distinctions. You can also refer to our pricing page. Position Individual Dedicated Custom Tenants 1 tenant Multitenancy Multitenancy Repositores Only private Private and public Private and public Domain c8n.io Subdomain on container-registry.com or custom domain Any Users 1 user Multiple users Mutliple users Storage 1 GB 100 GB Custom Multiregional High Availability Rollouts - - Yes Users, Teams, and RBAC Dedicated and custom enterprise accounts allow you to create user groups that enable fast collaboration on projects. These accounts also fully implement role-based access control allowing you to specify which user can do what. Storage Starting from a dedicated pricing plan, you have more control over the size of your registry storage. Dedicated accounts can obtain additional storage for a monthly fee. Custom enterprise accounts may be provisioned and operated by a selected cloud provider, thus giving their owners full control over their storage sizes. Customization With a dedicated account, you can use your company\u0026rsquo;s subdomain as your instance at Container Registry. For enterprise accounts, we offer a completely customized setup and configuration of the container registry making it a white label product. Additional Enterprise-Only Features With an enterprise account, you can minimize or eliminate any rollout-related downtimes with multi-regional HA rollouts. You also receive enterprise-level customer support. Pricing Individual accounts are completely free of charge. Dedicated accounts provide a free 14-day trial. Prices for custom solutions are calculated individually by our sales team.","date":"2021-08-13T00:00:00Z","description":"description_test","href":"https://container-registry.com/docs/user-manual/dedicated-vs-individual-account/","objectID":"80722198c7394618ee3300790e358830_0","order":0,"tags":null,"title":"Dedicated vs Individual Account"},{"category":"User Manual","content":"Double-Starred Patterns Some Container Registry GUI features allow you to use string matching instead of entering complete names of repositories or tags. That comes in handy if you create separate repositories or tags for every stage in the software development lifecycle and follow a naming convention. In this case, you can select more than one repository or tag by typing in only the pattern once instead of listing all their names. The star or asterisk symbol helps you to compile such patterns. For information about how the definition and usage of Patterns such as ** see https://github.com/bmatcuk/doublestar#patterns. Double Star In Harbor, and, consequently, Container Registry, you can use a double star/asterisk to do the following: specify that you want to select all names by using the ** without any other characters; for instance, to select all repositories in the tag retention rule dialogue window: specify a part of the name that is the same for all items; for instance, to select all repositories that have \u0026ldquo;release\u0026rdquo; in the middle of the name, use: *release* Single Star You can also use only one star/asterisk to specify a string that is either the beginning or the end of a name. Pattern Stands at the Beginning For instance, to select all repositories that start with \u0026ldquo;release\u0026rdquo;, use: release* The star at the end will identify that something is going to come after the pattern. Pattern Stands at the End On the contrary, to select all repositories that end with \u0026ldquo;release\u0026rdquo;, use: *release with the matching pattern at the end and the star/asterisk at the beginning showing that something comes before the pattern. INFO Please keep in mind that the single asterisk will stop pattern matching as soon as it stumbles across a separator /. If you need to match any patterns that have separators, typically, a file or repository path, or a complex artifact tag, include the separators into the pattern: release*/test*/** It will match with: release_2021/test_new/1.0","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/double-starred-patterns/","objectID":"28de6696e91de29259a1e6822829f9d0_0","order":0,"tags":null,"title":"Double-Starred Patterns"},{"category":"Administration Manual","content":"Terminal Deletion of Images: Garbage Collection A simple delete operation is not enough to remove images – to be precise, their blob files – from the system. When you use a delete button on the artifacts overview page inside a repository, it simply deletes the corresponding item from the GUI. It means that simple deletion does not clean up your storage, and you may be hitting your project quotas even if you do not see a lot of artifacts in there. To remove blob files from the system and make some space in your repository, you need to perform an operation known as garbage collection. To access it: Expand Administration in the navigation tab; Click Garbage Collection. Handling Untagged Artifacts When you remove a tag from the image, you hide a layer associated with the tag from the Container Registry GUI. The result of the untagging is equal to deletion and, as in the case of deleting an artifact, it does not remove the blob from the system. Independently of the method you select for garbage collection, make sure to use the slider to specify if you want to include untagged artifacts in the ultimate deletion: Handling Images That Are Still Uploading Since some images may take time to upload, there is a mechanism to prevent them from unintentional removal. Any garbage collection operation (including the dry run) only covers images that were not uploaded within the previous two hours. Garbage Collection Dry Run Garbage collection takes some time and computing capacity. Besides, since some blob files may be shared between artifacts with identical layers, this operation brings some complexity with it. As a result, a running garbage collection may prevent users from working with your repository normally. For this reason and to avoid losing data that you may still need, we recommend performing a test execution first: a dry run. Use the Dry Run button to initiate it and wait for the results to appear; Access Garbage Collecting Log Data Go to the History tab; Find the dry run job that you started; Click on the Log icon; The log data will be displayed in a new browser window; it will list artifact trash candidates and provide a recommendation for whether or not to run a garbage collection. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:145]: Garbage Collection parameters: [delete_untagged: false, dry_run: true, time_window: 2] 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:155]: start to run gc in job. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:411]: artifact trash candidates. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:413]: ID-1 MediaType-application/vnd.docker.container.image.v1+json ManifestMediaType-application/vnd.docker.distribution.manifest.v2+json RepositoryName-library/gc_test Digest-sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 CreationTime-2021-09-08 15:50:13 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:203]: no need to execute GC as there is no non referenced artifacts. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:174]: success to run gc in job. You can also see how much space will be freed after the execution. Run Garbage Collection Use the GC Now button to run a real garbage collection. You can access the History tab to monitor the execution and then look into the log file when the job is finished. Schedule Garbage Collection To schedule a garbage collection: Click on Edit next to Schedule to GC; Select a schedule or type in a CRON-formatted schedule; Hit Save.","date":"2021-09-08T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/terminal-deletion-of-images/","objectID":"5a7f60a6f23d41822520c4e6905e7c11_0","order":0,"tags":null,"title":"Terminal Deletion of Images"},{"category":"Administration Manual","content":"Other System Settings Under Administration -\u0026gt; Configuration -\u0026gt; System Settings you will find a few more system-wide settings. Project Authorship In the dropdown Project Creation, you can specify who can create new projects in your instance. You have a choice between system admins and all other users. Token Expiration You need a token every time you want to login into your private registry from Docker. You can specify how many minutes it is valid. Robot Name Prefix As described here. Robot Token Expiration As explained here. Make Repositories Read-Only If you enable this feature, all users will only be able to pull images. Independent of their permissions, none will be able to push images, tag images, and delete repositories. Deployment Security As explained here. Enable Webhooks As a system admin, you must enable webhooks so that project admins can add webhooks to their projects.","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/other-system-settings/","objectID":"336b1d60bfb6975c1b39e5ead6678f09_0","order":0,"tags":null,"title":"Other System Settings"},{"category":"Administration Manual","content":"Proxy Cache Projects Why Use Container Registry as a Proxy Cache Container Registry can be used as a proxy cache for images originally stored on Docker Hub. There are a few reasons why you would avoid pulling images from Docker Hub directly. Docker Rate Limit Docker Hub has a download limit rate which is defined differently for different subscription plans. In our blog post, we explain why you can hit the limits quite quickly and which consequences it may have for your workflows. One of the main reasons why your rate limit may get exhausted is that you often make duplicate (triplicate, etc.) pull requests. A proxy cache prevents duplicate requests. It caches an image that was already pulled and allows you to pull it again from its \u0026ldquo;cache memory\u0026rdquo; without sending the actual pull request to Docker Hub. Nevertheless, you can be sure that you get the latest image version. The proxy accessed the canonical repository and checks if there are newer layers. If yes, then it will pull them, meaning that this request will contribute to the exhaustion of your limit. INFO To explain it in a different way: pulling an image from Docker Hub means sending a GET request, whereas the proxy only sends a HEAD request which does not count into the rate limit exhaustion. Less Bandwidth and no Throttling Sending too many pull requests may eat into your own bandwidth and slow down your network, as well as lead to your being throttled by the server that hosts the original registry. Have Better Control and Enjoy Better Security By using Container Registry, you avoid putting all eggs in one basket: fetching all your images from one place. The opposite situation may make you subject to outages and other failures. Overcome Outages and Air Gaps An outage means that you are left without Internet access. But sometimes your access is restricted permanently. To overcome this, you can use proxy cache: it will access the canonical repository for you and supply you with the images you need. Your own machine remains disconnected from vulnerable public networks. Important Prerequisites Project admins cannot create proxy projects. You have to be a system admin. Apart from this, you will need to create an endpoint as explained here before. This section also provides information about supported third-party solutions. Create a New Proxy Cache Project In the navigation, click on Projects and then on + New Project. In the open dialogue window, use the Proxy Cache slider to make this project a proxy cache. Select the endpoint from the dropdown. To Make Your Proxy Cache Project Work You are just one more step away from using your new proxy cache. Edit your docker pull commands: replace canonical registry and project with the proxy project. Optionally, re-configure your pod manifests in a similar manner. The last two actions are necessary to pull images from the proxy and not directly from the canonical registry. WARNING Remember that proxy cache projects are only for pulling images. By granting users access to a proxy cache project, you automatically grant them access to the canonical registry, and they can pull any images from there. Retention Rules for Proxy-Cached Images Contrary to other solutions, Container Registry won\u0026rsquo;t create any retention rules for your proxy cache projects automatically. It means that not only the latest but all images will be kept. If you want unused images to be deleted from time to time, you can create retention rules as described here.","date":"2021-09-30T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/proxy-cache-projects/","objectID":"7215fd4df4997a88164f9a8156bf73ba_0","order":0,"tags":null,"title":"Proxy Cache Projects"},{"category":"","content":"","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/","objectID":"4cdd37113783e47641dd300543c94e1b_0","order":0,"tags":null,"title":"Container Registry Knowledge Base"},{"category":"User Guides","content":"Table of Contents The current chapter contains instructions for specific workflows, best practices, tips and tricks, and other useful information. OIDC Configuration for Google Workspaces OIDC configuration for Azure AD\u0026quot;","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-guide/","objectID":"ecf7e357d2a131135219db95eddda49c_0","order":0,"tags":null,"title":"User Guides"},{"category":"Python API Client","content":"harbor_client.ArtifactApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description add_label POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels Add label to artifact copy_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts Copy artifact create_tag POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags Create tag delete_artifact DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Delete the specific artifact delete_tag DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name} Delete tag get_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition} Get the addition of the specific artifact get_artifact GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Get the specific artifact get_vulnerabilities_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities Get the vulnerabilities addition of the specific artifact list_accessories GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/accessories List accessories list_artifacts GET /projects/{project_name}/repositories/{repository_name}/artifacts List artifacts list_tags GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags List tags remove_label DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels/{label_id} Remove label from artifact add_label Signature add_label(project_name: str, repository_name: str, reference: str, label: Label, x_request_id: Optional[str])-\u0026gt; None Add label to artifact Add label to the specified artiact. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag label = harbor_client.Label() # Label | The label that added to the artifact. Only the ID property is needed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Add label to artifact api_instance.add_label(project_name, repository_name, reference, label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;add_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag label Label The label that added to the artifact. Only the ID property is needed. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] copy_artifact Signature copy_artifact(project_name: str, repository_name: str, _from: str, x_request_id: Optional[str])-\u0026gt; None Copy artifact Copy the artifact specified in the \u0026quot;from\u0026quot; parameter to the repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb _from = \u0026#39;_from_example\u0026#39; # str | The artifact from which the new artifact is copied from, the format should be \\\u0026#34;project/repository:tag\\\u0026#34; or \\\u0026#34;project/repository@digest\\\u0026#34;. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Copy artifact api_instance.copy_artifact(project_name, repository_name, _from, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;copy_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb _from str The artifact from which the new artifact is copied from, the format should be \u0026amp;quot;project/repository:tag\u0026amp;quot; or \u0026amp;quot;project/repository@digest\u0026amp;quot;. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] create_tag Signature create_tag(project_name: str, repository_name: str, reference: str, tag: Tag, x_request_id: Optional[str])-\u0026gt; None Create tag Create a tag for the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag tag = harbor_client.Tag() # Tag | The JSON object of tag. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create tag api_instance.create_tag(project_name, repository_name, reference, tag, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;create_tag: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag tag Tag The JSON object of tag. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_artifact Signature delete_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Delete the specific artifact Delete the artifact specified by the reference under the project and repository. The reference can be digest or tag Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific artifact api_instance.delete_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;delete_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_0","order":0,"tags":null,"title":"ArtifactApi"},{"category":"Python API Client","content":"repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_tag Signature delete_tag(project_name: str, repository_name: str, reference: str, tag_name: str, x_request_id: Optional[str])-\u0026gt; None Delete tag Delete the tag of the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag tag_name = \u0026#39;tag_name_example\u0026#39; # str | The name of the tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete tag api_instance.delete_tag(project_name, repository_name, reference, tag_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;delete_tag: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag tag_name str The name of the tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_addition Signature get_addition(project_name: str, repository_name: str, reference: str, addition: str, x_request_id: Optional[str])-\u0026gt; str Get the addition of the specific artifact Get the addition of the artifact specified by the reference under the project and repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag addition = \u0026#39;addition_example\u0026#39; # str | The type of addition. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the addition of the specific artifact api_response = api_instance.get_addition(project_name, repository_name, reference, addition, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_addition: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag addition str The type of addition. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_artifact Signature get_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], x_accept_vulnerabilities: Optional[str], with_tag: Optional[bool], with_label: Optional[bool], with_scan_overview: Optional[bool], with_accessory: Optional[bool], with_signature: Optional[bool], with_immutable_status: Optional[bool])-\u0026gt; Artifact Get the specific artifact Get the artifact specified by the reference under the project and repository. The reference can be digest or tag. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) with_tag = true # bool | Specify whether the tags are inclued inside the returning artifacts (optional) (default to true) with_label = false # bool | Specify whether the labels are inclued inside the returning artifacts (optional) (default to false) with_scan_overview = false # bool | Specify whether the scan overview is inclued inside the returning artifacts (optional) (default to false) with_accessory = false # bool | Specify whether the accessories are included of the returning artifacts. (optional) (default to false) with_signature = false # bool | Specify whether the signature is inclued inside the returning artifacts (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is inclued inside the tags of the returning artifacts. (optional) (default to false) try: # Get the specific artifact api_response = api_instance.get_artifact(project_name, repository_name, reference, x_request_id=x_request_id, page=page, page_size=page_size, x_accept_vulnerabilities=x_accept_vulnerabilities, with_tag=with_tag, with_label=with_label, with_scan_overview=with_scan_overview, with_accessory=with_accessory, with_signature=with_signature, with_immutable_status=with_immutable_status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] page int The page number","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_1","order":1,"tags":null,"title":"ArtifactApi"},{"category":"Python API Client","content":"[optional] [default to 1] page_size int The size of per page [optional] [default to 10] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] with_tag bool Specify whether the tags are inclued inside the returning artifacts [optional] [default to true] with_label bool Specify whether the labels are inclued inside the returning artifacts [optional] [default to false] with_scan_overview bool Specify whether the scan overview is inclued inside the returning artifacts [optional] [default to false] with_accessory bool Specify whether the accessories are included of the returning artifacts. [optional] [default to false] with_signature bool Specify whether the signature is inclued inside the returning artifacts [optional] [default to false] with_immutable_status bool Specify whether the immutable status is inclued inside the tags of the returning artifacts. [optional] [default to false] Return type Artifact Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_vulnerabilities_addition Signature get_vulnerabilities_addition(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], x_accept_vulnerabilities: Optional[str])-\u0026gt; str Get the vulnerabilities addition of the specific artifact Get the vulnerabilities addition of the artifact specified by the reference under the project and repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) try: # Get the vulnerabilities addition of the specific artifact api_response = api_instance.get_vulnerabilities_addition(project_name, repository_name, reference, x_request_id=x_request_id, x_accept_vulnerabilities=x_accept_vulnerabilities) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_vulnerabilities_addition: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_accessories Signature list_accessories(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Accessory] List accessories List accessories of the specific artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List accessories api_response = api_instance.list_accessories(project_name, repository_name, reference, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_accessories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Accessory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_artifacts Signature list_artifacts(project_name: str, repository_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int],","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_2","order":2,"tags":null,"title":"ArtifactApi"},{"category":"Python API Client","content":"page_size: Optional[int], x_accept_vulnerabilities: Optional[str], with_tag: Optional[bool], with_label: Optional[bool], with_scan_overview: Optional[bool], with_signature: Optional[bool], with_immutable_status: Optional[bool], with_accessory: Optional[bool])-\u0026gt; list[Artifact] List artifacts List artifacts under the specific project and repository. Except the basic properties, the other supported queries in \u0026quot;q\u0026quot; includes \u0026quot;tags=*\u0026quot; to list only tagged artifacts, \u0026quot;tags=nil\u0026quot; to list only untagged artifacts, \u0026quot;tags=~v\u0026quot; to list artifacts whose tag fuzzy matches \u0026quot;v\u0026quot;, \u0026quot;tags=v\u0026quot; to list artifact whose tag exactly matches \u0026quot;v\u0026quot;, \u0026quot;labels=(id1, id2)\u0026quot; to list artifacts that both labels with id1 and id2 are added to Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) with_tag = true # bool | Specify whether the tags are included inside the returning artifacts (optional) (default to true) with_label = false # bool | Specify whether the labels are included inside the returning artifacts (optional) (default to false) with_scan_overview = false # bool | Specify whether the scan overview is included inside the returning artifacts (optional) (default to false) with_signature = false # bool | Specify whether the signature is included inside the tags of the returning artifacts. Only works when setting \\\u0026#34;with_tag=true\\\u0026#34; (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is included inside the tags of the returning artifacts. Only works when setting \\\u0026#34;with_immutable_status=true\\\u0026#34; (optional) (default to false) with_accessory = false # bool | Specify whether the accessories are included of the returning artifacts. Only works when setting \\\u0026#34;with_accessory=true\\\u0026#34; (optional) (default to false) try: # List artifacts api_response = api_instance.list_artifacts(project_name, repository_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, x_accept_vulnerabilities=x_accept_vulnerabilities, with_tag=with_tag, with_label=with_label, with_scan_overview=with_scan_overview, with_signature=with_signature, with_immutable_status=with_immutable_status, with_accessory=with_accessory) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_artifacts: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] with_tag bool Specify whether the tags are included inside the returning artifacts [optional] [default to true] with_label bool Specify whether the labels are included inside the returning artifacts [optional] [default to false] with_scan_overview bool Specify whether the scan overview is included inside the returning artifacts [optional] [default to false] with_signature bool Specify whether the signature is included inside the tags of the returning artifacts. Only works when setting \u0026amp;quot;with_tag=true\u0026amp;quot; [optional] [default to false] with_immutable_status bool Specify whether the immutable status is included inside the tags of the returning artifacts. Only works when setting \u0026amp;quot;with_immutable_status=true\u0026amp;quot; [optional] [default to false] with_accessory bool Specify whether the accessories are included of the returning artifacts. Only works when setting \u0026amp;quot;with_accessory=true\u0026amp;quot; [optional] [default to false] Return type list[Artifact] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_tags Signature list_tags(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], with_signature: Optional[bool], with_immutable_status: Optional[bool])-\u0026gt; list[Tag] List tags List tags of the specific artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_3","order":3,"tags":null,"title":"ArtifactApi"},{"category":"Python API Client","content":"the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) with_signature = false # bool | Specify whether the signature is included inside the returning tags (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is included inside the returning tags (optional) (default to false) try: # List tags api_response = api_instance.list_tags(project_name, repository_name, reference, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, with_signature=with_signature, with_immutable_status=with_immutable_status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_tags: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] with_signature bool Specify whether the signature is included inside the returning tags [optional] [default to false] with_immutable_status bool Specify whether the immutable status is included inside the returning tags [optional] [default to false] Return type list[Tag] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] remove_label Signature remove_label(project_name: str, repository_name: str, reference: str, label_id: int, x_request_id: Optional[str])-\u0026gt; None Remove label from artifact Remove the label from the specified artiact. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag label_id = 789 # int | The ID of the label that removed from the artifact. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Remove label from artifact api_instance.remove_label(project_name, repository_name, reference, label_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;remove_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag label_id int The ID of the label that removed from the artifact. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_4","order":4,"tags":null,"title":"ArtifactApi"},{"category":"Python API Client","content":"harbor_client.AuditlogApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description list_audit_logs GET /audit-logs Get recent logs of the projects which the user is a member of list_audit_logs Signature list_audit_logs(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[AuditLog] Get recent logs of the projects which the user is a member of This endpoint let user see the recent operation logs of the projects which he is member of Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.AuditlogApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get recent logs of the projects which the user is a member of api_response = api_instance.list_audit_logs(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling AuditlogApi-\u0026gt;list_audit_logs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[AuditLog] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/auditlogapi/","objectID":"267bdb54c4f0041ddf278883802474a8_0","order":0,"tags":null,"title":"AuditlogApi"},{"category":"Python API Client","content":"harbor_client.ConfigureApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_configurations GET /configurations Get system configurations. get_internalconfig GET /internalconfig Get internal configurations. update_configurations PUT /configurations Modify system configurations. get_configurations Signature get_configurations(x_request_id: Optional[str])-\u0026gt; ConfigurationsResponse Get system configurations. This endpoint is for retrieving system configurations that only provides for admin user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get system configurations. api_response = api_instance.get_configurations(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;get_configurations: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ConfigurationsResponse Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_internalconfig Signature get_internalconfig(x_request_id: Optional[str])-\u0026gt; InternalConfigurationsResponse Get internal configurations. This endpoint is for retrieving system configurations that only provides for internal api call. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get internal configurations. api_response = api_instance.get_internalconfig(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;get_internalconfig: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type InternalConfigurationsResponse Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_configurations Signature update_configurations(configurations: Configurations, x_request_id: Optional[str])-\u0026gt; None Modify system configurations. This endpoint is for modifying system configurations that only provides for admin user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) configurations = harbor_client.Configurations() # Configurations | The configuration map can contain a subset of the attributes of the schema, which are to be updated. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Modify system configurations. api_instance.update_configurations(configurations, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;update_configurations: %s\\n\u0026#34; % e) Parameters Name Type Description Notes configurations Configurations The configuration map can contain a subset of the attributes of the schema, which are to be updated. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/configureapi/","objectID":"02fab2b818fdf1807d1152605d97248e_0","order":0,"tags":null,"title":"ConfigureApi"},{"category":"Python API Client","content":"harbor_client.GcApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_gc_schedule POST /system/gc/schedule Create a gc schedule. get_gc GET /system/gc/{gc_id} Get gc status. get_gc_history GET /system/gc Get gc results. get_gc_log GET /system/gc/{gc_id}/log Get gc job log. get_gc_schedule GET /system/gc/schedule Get gc's schedule. stop_gc PUT /system/gc/{gc_id} Stop the specific GC execution update_gc_schedule PUT /system/gc/schedule Update gc's schedule. create_gc_schedule Signature create_gc_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a gc schedule. This endpoint is for update gc schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates of gc\u0026#39;s schedule. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a gc schedule. api_instance.create_gc_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;create_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates of gc's schedule. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc Signature get_gc(gc_id: int, x_request_id: Optional[str])-\u0026gt; GCHistory Get gc status. This endpoint let user get gc status filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc status. api_response = api_instance.get_gc(gc_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type GCHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc_history Signature get_gc_history(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[GCHistory] Get gc results. This endpoint let user get gc execution history. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get gc results. api_response = api_instance.get_gc_history(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_history: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[GCHistory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc_log Signature get_gc_log(gc_id: int, x_request_id: Optional[str])-\u0026gt; str Get gc job log. This endpoint let user get gc job logs filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc job log. api_response = api_instance.get_gc_log(gc_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_gc_schedule Signature get_gc_schedule(x_request_id: Optional[str])-\u0026gt; GCHistory Get gc\u0026rsquo;s schedule. This endpoint is for get schedule of gc job. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc\u0026#39;s schedule. api_response = api_instance.get_gc_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type GCHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_gc Signature stop_gc(gc_id: int, x_request_id: Optional[str])-\u0026gt;","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/gcapi/","objectID":"fd2251680c4fbd99a652d2f0247e42a7_0","order":0,"tags":null,"title":"GcApi"},{"category":"Python API Client","content":"None Stop the specific GC execution Stop the GC execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific GC execution api_instance.stop_gc(gc_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;stop_gc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_gc_schedule Signature update_gc_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update gc\u0026rsquo;s schedule. This endpoint is for update gc schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates of gc\u0026#39;s schedule. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update gc\u0026#39;s schedule. api_instance.update_gc_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;update_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates of gc's schedule. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/gcapi/","objectID":"fd2251680c4fbd99a652d2f0247e42a7_1","order":1,"tags":null,"title":"GcApi"},{"category":"Python API Client","content":"harbor_client.HealthApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_health GET /health Check the status of Harbor components get_health Signature get_health(x_request_id: Optional[str])-\u0026gt; OverallHealthStatus Check the status of Harbor components Check the status of Harbor components Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.HealthApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check the status of Harbor components api_response = api_instance.get_health(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling HealthApi-\u0026gt;get_health: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type OverallHealthStatus Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/healthapi/","objectID":"2e72886ac549d93b8535f6f2c7e1240b_0","order":0,"tags":null,"title":"HealthApi"},{"category":"Python API Client","content":"harbor_client.IconApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_icon GET /icons/{digest} Get artifact icon get_icon Signature get_icon(digest: str, x_request_id: Optional[str])-\u0026gt; Icon Get artifact icon Get the artifact icon with the specified digest. As the original icon image is resized and encoded before returning, the parameter \u0026quot;digest\u0026quot; in the path doesn\u0026rsquo;t match the hash of the returned content Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.IconApi(harbor_client.ApiClient(configuration)) digest = \u0026#39;digest_example\u0026#39; # str | The digest of the resource x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get artifact icon api_response = api_instance.get_icon(digest, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling IconApi-\u0026gt;get_icon: %s\\n\u0026#34; % e) Parameters Name Type Description Notes digest str The digest of the resource x_request_id str An unique ID for the request [optional] Return type Icon Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/iconapi/","objectID":"f7349b3dbfb37e45362dad2bad5ab448_0","order":0,"tags":null,"title":"IconApi"},{"category":"Python API Client","content":"harbor_client.ImmutableApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_immu_rule POST /projects/{project_name_or_id}/immutabletagrules Add an immutable tag rule to current project delete_immu_rule DELETE /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Delete the immutable tag rule. list_immu_rules GET /projects/{project_name_or_id}/immutabletagrules List all immutable tag rules of current project update_immu_rule PUT /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Update the immutable tag rule or enable or disable the rule create_immu_rule Signature create_immu_rule(project_name_or_id: str, immutable_rule: ImmutableRule, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Add an immutable tag rule to current project This endpoint add an immutable tag rule to the project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule = harbor_client.ImmutableRule() # ImmutableRule | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Add an immutable tag rule to current project api_instance.create_immu_rule(project_name_or_id, immutable_rule, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;create_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule ImmutableRule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_immu_rule Signature delete_immu_rule(project_name_or_id: str, immutable_rule_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete the immutable tag rule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule_id = 789 # int | The ID of the immutable rule x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete the immutable tag rule. api_instance.delete_immu_rule(project_name_or_id, immutable_rule_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;delete_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule_id int The ID of the immutable rule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_immu_rules Signature list_immu_rules(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[ImmutableRule] List all immutable tag rules of current project This endpoint returns the immutable tag rules of a project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List all immutable tag rules of current project api_response = api_instance.list_immu_rules(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;list_immu_rules: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool The flag to indicate whether the parameter which supports both name and id in the path is the name of the resource. When","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/immutableapi/","objectID":"012043812345d15e1c2f50ba6cc85c16_0","order":0,"tags":null,"title":"ImmutableApi"},{"category":"Python API Client","content":"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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[ImmutableRule] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_immu_rule Signature update_immu_rule(project_name_or_id: str, immutable_rule_id: int, immutable_rule: ImmutableRule, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update the immutable tag rule or enable or disable the rule Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule_id = 789 # int | The ID of the immutable rule immutable_rule = harbor_client.ImmutableRule() # ImmutableRule | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update the immutable tag rule or enable or disable the rule api_instance.update_immu_rule(project_name_or_id, immutable_rule_id, immutable_rule, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;update_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule_id int The ID of the immutable rule immutable_rule ImmutableRule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/immutableapi/","objectID":"012043812345d15e1c2f50ba6cc85c16_1","order":1,"tags":null,"title":"ImmutableApi"},{"category":"Python API Client","content":"harbor_client.JobserviceApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description action_pending_jobs PUT /jobservice/queues/{job_type} stop and clean, pause, resume pending jobs in the queue get_worker_pools GET /jobservice/pools Get worker pools get_workers GET /jobservice/pools/{pool_id}/workers Get workers list_job_queues GET /jobservice/queues list job queues stop_running_job PUT /jobservice/jobs/{job_id} Stop running job action_pending_jobs Signature action_pending_jobs(job_type: str, action_request: ActionRequest, x_request_id: Optional[str])-\u0026gt; None stop and clean, pause, resume pending jobs in the queue stop and clean, pause, resume pending jobs in the queue Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) job_type = \u0026#39;job_type_example\u0026#39; # str | The type of the job. \u0026#39;all\u0026#39; stands for all job types action_request = harbor_client.ActionRequest() # ActionRequest | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # stop and clean, pause, resume pending jobs in the queue api_instance.action_pending_jobs(job_type, action_request, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;action_pending_jobs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_type str The type of the job. 'all' stands for all job types action_request ActionRequest x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_worker_pools Signature get_worker_pools(x_request_id: Optional[str])-\u0026gt; list[WorkerPool] Get worker pools Get worker pools Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get worker pools api_response = api_instance.get_worker_pools(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;get_worker_pools: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[WorkerPool] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_workers Signature get_workers(pool_id: str, x_request_id: Optional[str])-\u0026gt; list[Worker] Get workers Get workers in current pool Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) pool_id = \u0026#39;pool_id_example\u0026#39; # str | The name of the pool. \u0026#39;all\u0026#39; stands for all pools x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get workers api_response = api_instance.get_workers(pool_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;get_workers: %s\\n\u0026#34; % e) Parameters Name Type Description Notes pool_id str The name of the pool. 'all' stands for all pools x_request_id str An unique ID for the request [optional] Return type list[Worker] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_job_queues Signature list_job_queues(x_request_id: Optional[str])-\u0026gt; list[JobQueue] list job queues list job queue Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # list job queues api_response = api_instance.list_job_queues(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;list_job_queues: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[JobQueue] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_running_job Signature stop_running_job(job_id: str, x_request_id: Optional[str])-\u0026gt; None Stop running job Stop running job Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) job_id = \u0026#39;job_id_example\u0026#39; # str | The id of the job. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop running job api_instance.stop_running_job(job_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;stop_running_job: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_id str The id of the job. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/jobserviceapi/","objectID":"1aacaeb9e9fccded81066f8ca114371d_0","order":0,"tags":null,"title":"JobserviceApi"},{"category":"Python API Client","content":"harbor_client.LabelApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_label POST /labels Post creates a label delete_label DELETE /labels/{label_id} Delete the label specified by ID. get_label_by_id GET /labels/{label_id} Get the label specified by ID. list_labels GET /labels List labels according to the query strings. update_label PUT /labels/{label_id} Update the label properties. create_label Signature create_label(label: Label, x_request_id: Optional[str])-\u0026gt; None Post creates a label This endpoint let user creates a label. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label = harbor_client.Label() # Label | The json object of label. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Post creates a label api_instance.create_label(label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;create_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label Label The json object of label. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_label Signature delete_label(label_id: int, x_request_id: Optional[str])-\u0026gt; None Delete the label specified by ID. Delete the label specified by ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the label specified by ID. api_instance.delete_label(label_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;delete_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_label_by_id Signature get_label_by_id(label_id: int, x_request_id: Optional[str])-\u0026gt; Label Get the label specified by ID. This endpoint let user get the label by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the label specified by ID. api_response = api_instance.get_label_by_id(label_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;get_label_by_id: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID x_request_id str An unique ID for the request [optional] Return type Label Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_labels Signature list_labels(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str], scope: Optional[str], project_id: Optional[int])-\u0026gt; list[Label] List labels according to the query strings. This endpoint let user list labels by name, scope and project_id Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | The label name. (optional) scope = \u0026#39;scope_example\u0026#39; # str | The label scope. Valid values are g and p. g for global labels and p for project labels. (optional) project_id = 789 # int | Relevant project ID, required when scope is p. (optional) try: # List labels according to the query strings. api_response = api_instance.list_labels(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name, scope=scope, project_id=project_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;list_labels: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str The label name. [optional] scope str The label scope. Valid values are g and p. g for global labels and p for project labels. [optional] project_id int Relevant project ID, required when scope is p. [optional] Return type list[Label] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_label Signature update_label(label_id: int, label: Label, x_request_id: Optional[str])-\u0026gt; None Update the label properties. This endpoint let user update label properties. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/labelapi/","objectID":"c1ce35ef96f7609f9840392a46e09f84_0","order":0,"tags":null,"title":"LabelApi"},{"category":"Python API Client","content":"import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID label = harbor_client.Label() # Label | The updated label json object. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the label properties. api_instance.update_label(label_id, label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;update_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID label Label The updated label json object. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/labelapi/","objectID":"c1ce35ef96f7609f9840392a46e09f84_1","order":1,"tags":null,"title":"LabelApi"},{"category":"Python API Client","content":"harbor_client.LdapApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description import_ldap_user POST /ldap/users/import Import selected available ldap users. ping_ldap POST /ldap/ping Ping available ldap service. search_ldap_group GET /ldap/groups/search Search available ldap groups. search_ldap_user GET /ldap/users/search Search available ldap users. import_ldap_user Signature import_ldap_user(uid_list: LdapImportUsers, x_request_id: Optional[str])-\u0026gt; None Import selected available ldap users. 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) uid_list = harbor_client.LdapImportUsers() # LdapImportUsers | The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Import selected available ldap users. api_instance.import_ldap_user(uid_list, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;import_ldap_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes uid_list LdapImportUsers The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_ldap Signature ping_ldap(x_request_id: Optional[str], ldapconf: Optional[LdapConf])-\u0026gt; LdapPingResult Ping available ldap service. This endpoint ping the available ldap service for test related configuration parameters. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) ldapconf = harbor_client.LdapConf() # LdapConf | ldap configuration. support input ldap service configuration. If it is a empty request, will load current configuration from the system. (optional) try: # Ping available ldap service. api_response = api_instance.ping_ldap(x_request_id=x_request_id, ldapconf=ldapconf) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;ping_ldap: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] ldapconf LdapConf ldap configuration. support input ldap service configuration. If it is a empty request, will load current configuration from the system. [optional] Return type LdapPingResult Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_ldap_group Signature search_ldap_group(x_request_id: Optional[str], groupname: Optional[str], groupdn: Optional[str])-\u0026gt; list[UserGroup] Search available ldap groups. This endpoint searches the available ldap groups based on related configuration parameters. support to search by groupname or groupdn. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) groupname = \u0026#39;groupname_example\u0026#39; # str | Ldap group name (optional) groupdn = \u0026#39;groupdn_example\u0026#39; # str | The LDAP group DN (optional) try: # Search available ldap groups. api_response = api_instance.search_ldap_group(x_request_id=x_request_id, groupname=groupname, groupdn=groupdn) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;search_ldap_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] groupname str Ldap group name [optional] groupdn str The LDAP group DN [optional] Return type list[UserGroup] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_ldap_user Signature search_ldap_user(x_request_id: Optional[str], username: Optional[str])-\u0026gt; list[LdapUser] Search available ldap users. 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) username = \u0026#39;username_example\u0026#39; # str | Registered user ID (optional) try: # Search available ldap users. api_response = api_instance.search_ldap_user(x_request_id=x_request_id, username=username) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;search_ldap_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] username str Registered user ID [optional] Return type list[LdapUser] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/ldapapi/","objectID":"6e6933296b3244d0b972716d521ced46_0","order":0,"tags":null,"title":"LdapApi"},{"category":"Python API Client","content":"harbor_client.MemberApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_project_member POST /projects/{project_name_or_id}/members Create project member delete_project_member DELETE /projects/{project_name_or_id}/members/{mid} Delete project member get_project_member GET /projects/{project_name_or_id}/members/{mid} Get the project member information list_project_members GET /projects/{project_name_or_id}/members Get all project member information update_project_member PUT /projects/{project_name_or_id}/members/{mid} Update project member create_project_member Signature create_project_member(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], project_member: Optional[ProjectMember])-\u0026gt; None Create project member 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\u0026rsquo;s id, If does not exist, it will SearchAndOnBoard the group. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) project_member = harbor_client.ProjectMember() # ProjectMember | (optional) try: # Create project member api_instance.create_project_member(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, project_member=project_member) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;create_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] project_member ProjectMember [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project_member Signature delete_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete project member Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | Member ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete project member api_instance.delete_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;delete_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int Member ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_member Signature get_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectMemberEntity Get the project member information Get the project member information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | The member ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the project member information api_response = api_instance.get_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;get_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int The member ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectMemberEntity Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_project_members Signature list_project_members(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], entityname: Optional[str])-\u0026gt; list[ProjectMemberEntity] Get all project member information Get all project member information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/memberapi/","objectID":"e768ad0036eb29bf3a703a3f16a3b72e_0","order":0,"tags":null,"title":"MemberApi"},{"category":"Python API Client","content":"= \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) entityname = \u0026#39;entityname_example\u0026#39; # str | The entity name to search. (optional) try: # Get all project member information api_response = api_instance.list_project_members(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, entityname=entityname) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;list_project_members: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] entityname str The entity name to search. [optional] Return type list[ProjectMemberEntity] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project_member Signature update_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool], role: Optional[RoleRequest])-\u0026gt; None Update project member Update project member relationship Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | Member ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) role = harbor_client.RoleRequest() # RoleRequest | (optional) try: # Update project member api_instance.update_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, role=role) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;update_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int Member ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] role RoleRequest [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/memberapi/","objectID":"e768ad0036eb29bf3a703a3f16a3b72e_1","order":1,"tags":null,"title":"MemberApi"},{"category":"Python API Client","content":"harbor_client.OidcApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description ping_oidc POST /system/oidc/ping Test the OIDC endpoint. ping_oidc Signature ping_oidc(endpoint: Endpoint, x_request_id: Optional[str])-\u0026gt; None Test the OIDC endpoint. Test the OIDC endpoint, the setting of the endpoint is provided in the request. This API can only be called by system admin. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.OidcApi(harbor_client.ApiClient(configuration)) endpoint = harbor_client.Endpoint() # Endpoint | Request body for OIDC endpoint to be tested. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Test the OIDC endpoint. api_instance.ping_oidc(endpoint, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling OidcApi-\u0026gt;ping_oidc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes endpoint Endpoint Request body for OIDC endpoint to be tested. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/oidcapi/","objectID":"2c952976088fb644f7f8cf4935aadcd1_0","order":0,"tags":null,"title":"OidcApi"},{"category":"Python API Client","content":"harbor_client.PingApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_ping GET /ping Ping Harbor to check if it's alive. get_ping Signature get_ping(x_request_id: Optional[str])-\u0026gt; str Ping Harbor to check if it\u0026rsquo;s alive. This API simply replies a pong to indicate the process to handle API is up, disregarding the health status of dependent components. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PingApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Ping Harbor to check if it\u0026#39;s alive. api_response = api_instance.get_ping(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PingApi-\u0026gt;get_ping: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/pingapi/","objectID":"766d43a9667acb792e795b8ad8e4a297_0","order":0,"tags":null,"title":"PingApi"},{"category":"Python API Client","content":"harbor_client.PreheatApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_instance POST /p2p/preheat/instances Create p2p provider instances create_policy POST /projects/{project_name}/preheat/policies Create a preheat policy under a project delete_instance DELETE /p2p/preheat/instances/{preheat_instance_name} Delete the specified P2P provider instance delete_policy DELETE /projects/{project_name}/preheat/policies/{preheat_policy_name} Delete a preheat policy get_execution GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Get a execution detail by id get_instance GET /p2p/preheat/instances/{preheat_instance_name} Get a P2P provider instance get_policy GET /projects/{project_name}/preheat/policies/{preheat_policy_name} Get a preheat policy get_preheat_log GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs Get the log text stream of the specified task for the given execution list_executions GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions List executions for the given policy list_instances GET /p2p/preheat/instances List P2P provider instances list_policies GET /projects/{project_name}/preheat/policies List preheat policies list_providers GET /p2p/preheat/providers List P2P providers list_providers_under_project GET /projects/{project_name}/preheat/providers Get all providers at project level list_tasks GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks List all the related tasks for the given execution manual_preheat POST /projects/{project_name}/preheat/policies/{preheat_policy_name} Manual preheat ping_instances POST /p2p/preheat/instances/ping Ping status of a instance. stop_execution PATCH /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Stop a execution update_instance PUT /p2p/preheat/instances/{preheat_instance_name} Update the specified P2P provider instance update_policy PUT /projects/{project_name}/preheat/policies/{preheat_policy_name} Update preheat policy create_instance Signature create_instance(instance: Instance, x_request_id: Optional[str])-\u0026gt; None Create p2p provider instances Create p2p provider instances Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) instance = harbor_client.Instance() # Instance | The JSON object of instance. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create p2p provider instances api_instance.create_instance(instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;create_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes instance Instance The JSON object of instance. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] create_policy Signature create_policy(project_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Create a preheat policy under a project Create a preheat policy under a project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a preheat policy under a project api_instance.create_policy(project_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;create_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_instance Signature delete_instance(preheat_instance_name: str, x_request_id: Optional[str])-\u0026gt; None Delete the specified P2P provider instance Delete the specified P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specified P2P provider instance api_instance.delete_instance(preheat_instance_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;delete_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_policy Signature delete_policy(project_name: str, preheat_policy_name: str, x_request_id: Optional[str])-\u0026gt; None Delete a preheat policy Delete a preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a preheat policy api_instance.delete_policy(project_name, preheat_policy_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;delete_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_execution Signature get_execution(project_name: str, preheat_policy_name: str, execution_id: int, x_request_id: Optional[str])-\u0026gt; Execution Get a execution detail by id Get a execution detail by id Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a execution detail by id api_response = api_instance.get_execution(project_name, preheat_policy_name, execution_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID x_request_id str An unique ID for the request [optional] Return type Execution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_instance Signature get_instance(preheat_instance_name: str, x_request_id: Optional[str])-\u0026gt; Instance Get a P2P provider instance Get a P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; #","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_0","order":0,"tags":null,"title":"PreheatApi"},{"category":"Python API Client","content":"create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a P2P provider instance api_response = api_instance.get_instance(preheat_instance_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name x_request_id str An unique ID for the request [optional] Return type Instance Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_policy Signature get_policy(project_name: str, preheat_policy_name: str, x_request_id: Optional[str])-\u0026gt; PreheatPolicy Get a preheat policy Get a preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a preheat policy api_response = api_instance.get_policy(project_name, preheat_policy_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] Return type PreheatPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_preheat_log Signature get_preheat_log(project_name: str, preheat_policy_name: str, execution_id: int, task_id: int, x_request_id: Optional[str])-\u0026gt; str Get the log text stream of the specified task for the given execution Get the log text stream of the specified task for the given execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID task_id = 56 # int | Task ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log text stream of the specified task for the given execution api_response = api_instance.get_preheat_log(project_name, preheat_policy_name, execution_id, task_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_preheat_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID task_id int Task ID x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] list_executions Signature list_executions(project_name: str, preheat_policy_name: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Execution] List executions for the given policy List executions for the given policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List executions for the given policy api_response = api_instance.list_executions(project_name, preheat_policy_name, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Execution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_instances Signature list_instances(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Instance] List P2P provider instances List P2P provider instances Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_1","order":1,"tags":null,"title":"PreheatApi"},{"category":"Python API Client","content":"match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List P2P provider instances api_response = api_instance.list_instances(x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_instances: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Instance] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_policies Signature list_policies(project_name: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[PreheatPolicy] List preheat policies List preheat policies Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List preheat policies api_response = api_instance.list_policies(project_name, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_policies: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[PreheatPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_providers Signature list_providers(x_request_id: Optional[str])-\u0026gt; list[Metadata] List P2P providers List P2P providers Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List P2P providers api_response = api_instance.list_providers(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_providers: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[Metadata] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_providers_under_project Signature list_providers_under_project(project_name: str, x_request_id: Optional[str])-\u0026gt; list[ProviderUnderProject] Get all providers at project level Get all providers at project level Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get all providers at project level api_response = api_instance.list_providers_under_project(project_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_providers_under_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] Return type list[ProviderUnderProject] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_tasks Signature list_tasks(project_name: str, preheat_policy_name: str, execution_id: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Task] List all the related tasks for the given execution List all the related tasks for the given execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name =","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_2","order":2,"tags":null,"title":"PreheatApi"},{"category":"Python API Client","content":"\u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List all the related tasks for the given execution api_response = api_instance.list_tasks(project_name, preheat_policy_name, execution_id, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Task] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] manual_preheat Signature manual_preheat(project_name: str, preheat_policy_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Manual preheat Manual preheat Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Manual preheat api_instance.manual_preheat(project_name, preheat_policy_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;manual_preheat: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_instances Signature ping_instances(instance: Instance, x_request_id: Optional[str])-\u0026gt; None Ping status of a instance. This endpoint checks status of a instance, the instance can be given by ID or Endpoint URL (together with credential) Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) instance = harbor_client.Instance() # Instance | The JSON object of instance. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Ping status of a instance. api_instance.ping_instances(instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;ping_instances: %s\\n\u0026#34; % e) Parameters Name Type Description Notes instance Instance The JSON object of instance. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_execution Signature stop_execution(project_name: str, preheat_policy_name: str, execution_id: int, execution: Execution, x_request_id: Optional[str])-\u0026gt; None Stop a execution Stop a execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID execution = harbor_client.Execution() # Execution | The data of execution x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop a execution api_instance.stop_execution(project_name, preheat_policy_name, execution_id, execution, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;stop_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID execution Execution The data of execution x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_instance Signature update_instance(preheat_instance_name: str, instance: Instance, x_request_id: Optional[str])-\u0026gt; None Update the specified P2P provider instance Update the specified P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name instance = harbor_client.Instance() # Instance | The instance to update x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the specified P2P provider instance api_instance.update_instance(preheat_instance_name, instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;update_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name instance Instance The instance to update x_request_id str","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_3","order":3,"tags":null,"title":"PreheatApi"},{"category":"Python API Client","content":"An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_policy Signature update_policy(project_name: str, preheat_policy_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Update preheat policy Update preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update preheat policy api_instance.update_policy(project_name, preheat_policy_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;update_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_4","order":4,"tags":null,"title":"PreheatApi"},{"category":"Python API Client","content":"harbor_client.ProjectApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_project POST /projects Create a new project. delete_project DELETE /projects/{project_name_or_id} Delete project by projectID get_logs GET /projects/{project_name}/logs Get recent logs of the projects get_project GET /projects/{project_name_or_id} Return specific project detail information get_project_deletable GET /projects/{project_name_or_id}/_deletable Get the deletable status of the project get_project_summary GET /projects/{project_name_or_id}/summary Get summary of the project. get_scanner_of_project GET /projects/{project_name_or_id}/scanner Get project level scanner head_project HEAD /projects Check if the project name user provided already exists. list_projects GET /projects List projects list_scanner_candidates_of_project GET /projects/{project_name_or_id}/scanner/candidates Get scanner registration candidates for configurating project level scanner set_scanner_of_project PUT /projects/{project_name_or_id}/scanner Configure scanner for the specified project update_project PUT /projects/{project_name_or_id} Update properties for a selected project. create_project Signature create_project(project: ProjectReq, x_request_id: Optional[str], x_resource_name_in_location: Optional[bool])-\u0026gt; None Create a new project. This endpoint is for user to create a new project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project = harbor_client.ProjectReq() # ProjectReq | New created project. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_resource_name_in_location = false # bool | 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. (optional) (default to false) try: # Create a new project. api_instance.create_project(project, x_request_id=x_request_id, x_resource_name_in_location=x_resource_name_in_location) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;create_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project ProjectReq New created project. x_request_id str An unique ID for the request [optional] x_resource_name_in_location bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project Signature delete_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete project by projectID This endpoint is aimed to delete project by project ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete project by projectID api_instance.delete_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;delete_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_logs Signature get_logs(project_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[AuditLog] Get recent logs of the projects Get recent logs of the projects Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get recent logs of the projects api_response = api_instance.get_logs(project_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_logs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[AuditLog] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_0","order":0,"tags":null,"title":"ProjectApi"},{"category":"Python API Client","content":"get_project Signature get_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; Project Return specific project detail information This endpoint returns specific project information by project ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Return specific project detail information api_response = api_instance.get_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type Project Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_deletable Signature get_project_deletable(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectDeletable Get the deletable status of the project Get the deletable status of the project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the deletable status of the project api_response = api_instance.get_project_deletable(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project_deletable: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectDeletable Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_summary Signature get_project_summary(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectSummary Get summary of the project. Get summary of the project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get summary of the project. api_response = api_instance.get_project_summary(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project_summary: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectSummary Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner_of_project Signature get_scanner_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ScannerRegistration Get project level scanner 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project level scanner api_response = api_instance.get_scanner_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_scanner_of_project: %s\\n\u0026#34; % e) Parameters","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_1","order":1,"tags":null,"title":"ProjectApi"},{"category":"Python API Client","content":"Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] head_project Signature head_project(project_name: str, x_request_id: Optional[str])-\u0026gt; None Check if the project name user provided already exists. This endpoint is used to check if the project name provided already exist. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | Project name for checking exists. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check if the project name user provided already exists. api_instance.head_project(project_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;head_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str Project name for checking exists. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_projects Signature list_projects(x_request_id: Optional[str], q: Optional[str], page: Optional[int], page_size: Optional[int], sort: Optional[str], name: Optional[str], public: Optional[bool], owner: Optional[str], with_detail: Optional[bool])-\u0026gt; list[Project] List projects This endpoint returns projects created by Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) name = \u0026#39;name_example\u0026#39; # str | The name of project. (optional) public = true # bool | The project is public or private. (optional) owner = \u0026#39;owner_example\u0026#39; # str | The name of project owner. (optional) with_detail = true # bool | Bool value indicating whether return detailed information of the project (optional) (default to true) try: # List projects api_response = api_instance.list_projects(x_request_id=x_request_id, q=q, page=page, page_size=page_size, sort=sort, name=name, public=public, owner=owner, with_detail=with_detail) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;list_projects: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] name str The name of project. [optional] public bool The project is public or private. [optional] owner str The name of project owner. [optional] with_detail bool Bool value indicating whether return detailed information of the project [optional] [default to true] Return type list[Project] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_scanner_candidates_of_project Signature list_scanner_candidates_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScannerRegistration] Get scanner registration candidates for configurating project level scanner Retrieve the system configured scanner registrations as candidates of setting project level scanner. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_2","order":2,"tags":null,"title":"ProjectApi"},{"category":"Python API Client","content":"order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get scanner registration candidates for configurating project level scanner api_response = api_instance.list_scanner_candidates_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;list_scanner_candidates_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScannerRegistration] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_scanner_of_project Signature set_scanner_of_project(project_name_or_id: str, payload: ProjectScanner, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Configure scanner for the specified project Set one of the system configured scanner registration as the indepndent scanner of the specified project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project payload = harbor_client.ProjectScanner() # ProjectScanner | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Configure scanner for the specified project api_instance.set_scanner_of_project(project_name_or_id, payload, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;set_scanner_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project payload ProjectScanner x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project Signature update_project(project_name_or_id: str, project: ProjectReq, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update properties for a selected project. This endpoint is aimed to update the properties of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project project = harbor_client.ProjectReq() # ProjectReq | Updates of project. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update properties for a selected project. api_instance.update_project(project_name_or_id, project, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;update_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project project ProjectReq Updates of project. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_3","order":3,"tags":null,"title":"ProjectApi"},{"category":"Python API Client","content":"harbor_client.ProjectMetadataApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description add_project_metadatas POST /projects/{project_name_or_id}/metadatas/ Add metadata for the specific project delete_project_metadata DELETE /projects/{project_name_or_id}/metadatas/{meta_name} Delete the specific metadata for the specific project get_project_metadata GET /projects/{project_name_or_id}/metadatas/{meta_name} Get the specific metadata of the specific project list_project_metadatas GET /projects/{project_name_or_id}/metadatas/ Get the metadata of the specific project update_project_metadata PUT /projects/{project_name_or_id}/metadatas/{meta_name} Update the specific metadata for the specific project add_project_metadatas Signature add_project_metadatas(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], metadata: Optional[object])-\u0026gt; None Add metadata for the specific project Add metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) metadata = NULL # object | (optional) try: # Add metadata for the specific project api_instance.add_project_metadatas(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, metadata=metadata) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;add_project_metadatas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] metadata object [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project_metadata Signature delete_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete the specific metadata for the specific project Delete the specific metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete the specific metadata for the specific project api_instance.delete_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;delete_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_metadata Signature get_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; dict(str, str) Get the specific metadata of the specific project Get the specific metadata of the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the specific metadata of the specific project api_response = api_instance.get_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;get_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type dict(str, str) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_project_metadatas Signature list_project_metadatas(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; dict(str, str) Get the metadata of the specific project Get the metadata of the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectmetadataapi/","objectID":"573de4cfb0d9a3947e849e4ad60859bc_0","order":0,"tags":null,"title":"ProjectMetadataApi"},{"category":"Python API Client","content":"= harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the metadata of the specific project api_response = api_instance.list_project_metadatas(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;list_project_metadatas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type dict(str, str) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project_metadata Signature update_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], metadata: Optional[object])-\u0026gt; None Update the specific metadata for the specific project Update the specific metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) metadata = NULL # object | (optional) try: # Update the specific metadata for the specific project api_instance.update_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, metadata=metadata) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;update_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] metadata object [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectmetadataapi/","objectID":"573de4cfb0d9a3947e849e4ad60859bc_1","order":1,"tags":null,"title":"ProjectMetadataApi"},{"category":"Python API Client","content":"harbor_client.PurgeApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_purge_schedule POST /system/purgeaudit/schedule Create a purge job schedule. get_purge_history GET /system/purgeaudit Get purge job results. get_purge_job GET /system/purgeaudit/{purge_id} Get purge job status. get_purge_job_log GET /system/purgeaudit/{purge_id}/log Get purge job log. get_purge_schedule GET /system/purgeaudit/schedule Get purge's schedule. stop_purge PUT /system/purgeaudit/{purge_id} Stop the specific purge audit log execution update_purge_schedule PUT /system/purgeaudit/schedule Update purge job's schedule. create_purge_schedule Signature create_purge_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a purge job schedule. This endpoint is for update purge job schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | The purge job\u0026#39;s schedule, it is a json object. | The sample format is | {\\\u0026#34;parameters\\\u0026#34;:{\\\u0026#34;audit_retention_hour\\\u0026#34;:168,\\\u0026#34;dry_run\\\u0026#34;:true, \\\u0026#34;include_operations\\\u0026#34;:\\\u0026#34;create,delete,pull\\\u0026#34;},\\\u0026#34;schedule\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:\\\u0026#34;Hourly\\\u0026#34;,\\\u0026#34;cron\\\u0026#34;:\\\u0026#34;0 0 * * * *\\\u0026#34;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a purge job schedule. api_instance.create_purge_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;create_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule The purge job's schedule, it is a json object. | The sample format is | {\u0026amp;quot;parameters\u0026amp;quot;:{\u0026amp;quot;audit_retention_hour\u0026amp;quot;:168,\u0026amp;quot;dry_run\u0026amp;quot;:true, \u0026amp;quot;include_operations\u0026amp;quot;:\u0026amp;quot;create,delete,pull\u0026amp;quot;},\u0026amp;quot;schedule\u0026amp;quot;:{\u0026amp;quot;type\u0026amp;quot;:\u0026amp;quot;Hourly\u0026amp;quot;,\u0026amp;quot;cron\u0026amp;quot;:\u0026amp;quot;0 0 * * * *\u0026amp;quot;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_history Signature get_purge_history(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ExecHistory] Get purge job results. get purge job execution history. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get purge job results. api_response = api_instance.get_purge_history(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_history: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ExecHistory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_job Signature get_purge_job(purge_id: int, x_request_id: Optional[str])-\u0026gt; ExecHistory Get purge job status. This endpoint let user get purge job status filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge job status. api_response = api_instance.get_purge_job(purge_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_job: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type ExecHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_job_log Signature get_purge_job_log(purge_id: int, x_request_id: Optional[str])-\u0026gt; str Get purge job log. This endpoint let user get purge job logs filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge job log. api_response = api_instance.get_purge_job_log(purge_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_job_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_purge_schedule Signature get_purge_schedule(x_request_id: Optional[str])-\u0026gt; ExecHistory Get purge\u0026rsquo;s schedule. This endpoint is for get schedule of purge job. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/purgeapi/","objectID":"4e5ab621c38261a2f1e72a77230837ee_0","order":0,"tags":null,"title":"PurgeApi"},{"category":"Python API Client","content":"= harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge\u0026#39;s schedule. api_response = api_instance.get_purge_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ExecHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_purge Signature stop_purge(purge_id: int, x_request_id: Optional[str])-\u0026gt; None Stop the specific purge audit log execution Stop the purge audit log execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific purge audit log execution api_instance.stop_purge(purge_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;stop_purge: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_purge_schedule Signature update_purge_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update purge job\u0026rsquo;s schedule. This endpoint is for update purge job schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | The purge job\u0026#39;s schedule, it is a json object. | The sample format is | {\\\u0026#34;parameters\\\u0026#34;:{\\\u0026#34;audit_retention_hour\\\u0026#34;:168,\\\u0026#34;dry_run\\\u0026#34;:true, \\\u0026#34;include_operations\\\u0026#34;:\\\u0026#34;create,delete,pull\\\u0026#34;},\\\u0026#34;schedule\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:\\\u0026#34;Hourly\\\u0026#34;,\\\u0026#34;cron\\\u0026#34;:\\\u0026#34;0 0 * * * *\\\u0026#34;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update purge job\u0026#39;s schedule. api_instance.update_purge_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;update_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule The purge job's schedule, it is a json object. | The sample format is | {\u0026amp;quot;parameters\u0026amp;quot;:{\u0026amp;quot;audit_retention_hour\u0026amp;quot;:168,\u0026amp;quot;dry_run\u0026amp;quot;:true, \u0026amp;quot;include_operations\u0026amp;quot;:\u0026amp;quot;create,delete,pull\u0026amp;quot;},\u0026amp;quot;schedule\u0026amp;quot;:{\u0026amp;quot;type\u0026amp;quot;:\u0026amp;quot;Hourly\u0026amp;quot;,\u0026amp;quot;cron\u0026amp;quot;:\u0026amp;quot;0 0 * * * *\u0026amp;quot;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/purgeapi/","objectID":"4e5ab621c38261a2f1e72a77230837ee_1","order":1,"tags":null,"title":"PurgeApi"},{"category":"Python API Client","content":"harbor_client.QuotaApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_quota GET /quotas/{id} Get the specified quota list_quotas GET /quotas List quotas update_quota PUT /quotas/{id} Update the specified quota get_quota Signature get_quota(id: int, x_request_id: Optional[str])-\u0026gt; Quota Get the specified quota Get the specified quota Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) id = 56 # int | Quota ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specified quota api_response = api_instance.get_quota(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;get_quota: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Quota ID x_request_id str An unique ID for the request [optional] Return type Quota Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_quotas Signature list_quotas(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], reference: Optional[str], reference_id: Optional[str], sort: Optional[str])-\u0026gt; list[Quota] List quotas List quotas Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) reference = \u0026#39;reference_example\u0026#39; # str | The reference type of quota. (optional) reference_id = \u0026#39;reference_id_example\u0026#39; # str | The reference id of quota. (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort method, valid values include: \u0026#39;hard.resource_name\u0026#39;, \u0026#39;-hard.resource_name\u0026#39;, \u0026#39;used.resource_name\u0026#39;, \u0026#39;-used.resource_name\u0026#39;. Here \u0026#39;-\u0026#39; stands for descending order, resource_name should be the real resource name of the quota. (optional) try: # List quotas api_response = api_instance.list_quotas(x_request_id=x_request_id, page=page, page_size=page_size, reference=reference, reference_id=reference_id, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;list_quotas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] reference str The reference type of quota. [optional] reference_id str The reference id of quota. [optional] sort str 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. [optional] Return type list[Quota] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_quota Signature update_quota(id: int, hard: QuotaUpdateReq, x_request_id: Optional[str])-\u0026gt; None Update the specified quota Update hard limits of the specified quota Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) id = 56 # int | Quota ID hard = harbor_client.QuotaUpdateReq() # QuotaUpdateReq | The new hard limits for the quota x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the specified quota api_instance.update_quota(id, hard, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;update_quota: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Quota ID hard QuotaUpdateReq The new hard limits for the quota x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/quotaapi/","objectID":"4ed0496ef64c48f0e13cc34d07a7071f_0","order":0,"tags":null,"title":"QuotaApi"},{"category":"Python API Client","content":"harbor_client.RegistryApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_registry POST /registries Create a registry delete_registry DELETE /registries/{id} Delete the specific registry get_registry GET /registries/{id} Get the specific registry get_registry_info GET /registries/{id}/info Get the registry info list_registries GET /registries List the registries list_registry_provider_infos GET /replication/adapterinfos List all registered registry provider information list_registry_provider_types GET /replication/adapters List registry adapters ping_registry POST /registries/ping Check status of a registry update_registry PUT /registries/{id} Update the registry create_registry Signature create_registry(registry: Registry, x_request_id: Optional[str])-\u0026gt; None Create a registry Create a registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) registry = harbor_client.Registry() # Registry | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a registry api_instance.create_registry(registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;create_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registry Registry The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_registry Signature delete_registry(id: int, x_request_id: Optional[str])-\u0026gt; None Delete the specific registry Delete the specific registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific registry api_instance.delete_registry(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;delete_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_registry Signature get_registry(id: int, x_request_id: Optional[str])-\u0026gt; Registry Get the specific registry Get the specific registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific registry api_response = api_instance.get_registry(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;get_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type Registry Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_registry_info Signature get_registry_info(id: int, x_request_id: Optional[str])-\u0026gt; RegistryInfo Get the registry info Get the registry info Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the registry info api_response = api_instance.get_registry_info(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;get_registry_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type RegistryInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registries Signature list_registries(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str])-\u0026gt; list[Registry] List the registries List the registries Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | Deprecated, use `q` instead. (optional) try: # List the registries api_response = api_instance.list_registries(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registries: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str Deprecated, use `q` instead. [optional] Return type list[Registry] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registry_provider_infos","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/registryapi/","objectID":"f223008cab6fdffb0c56e8bd7095a0d3_0","order":0,"tags":null,"title":"RegistryApi"},{"category":"Python API Client","content":"Signature list_registry_provider_infos(x_request_id: Optional[str])-\u0026gt; dict(str, RegistryProviderInfo) List all registered registry provider information List all registered registry provider information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List all registered registry provider information api_response = api_instance.list_registry_provider_infos(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registry_provider_infos: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type dict(str, RegistryProviderInfo) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registry_provider_types Signature list_registry_provider_types(x_request_id: Optional[str])-\u0026gt; list[str] List registry adapters List registry adapters Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List registry adapters api_response = api_instance.list_registry_provider_types(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registry_provider_types: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[str] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_registry Signature ping_registry(registry: RegistryPing, x_request_id: Optional[str])-\u0026gt; None Check status of a registry Check status of a registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) registry = harbor_client.RegistryPing() # RegistryPing | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check status of a registry api_instance.ping_registry(registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;ping_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registry RegistryPing The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_registry Signature update_registry(id: int, registry: RegistryUpdate, x_request_id: Optional[str])-\u0026gt; None Update the registry Update the registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | The registry ID registry = harbor_client.RegistryUpdate() # RegistryUpdate | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the registry api_instance.update_registry(id, registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;update_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The registry ID registry RegistryUpdate The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/registryapi/","objectID":"f223008cab6fdffb0c56e8bd7095a0d3_1","order":1,"tags":null,"title":"RegistryApi"},{"category":"Python API Client","content":"harbor_client.ReplicationApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_replication_policy POST /replication/policies Create a replication policy delete_replication_policy DELETE /replication/policies/{id} Delete the specific replication policy get_replication_execution GET /replication/executions/{id} Get the specific replication execution get_replication_log GET /replication/executions/{id}/tasks/{task_id}/log Get the log of the specific replication task get_replication_policy GET /replication/policies/{id} Get the specific replication policy list_replication_executions GET /replication/executions List replication executions list_replication_policies GET /replication/policies List replication policies list_replication_tasks GET /replication/executions/{id}/tasks List replication tasks for a specific execution start_replication POST /replication/executions Start one replication execution stop_replication PUT /replication/executions/{id} Stop the specific replication execution update_replication_policy PUT /replication/policies/{id} Update the replication policy create_replication_policy Signature create_replication_policy(policy: ReplicationPolicy, x_request_id: Optional[str])-\u0026gt; None Create a replication policy Create a replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) policy = harbor_client.ReplicationPolicy() # ReplicationPolicy | The replication policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a replication policy api_instance.create_replication_policy(policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;create_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes policy ReplicationPolicy The replication policy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_replication_policy Signature delete_replication_policy(id: int, x_request_id: Optional[str])-\u0026gt; None Delete the specific replication policy Delete the specific replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | Replication policy ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific replication policy api_instance.delete_replication_policy(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;delete_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Replication policy ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_replication_execution Signature get_replication_execution(id: int, x_request_id: Optional[str])-\u0026gt; ReplicationExecution Get the specific replication execution Get the replication execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific replication execution api_response = api_instance.get_replication_execution(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution. x_request_id str An unique ID for the request [optional] Return type ReplicationExecution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_replication_log Signature get_replication_log(id: int, task_id: int, x_request_id: Optional[str])-\u0026gt; str Get the log of the specific replication task Get the log of the specific replication task Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution that the tasks belongs to. task_id = 789 # int | The ID of the task. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log of the specific replication task api_response = api_instance.get_replication_log(id, task_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution that the tasks belongs to. task_id int The ID of the task. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_replication_policy Signature get_replication_policy(id: int, x_request_id: Optional[str])-\u0026gt; ReplicationPolicy Get the specific replication policy Get the specific replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | Policy ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific replication policy api_response = api_instance.get_replication_policy(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Policy ID x_request_id str An unique ID for the request [optional] Return type ReplicationPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_executions Signature list_replication_executions(x_request_id: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], policy_id: Optional[int], status: Optional[str], trigger: Optional[str])-\u0026gt; list[ReplicationExecution] List replication executions List replication executions Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) policy_id = 56 # int | The ID of the policy that the executions belong to. (optional) status = \u0026#39;status_example\u0026#39; # str | The execution status.","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_0","order":0,"tags":null,"title":"ReplicationApi"},{"category":"Python API Client","content":"(optional) trigger = \u0026#39;trigger_example\u0026#39; # str | The trigger mode. (optional) try: # List replication executions api_response = api_instance.list_replication_executions(x_request_id=x_request_id, sort=sort, page=page, page_size=page_size, policy_id=policy_id, status=status, trigger=trigger) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] policy_id int The ID of the policy that the executions belong to. [optional] status str The execution status. [optional] trigger str The trigger mode. [optional] Return type list[ReplicationExecution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_policies Signature list_replication_policies(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str])-\u0026gt; list[ReplicationPolicy] List replication policies List replication policies Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | Deprecated, use \\\u0026#34;query\\\u0026#34; instead. The policy name. (optional) try: # List replication policies api_response = api_instance.list_replication_policies(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_policies: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str Deprecated, use \u0026amp;quot;query\u0026amp;quot; instead. The policy name. [optional] Return type list[ReplicationPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_tasks Signature list_replication_tasks(id: int, x_request_id: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], status: Optional[str], resource_type: Optional[str])-\u0026gt; list[ReplicationTask] List replication tasks for a specific execution List replication tasks for a specific execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution that the tasks belongs to. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) status = \u0026#39;status_example\u0026#39; # str | The task status. (optional) resource_type = \u0026#39;resource_type_example\u0026#39; # str | The resource type. (optional) try: # List replication tasks for a specific execution api_response = api_instance.list_replication_tasks(id, x_request_id=x_request_id, sort=sort, page=page, page_size=page_size, status=status, resource_type=resource_type) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution that the tasks belongs to. x_request_id str An unique ID for the request [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] status str The task status. [optional] resource_type str The resource type. [optional] Return type list[ReplicationTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] start_replication Signature start_replication(execution: StartReplicationExecution, x_request_id: Optional[str])-\u0026gt; None Start one replication execution Start one replication execution according to the policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) execution = harbor_client.StartReplicationExecution() # StartReplicationExecution | The ID of policy that the execution belongs to x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Start one replication execution api_instance.start_replication(execution, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;start_replication: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution StartReplicationExecution The ID of policy that the execution belongs to x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_replication Signature","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_1","order":1,"tags":null,"title":"ReplicationApi"},{"category":"Python API Client","content":"stop_replication(id: int, x_request_id: Optional[str])-\u0026gt; None Stop the specific replication execution Stop the replication execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific replication execution api_instance.stop_replication(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;stop_replication: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_replication_policy Signature update_replication_policy(id: int, policy: ReplicationPolicy, x_request_id: Optional[str])-\u0026gt; None Update the replication policy Update the replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The policy ID policy = harbor_client.ReplicationPolicy() # ReplicationPolicy | The replication policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the replication policy api_instance.update_replication_policy(id, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;update_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The policy ID policy ReplicationPolicy The replication policy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_2","order":2,"tags":null,"title":"ReplicationApi"},{"category":"Python API Client","content":"harbor_client.RepositoryApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description delete_repository DELETE /projects/{project_name}/repositories/{repository_name} Delete repository get_repository GET /projects/{project_name}/repositories/{repository_name} Get repository list_all_repositories GET /repositories List all authorized repositories list_repositories GET /projects/{project_name}/repositories List repositories update_repository PUT /projects/{project_name}/repositories/{repository_name} Update repository delete_repository Signature delete_repository(project_name: str, repository_name: str, x_request_id: Optional[str])-\u0026gt; None Delete repository Delete the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete repository api_instance.delete_repository(project_name, repository_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;delete_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_repository Signature get_repository(project_name: str, repository_name: str, x_request_id: Optional[str])-\u0026gt; Repository Get repository Get the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get repository api_response = api_instance.get_repository(project_name, repository_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;get_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] Return type Repository Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_all_repositories Signature list_all_repositories(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Repository] List all authorized repositories List all authorized repositories Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List all authorized repositories api_response = api_instance.list_all_repositories(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;list_all_repositories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Repository] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_repositories Signature list_repositories(project_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Repository] List repositories List repositories of the specified project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional)","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/repositoryapi/","objectID":"4dff1d72caf4be4973c782fa6edf5f4f_0","order":0,"tags":null,"title":"RepositoryApi"},{"category":"Python API Client","content":"(default to 10) try: # List repositories api_response = api_instance.list_repositories(project_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;list_repositories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Repository] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_repository Signature update_repository(project_name: str, repository_name: str, repository: Repository, x_request_id: Optional[str])-\u0026gt; None Update repository Update the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb repository = harbor_client.Repository() # Repository | The JSON object of repository. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update repository api_instance.update_repository(project_name, repository_name, repository, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;update_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb repository Repository The JSON object of repository. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/repositoryapi/","objectID":"4dff1d72caf4be4973c782fa6edf5f4f_1","order":1,"tags":null,"title":"RepositoryApi"},{"category":"Python API Client","content":"harbor_client.RetentionApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_retention POST /retentions Create Retention Policy delete_retention DELETE /retentions/{id} Delete Retention Policy get_rentenition_metadata GET /retentions/metadatas Get Retention Metadatas get_retention GET /retentions/{id} Get Retention Policy get_retention_task_log GET /retentions/{id}/executions/{eid}/tasks/{tid} Get Retention job task log list_retention_executions GET /retentions/{id}/executions Get Retention executions list_retention_tasks GET /retentions/{id}/executions/{eid}/tasks Get Retention tasks operate_retention_execution PATCH /retentions/{id}/executions/{eid} Stop a Retention execution trigger_retention_execution POST /retentions/{id}/executions Trigger a Retention Execution update_retention PUT /retentions/{id} Update Retention Policy create_retention Signature create_retention(policy: RetentionPolicy, x_request_id: Optional[str])-\u0026gt; None Create Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) policy = harbor_client.RetentionPolicy() # RetentionPolicy | Create Retention Policy successfully. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create Retention Policy api_instance.create_retention(policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;create_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes policy RetentionPolicy Create Retention Policy successfully. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_retention Signature delete_retention(id: int, x_request_id: Optional[str])-\u0026gt; None Delete Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete Retention Policy api_instance.delete_retention(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;delete_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_rentenition_metadata Signature get_rentenition_metadata(x_request_id: Optional[str])-\u0026gt; RetentionMetadata Get Retention Metadatas Get Retention Metadatas. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention Metadatas api_response = api_instance.get_rentenition_metadata(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_rentenition_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type RetentionMetadata Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_retention Signature get_retention(id: int, x_request_id: Optional[str])-\u0026gt; RetentionPolicy Get Retention Policy Get Retention Policy. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention Policy api_response = api_instance.get_retention(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] Return type RetentionPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_retention_task_log Signature get_retention_task_log(id: int, eid: int, tid: int, x_request_id: Optional[str])-\u0026gt; str Get Retention job task log Get Retention job task log, tags ratain or deletion detail will be shown in a table. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. tid = 789 # int | Retention execution ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention job task log api_response = api_instance.get_retention_task_log(id, eid, tid, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_retention_task_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. tid int Retention execution ID. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] list_retention_executions Signature list_retention_executions(id: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[RetentionExecution] Get Retention executions Get Retention executions, execution status may be delayed before job service schedule it up. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 789 # int | The page number. (optional) page_size = 789 # int | The size of per page. (optional) try: # Get Retention executions api_response = api_instance.list_retention_executions(id, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;list_retention_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] page","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/retentionapi/","objectID":"0c26a8b253b3c80da70bfafe60c0d498_0","order":0,"tags":null,"title":"RetentionApi"},{"category":"Python API Client","content":"int The page number. [optional] page_size int The size of per page. [optional] Return type list[RetentionExecution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_retention_tasks Signature list_retention_tasks(id: int, eid: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[RetentionExecutionTask] Get Retention tasks Get Retention tasks, each repository as a task. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 789 # int | The page number. (optional) page_size = 789 # int | The size of per page. (optional) try: # Get Retention tasks api_response = api_instance.list_retention_tasks(id, eid, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;list_retention_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. x_request_id str An unique ID for the request [optional] page int The page number. [optional] page_size int The size of per page. [optional] Return type list[RetentionExecutionTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] operate_retention_execution Signature operate_retention_execution(id: int, eid: int, body: Body1, x_request_id: Optional[str])-\u0026gt; None Stop a Retention execution Stop a Retention execution, only support \u0026quot;stop\u0026quot; action now. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. body = harbor_client.Body1() # Body1 | The action, only support \\\u0026#34;stop\\\u0026#34; now. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop a Retention execution api_instance.operate_retention_execution(id, eid, body, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;operate_retention_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. body Body1 The action, only support \u0026amp;quot;stop\u0026amp;quot; now. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] trigger_retention_execution Signature trigger_retention_execution(id: int, body: Body, x_request_id: Optional[str])-\u0026gt; None Trigger a Retention Execution Trigger a Retention Execution, if dry_run is True, nothing would be deleted actually. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. body = harbor_client.Body() # Body | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Trigger a Retention Execution api_instance.trigger_retention_execution(id, body, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;trigger_retention_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. body Body x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] update_retention Signature update_retention(id: int, policy: RetentionPolicy, x_request_id: Optional[str])-\u0026gt; None Update Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. policy = harbor_client.RetentionPolicy() # RetentionPolicy | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update Retention Policy api_instance.update_retention(id, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;update_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. policy RetentionPolicy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/retentionapi/","objectID":"0c26a8b253b3c80da70bfafe60c0d498_1","order":1,"tags":null,"title":"RetentionApi"},{"category":"Python API Client","content":"harbor_client.RobotApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_robot POST /robots Create a robot account delete_robot DELETE /robots/{robot_id} Delete a robot account get_robot_by_id GET /robots/{robot_id} Get a robot account list_robot GET /robots Get robot account refresh_sec PATCH /robots/{robot_id} Refresh the robot secret update_robot PUT /robots/{robot_id} Update a robot account create_robot Signature create_robot(robot: RobotCreate, x_request_id: Optional[str])-\u0026gt; RobotCreated Create a robot account Create a robot account Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot = harbor_client.RobotCreate() # RobotCreate | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a robot account api_response = api_instance.create_robot(robot, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;create_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot RobotCreate The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return type RobotCreated Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_robot Signature delete_robot(robot_id: int, x_request_id: Optional[str])-\u0026gt; None Delete a robot account This endpoint deletes specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a robot account api_instance.delete_robot(robot_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;delete_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_robot_by_id Signature get_robot_by_id(robot_id: int, x_request_id: Optional[str])-\u0026gt; Robot Get a robot account This endpoint returns specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a robot account api_response = api_instance.get_robot_by_id(robot_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;get_robot_by_id: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID x_request_id str An unique ID for the request [optional] Return type Robot Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_robot Signature list_robot(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Robot] Get robot account List the robot accounts with the specified level and project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get robot account api_response = api_instance.list_robot(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;list_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Robot] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] refresh_sec Signature refresh_sec(robot_id: int, robot_sec: RobotSec, x_request_id: Optional[str])-\u0026gt; RobotSec Refresh the robot secret Refresh the robot secret Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID robot_sec = harbor_client.RobotSec() # RobotSec | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Refresh the robot secret api_response = api_instance.refresh_sec(robot_id, robot_sec, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;refresh_sec: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID robot_sec RobotSec The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotapi/","objectID":"b5e0c15338a748371b993d06b009a5d8_0","order":0,"tags":null,"title":"RobotApi"},{"category":"Python API Client","content":"type RobotSec Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_robot Signature update_robot(robot_id: int, robot: Robot, x_request_id: Optional[str])-\u0026gt; None Update a robot account This endpoint updates specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID robot = harbor_client.Robot() # Robot | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a robot account api_instance.update_robot(robot_id, robot, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;update_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID robot Robot The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotapi/","objectID":"b5e0c15338a748371b993d06b009a5d8_1","order":1,"tags":null,"title":"RobotApi"},{"category":"Python API Client","content":"harbor_client.Robotv1Api All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_robot_v1 POST /projects/{project_name_or_id}/robots Create a robot account delete_robot_v1 DELETE /projects/{project_name_or_id}/robots/{robot_id} Delete a robot account get_robot_by_idv1 GET /projects/{project_name_or_id}/robots/{robot_id} Get a robot account list_robot_v1 GET /projects/{project_name_or_id}/robots Get all robot accounts of specified project update_robot_v1 PUT /projects/{project_name_or_id}/robots/{robot_id} Update status of robot account. create_robot_v1 Signature create_robot_v1(project_name_or_id: str, robot: RobotCreateV1, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; RobotCreated Create a robot account Create a robot account Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot = harbor_client.RobotCreateV1() # RobotCreateV1 | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Create a robot account api_response = api_instance.create_robot_v1(project_name_or_id, robot, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;create_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot RobotCreateV1 The JSON object of a robot account. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type RobotCreated Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_robot_v1 Signature delete_robot_v1(project_name_or_id: str, robot_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete a robot account This endpoint deletes specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete a robot account api_instance.delete_robot_v1(project_name_or_id, robot_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;delete_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_robot_by_idv1 Signature get_robot_by_idv1(project_name_or_id: str, robot_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; Robot Get a robot account This endpoint returns specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get a robot account api_response = api_instance.get_robot_by_idv1(project_name_or_id, robot_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;get_robot_by_idv1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type Robot Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_robot_v1 Signature list_robot_v1(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Robot] Get all robot accounts of specified project Get all robot accounts of specified project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotv1api/","objectID":"038b9d24d2f45ed8bd0fedac32ede518_0","order":0,"tags":null,"title":"Robotv1Api"},{"category":"Python API Client","content":"unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # Get all robot accounts of specified project api_response = api_instance.list_robot_v1(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;list_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Robot] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_robot_v1 Signature update_robot_v1(project_name_or_id: str, robot_id: int, robot: Robot, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update status of robot account. Used to disable/enable a specified robot account. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID robot = harbor_client.Robot() # Robot | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update status of robot account. api_instance.update_robot_v1(project_name_or_id, robot_id, robot, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;update_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID robot Robot The JSON object of a robot account. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotv1api/","objectID":"038b9d24d2f45ed8bd0fedac32ede518_1","order":1,"tags":null,"title":"Robotv1Api"},{"category":"Python API Client","content":"harbor_client.ScanAllApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_scan_all_schedule POST /system/scanAll/schedule Create a schedule or a manual trigger for the scan all job. get_latest_scan_all_metrics GET /scans/all/metrics Get the metrics of the latest scan all process get_latest_scheduled_scan_all_metrics GET /scans/schedule/metrics Get the metrics of the latest scheduled scan all process get_scan_all_schedule GET /system/scanAll/schedule Get scan all's schedule. stop_scan_all POST /system/scanAll/stop Stop scanAll job execution update_scan_all_schedule PUT /system/scanAll/schedule Update scan all's schedule. create_scan_all_schedule Signature create_scan_all_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a schedule or a manual trigger for the scan all job. This endpoint is for creating a schedule or a manual trigger for the scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Create a schedule or a manual trigger for the scan all job. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a schedule or a manual trigger for the scan all job. api_instance.create_scan_all_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;create_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Create a schedule or a manual trigger for the scan all job. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_latest_scan_all_metrics Signature get_latest_scan_all_metrics(x_request_id: Optional[str])-\u0026gt; Stats Get the metrics of the latest scan all process Get the metrics of the latest scan all process Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metrics of the latest scan all process api_response = api_instance.get_latest_scan_all_metrics(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_latest_scan_all_metrics: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Stats Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_latest_scheduled_scan_all_metrics Signature get_latest_scheduled_scan_all_metrics(x_request_id: Optional[str])-\u0026gt; Stats Get the metrics of the latest scheduled scan all process Get the metrics of the latest scheduled scan all process Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metrics of the latest scheduled scan all process api_response = api_instance.get_latest_scheduled_scan_all_metrics(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_latest_scheduled_scan_all_metrics: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Stats Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_all_schedule Signature get_scan_all_schedule(x_request_id: Optional[str])-\u0026gt; Schedule Get scan all\u0026rsquo;s schedule. This endpoint is for getting a schedule for the scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get scan all\u0026#39;s schedule. api_response = api_instance.get_scan_all_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Schedule Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_scan_all Signature stop_scan_all(x_request_id: Optional[str])-\u0026gt; None Stop scanAll job execution Stop scanAll job execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop scanAll job execution api_instance.stop_scan_all(x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;stop_scan_all: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_scan_all_schedule Signature update_scan_all_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update scan all\u0026rsquo;s schedule. This endpoint is for updating the schedule of scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates the schedule of scan all job, which scans all of images in Harbor. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update scan all\u0026#39;s schedule. api_instance.update_scan_all_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;update_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates the schedule of scan all job, which scans all of images in Harbor. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scanallapi/","objectID":"7376fc42bd1b6568d381bdf87a39b6c2_0","order":0,"tags":null,"title":"ScanAllApi"},{"category":"Python API Client","content":"harbor_client.ScanApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_report_log GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log Get the log of the scan report scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan Scan the artifact stop_scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/stop Cancelling a scan job for a particular artifact get_report_log Signature get_report_log(project_name: str, repository_name: str, reference: str, report_id: str, x_request_id: Optional[str])-\u0026gt; str Get the log of the scan report Get the log of the scan report Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag report_id = \u0026#39;report_id_example\u0026#39; # str | The report id to get the log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log of the scan report api_response = api_instance.get_report_log(project_name, repository_name, reference, report_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;get_report_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag report_id str The report id to get the log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] scan_artifact Signature scan_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Scan the artifact Scan the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Scan the artifact api_instance.scan_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;scan_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_scan_artifact Signature stop_scan_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Cancelling a scan job for a particular artifact Cancelling a scan job for a particular artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Cancelling a scan job for a particular artifact api_instance.stop_scan_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;stop_scan_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scanapi/","objectID":"3b5c03bec396094868b9821598eb2fdd_0","order":0,"tags":null,"title":"ScanApi"},{"category":"Python API Client","content":"harbor_client.ScanDataExportApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description download_scan_data GET /export/cve/download/{execution_id} Download the scan data export file export_scan_data POST /export/cve Export scan data for selected projects get_scan_data_export_execution GET /export/cve/execution/{execution_id} Get the specific scan data export execution get_scan_data_export_execution_list GET /export/cve/executions Get a list of specific scan data export execution jobs for a specified user download_scan_data Signature download_scan_data(execution_id: int, x_request_id: Optional[str], format: Optional[str])-\u0026gt; str Download the scan data export file Download the scan data report. Default format is CSV Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) format = \u0026#39;format_example\u0026#39; # str | The format of the data to be exported. e.g. CSV or PDF (optional) try: # Download the scan data export file api_response = api_instance.download_scan_data(execution_id, x_request_id=x_request_id, format=format) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;download_scan_data: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution_id int Execution ID x_request_id str An unique ID for the request [optional] format str The format of the data to be exported. e.g. CSV or PDF [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/csv [Back to top] export_scan_data Signature export_scan_data(x_scan_data_type: str, criteria: ScanDataExportRequest, x_request_id: Optional[str])-\u0026gt; ScanDataExportJob Export scan data for selected projects Export scan data for selected projects Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) x_scan_data_type = \u0026#39;x_scan_data_type_example\u0026#39; # str | The type of scan data to export criteria = harbor_client.ScanDataExportRequest() # ScanDataExportRequest | The criteria for the export x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Export scan data for selected projects api_response = api_instance.export_scan_data(x_scan_data_type, criteria, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;export_scan_data: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_scan_data_type str The type of scan data to export criteria ScanDataExportRequest The criteria for the export x_request_id str An unique ID for the request [optional] Return type ScanDataExportJob Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_data_export_execution Signature get_scan_data_export_execution(execution_id: int, x_request_id: Optional[str])-\u0026gt; ScanDataExportExecution Get the specific scan data export execution Get the scan data export execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific scan data export execution api_response = api_instance.get_scan_data_export_execution(execution_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;get_scan_data_export_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution_id int Execution ID x_request_id str An unique ID for the request [optional] Return type ScanDataExportExecution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_data_export_execution_list Signature get_scan_data_export_execution_list(x_request_id: Optional[str])-\u0026gt; ScanDataExportExecutionList Get a list of specific scan data export execution jobs for a specified user Get a list of specific scan data export execution jobs for a specified user Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a list of specific scan data export execution jobs for a specified user api_response = api_instance.get_scan_data_export_execution_list(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;get_scan_data_export_execution_list: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ScanDataExportExecutionList Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scandataexportapi/","objectID":"035f4fe171489331583cc10a52f5b88f_0","order":0,"tags":null,"title":"ScanDataExportApi"},{"category":"Python API Client","content":"harbor_client.ScannerApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_scanner POST /scanners Create a scanner registration delete_scanner DELETE /scanners/{registration_id} Delete a scanner registration get_scanner GET /scanners/{registration_id} Get a scanner registration details get_scanner_metadata GET /scanners/{registration_id}/metadata Get the metadata of the specified scanner registration list_scanners GET /scanners List scanner registrations ping_scanner POST /scanners/ping Tests scanner registration settings set_scanner_as_default PATCH /scanners/{registration_id} Set system default scanner registration update_scanner PUT /scanners/{registration_id} Update a scanner registration create_scanner Signature create_scanner(registration: ScannerRegistrationReq, x_request_id: Optional[str])-\u0026gt; None Create a scanner registration Creats a new scanner registration with the given data. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration = harbor_client.ScannerRegistrationReq() # ScannerRegistrationReq | A scanner registration to be created. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a scanner registration api_instance.create_scanner(registration, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;create_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration ScannerRegistrationReq A scanner registration to be created. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_scanner Signature delete_scanner(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerRegistration Delete a scanner registration Deletes the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a scanner registration api_response = api_instance.delete_scanner(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;delete_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. x_request_id str An unique ID for the request [optional] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner Signature get_scanner(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerRegistration Get a scanner registration details Retruns the details of the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifer. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a scanner registration details api_response = api_instance.get_scanner(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;get_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifer. x_request_id str An unique ID for the request [optional] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner_metadata Signature get_scanner_metadata(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerAdapterMetadata Get the metadata of the specified scanner registration Get the metadata of the specified scanner registration, including the capabilities and customized properties. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metadata of the specified scanner registration api_response = api_instance.get_scanner_metadata(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;get_scanner_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. x_request_id str An unique ID for the request [optional] Return type ScannerAdapterMetadata Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_scanners Signature list_scanners(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScannerRegistration] List scanner registrations Returns a list of currently configured scanner registrations. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List scanner registrations api_response = api_instance.list_scanners(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;list_scanners: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scannerapi/","objectID":"94acf49b0e80f2d11ec38f1ef690326a_0","order":0,"tags":null,"title":"ScannerApi"},{"category":"Python API Client","content":"page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScannerRegistration] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_scanner Signature ping_scanner(settings: ScannerRegistrationSettings, x_request_id: Optional[str])-\u0026gt; None Tests scanner registration settings Pings scanner adapter to test endpoint URL and authorization settings. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) settings = harbor_client.ScannerRegistrationSettings() # ScannerRegistrationSettings | A scanner registration settings to be tested. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Tests scanner registration settings api_instance.ping_scanner(settings, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;ping_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes settings ScannerRegistrationSettings A scanner registration settings to be tested. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_scanner_as_default Signature set_scanner_as_default(registration_id: str, payload: IsDefault, x_request_id: Optional[str])-\u0026gt; None Set system default scanner registration Set the specified scanner registration as the system default one. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. payload = harbor_client.IsDefault() # IsDefault | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Set system default scanner registration api_instance.set_scanner_as_default(registration_id, payload, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;set_scanner_as_default: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. payload IsDefault x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_scanner Signature update_scanner(registration_id: str, registration: ScannerRegistrationReq, x_request_id: Optional[str])-\u0026gt; None Update a scanner registration Updates the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. registration = harbor_client.ScannerRegistrationReq() # ScannerRegistrationReq | A scanner registraiton to be updated. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a scanner registration api_instance.update_scanner(registration_id, registration, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;update_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. registration ScannerRegistrationReq A scanner registraiton to be updated. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scannerapi/","objectID":"94acf49b0e80f2d11ec38f1ef690326a_1","order":1,"tags":null,"title":"ScannerApi"},{"category":"Python API Client","content":"harbor_client.ScheduleApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_schedule_paused GET /schedules/{job_type}/paused list_schedules GET /schedules get_schedule_paused Signature get_schedule_paused(job_type: str, x_request_id: Optional[str])-\u0026gt; SchedulerStatus Get scheduler paused status Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScheduleApi(harbor_client.ApiClient(configuration)) job_type = \u0026#39;job_type_example\u0026#39; # str | The type of the job. \u0026#39;all\u0026#39; stands for all job types, current only support query with all x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: api_response = api_instance.get_schedule_paused(job_type, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScheduleApi-\u0026gt;get_schedule_paused: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_type str The type of the job. 'all' stands for all job types, current only support query with all x_request_id str An unique ID for the request [optional] Return type SchedulerStatus Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_schedules Signature list_schedules(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScheduleTask] List schedules Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScheduleApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: api_response = api_instance.list_schedules(x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScheduleApi-\u0026gt;list_schedules: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScheduleTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scheduleapi/","objectID":"3c0ce344cccf28bff61ac8700abae464_0","order":0,"tags":null,"title":"ScheduleApi"},{"category":"Python API Client","content":"harbor_client.SearchApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description search GET /search Search for projects, repositories and helm charts search Signature search(q: str, x_request_id: Optional[str])-\u0026gt; Search Search for projects, repositories and helm charts The Search endpoint returns information about the projects, repositories and helm charts offered at public status or related to the current logged in user. The response includes the project, repository list and charts in a proper display order. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SearchApi(harbor_client.ApiClient(configuration)) q = \u0026#39;q_example\u0026#39; # str | Search parameter for project and repository name. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Search for projects, repositories and helm charts api_response = api_instance.search(q, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SearchApi-\u0026gt;search: %s\\n\u0026#34; % e) Parameters Name Type Description Notes q str Search parameter for project and repository name. x_request_id str An unique ID for the request [optional] Return type Search Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/searchapi/","objectID":"2993d2e926c1e56e1c3576e457fb210d_0","order":0,"tags":null,"title":"SearchApi"},{"category":"Python API Client","content":"harbor_client.StatisticApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_statistic GET /statistics Get the statistic information about the projects and repositories get_statistic Signature get_statistic(x_request_id: Optional[str])-\u0026gt; Statistic Get the statistic information about the projects and repositories Get the statistic information about the projects and repositories Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.StatisticApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the statistic information about the projects and repositories api_response = api_instance.get_statistic(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling StatisticApi-\u0026gt;get_statistic: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Statistic Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/statisticapi/","objectID":"8e92e379ec08df30c94af38eb503613e_0","order":0,"tags":null,"title":"StatisticApi"},{"category":"Python API Client","content":"harbor_client.SystemCVEAllowlistApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_system_cve_allowlist GET /system/CVEAllowlist Get the system level allowlist of CVE. put_system_cve_allowlist PUT /system/CVEAllowlist Update the system level allowlist of CVE. get_system_cve_allowlist Signature get_system_cve_allowlist(x_request_id: Optional[str])-\u0026gt; CVEAllowlist Get the system level allowlist of CVE. Get the system level allowlist of CVE. This API can be called by all authenticated users. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SystemCVEAllowlistApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the system level allowlist of CVE. api_response = api_instance.get_system_cve_allowlist(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SystemCVEAllowlistApi-\u0026gt;get_system_cve_allowlist: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type CVEAllowlist Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] put_system_cve_allowlist Signature put_system_cve_allowlist(x_request_id: Optional[str], allowlist: Optional[CVEAllowlist])-\u0026gt; None Update the system level allowlist of CVE. This API overwrites the system level allowlist of CVE with the list in request body. Only system Admin has permission to call this API. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SystemCVEAllowlistApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) allowlist = harbor_client.CVEAllowlist() # CVEAllowlist | The allowlist with new content (optional) try: # Update the system level allowlist of CVE. api_instance.put_system_cve_allowlist(x_request_id=x_request_id, allowlist=allowlist) except ApiException as e: print(\u0026#34;Exception when calling SystemCVEAllowlistApi-\u0026gt;put_system_cve_allowlist: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] allowlist CVEAllowlist The allowlist with new content [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/systemcveallowlistapi/","objectID":"515d1c7d805ff4f9a29133f059494407_0","order":0,"tags":null,"title":"SystemCVEAllowlistApi"},{"category":"Python API Client","content":"harbor_client.SysteminfoApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_cert GET /systeminfo/getcert Get default root certificate. get_system_info GET /systeminfo Get general system info get_volumes GET /systeminfo/volumes Get system volume info (total/free size). get_cert Signature get_cert(x_request_id: Optional[str])-\u0026gt; str Get default root certificate. This endpoint is for downloading a default root certificate. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get default root certificate. api_response = api_instance.get_cert(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_cert: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/octet-stream [Back to top] get_system_info Signature get_system_info(x_request_id: Optional[str])-\u0026gt; GeneralInfo Get general system info 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get general system info api_response = api_instance.get_system_info(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_system_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type GeneralInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_volumes Signature get_volumes(x_request_id: Optional[str])-\u0026gt; SystemInfo Get system volume info (total/free size). 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get system volume info (total/free size). api_response = api_instance.get_volumes(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_volumes: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type SystemInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/systeminfoapi/","objectID":"171ff8c70b127da8de98570acd9ed888_0","order":0,"tags":null,"title":"SysteminfoApi"},{"category":"Python API Client","content":"harbor_client.UserApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_user POST /users Create a local user. delete_user DELETE /users/{user_id} Mark a registered user as be removed. get_current_user_info GET /users/current Get current user info. get_current_user_permissions GET /users/current/permissions Get current user permissions. get_user GET /users/{user_id} Get a user's profile. list_users GET /users List users search_users GET /users/search Search users by username set_cli_secret PUT /users/{user_id}/cli_secret Set CLI secret for a user. set_user_sys_admin PUT /users/{user_id}/sysadmin Update a registered user to change to be an administrator of Harbor. update_user_password PUT /users/{user_id}/password Change the password on a user that already exists. update_user_profile PUT /users/{user_id} Update user's profile. create_user Signature create_user(user_req: UserCreationReq, x_request_id: Optional[str])-\u0026gt; None Create a local user. This API can be used only when the authentication mode is for local DB. When self registration is disabled. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_req = harbor_client.UserCreationReq() # UserCreationReq | The new user x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a local user. api_instance.create_user(user_req, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;create_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_req UserCreationReq The new user x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_user Signature delete_user(user_id: int, x_request_id: Optional[str])-\u0026gt; None Mark a registered user as be removed. This endpoint let administrator of Harbor mark a registered user as removed.It actually won\u0026rsquo;t be deleted from DB. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | User ID for marking as to be removed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Mark a registered user as be removed. api_instance.delete_user(user_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;delete_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int User ID for marking as to be removed. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_current_user_info Signature get_current_user_info(x_request_id: Optional[str])-\u0026gt; UserResp Get current user info. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get current user info. api_response = api_instance.get_current_user_info(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_current_user_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type UserResp Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_current_user_permissions Signature get_current_user_permissions(x_request_id: Optional[str], scope: Optional[str], relative: Optional[bool])-\u0026gt; list[Permission] Get current user permissions. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) scope = \u0026#39;scope_example\u0026#39; # str | The scope for the permission (optional) relative = true # bool | If true, the resources in the response are relative to the scope, eg for resource \u0026#39;/project/1/repository\u0026#39; if relative is \u0026#39;true\u0026#39; then the resource in response will be \u0026#39;repository\u0026#39;. (optional) try: # Get current user permissions. api_response = api_instance.get_current_user_permissions(x_request_id=x_request_id, scope=scope, relative=relative) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_current_user_permissions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] scope str The scope for the permission [optional] relative bool 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'. [optional] Return type list[Permission] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_user Signature get_user(user_id: int, x_request_id: Optional[str])-\u0026gt; UserResp Get a user\u0026rsquo;s profile. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a user\u0026#39;s profile. api_response = api_instance.get_user(user_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int x_request_id str An unique ID for the request [optional] Return type UserResp Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_users Signature list_users(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserResp] List users Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_0","order":0,"tags":null,"title":"UserApi"},{"category":"Python API Client","content":"the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List users api_response = api_instance.list_users(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;list_users: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserResp] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_users Signature search_users(username: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserSearchRespItem] Search users by username This endpoint is to search the users by username. It\u0026rsquo;s open for all authenticated requests. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) username = \u0026#39;username_example\u0026#39; # str | Username for filtering results. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Search users by username api_response = api_instance.search_users(username, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;search_users: %s\\n\u0026#34; % e) Parameters Name Type Description Notes username str Username for filtering results. x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserSearchRespItem] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_cli_secret Signature set_cli_secret(user_id: int, secret: OIDCCliSecretReq, x_request_id: Optional[str])-\u0026gt; None Set CLI secret for a user. This endpoint let user generate a new CLI secret for himself. This API only works when auth mode is set to \u0026lsquo;OIDC\u0026rsquo;. Once this API returns with successful status, the old secret will be invalid, as there will be only one CLI secret for a user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | User ID secret = harbor_client.OIDCCliSecretReq() # OIDCCliSecretReq | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Set CLI secret for a user. api_instance.set_cli_secret(user_id, secret, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;set_cli_secret: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int User ID secret OIDCCliSecretReq x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_user_sys_admin Signature set_user_sys_admin(user_id: int, sysadmin_flag: UserSysAdminFlag, x_request_id: Optional[str])-\u0026gt; None Update a registered user to change to be an administrator of Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | sysadmin_flag = harbor_client.UserSysAdminFlag() # UserSysAdminFlag | Toggle a user to admin or not. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a registered user to change to be an administrator of Harbor. api_instance.set_user_sys_admin(user_id, sysadmin_flag, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;set_user_sys_admin: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int sysadmin_flag UserSysAdminFlag Toggle a user to admin or not. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_user_password Signature update_user_password(user_id: int, password: PasswordReq, x_request_id: Optional[str])-\u0026gt; None Change the password on a user that already exists. This endpoint is for user to update password. Users with the admin role can change any user\u0026rsquo;s password. Regular users can change only their own password. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | password = harbor_client.PasswordReq() # PasswordReq | Password to be updated, the attribute \u0026#39;old_password\u0026#39; is optional when the API is called by the system administrator. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Change the password on a user that already exists. api_instance.update_user_password(user_id, password, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;update_user_password: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int password PasswordReq Password to be updated, the attribute 'old_password' is optional when the API is called by the system administrator. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_1","order":1,"tags":null,"title":"UserApi"},{"category":"Python API Client","content":"Accept: application/json [Back to top] update_user_profile Signature update_user_profile(user_id: int, profile: UserProfile, x_request_id: Optional[str])-\u0026gt; None Update user\u0026rsquo;s profile. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | Registered user ID profile = harbor_client.UserProfile() # UserProfile | Only email, realname and comment can be modified. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update user\u0026#39;s profile. api_instance.update_user_profile(user_id, profile, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;update_user_profile: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int Registered user ID profile UserProfile Only email, realname and comment can be modified. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_2","order":2,"tags":null,"title":"UserApi"},{"category":"Python API Client","content":"harbor_client.UsergroupApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_user_group POST /usergroups Create user group delete_user_group DELETE /usergroups/{group_id} Delete user group get_user_group GET /usergroups/{group_id} Get user group information list_user_groups GET /usergroups Get all user groups information search_user_groups GET /usergroups/search Search groups by groupname update_user_group PUT /usergroups/{group_id} Update group information create_user_group Signature create_user_group(x_request_id: Optional[str], usergroup: Optional[UserGroup])-\u0026gt; None Create user group Create user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) usergroup = harbor_client.UserGroup() # UserGroup | (optional) try: # Create user group api_instance.create_user_group(x_request_id=x_request_id, usergroup=usergroup) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;create_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] usergroup UserGroup [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_user_group Signature delete_user_group(group_id: int, x_request_id: Optional[str])-\u0026gt; None Delete user group Delete user group Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 56 # int | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete user group api_instance.delete_user_group(group_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;delete_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_user_group Signature get_user_group(group_id: int, x_request_id: Optional[str])-\u0026gt; UserGroup Get user group information Get user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 789 # int | Group ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get user group information api_response = api_instance.get_user_group(group_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;get_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int Group ID x_request_id str An unique ID for the request [optional] Return type UserGroup Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_user_groups Signature list_user_groups(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], ldap_group_dn: Optional[str], group_name: Optional[str])-\u0026gt; list[UserGroup] Get all user groups information Get all user groups information, it is open for system admin Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) ldap_group_dn = \u0026#39;ldap_group_dn_example\u0026#39; # str | search with ldap group DN (optional) group_name = \u0026#39;group_name_example\u0026#39; # str | group name need to search, fuzzy matches (optional) try: # Get all user groups information api_response = api_instance.list_user_groups(x_request_id=x_request_id, page=page, page_size=page_size, ldap_group_dn=ldap_group_dn, group_name=group_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;list_user_groups: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] ldap_group_dn str search with ldap group DN [optional] group_name str group name need to search, fuzzy matches [optional] Return type list[UserGroup] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_user_groups Signature search_user_groups(groupname: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserGroupSearchItem] Search groups by groupname This endpoint is to search groups by group name. It\u0026rsquo;s open for all authenticated requests. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) groupname = \u0026#39;groupname_example\u0026#39; # str | Group name for filtering results. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Search groups by groupname api_response = api_instance.search_user_groups(groupname, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;search_user_groups: %s\\n\u0026#34; % e) Parameters Name Type Description Notes groupname str Group name for filtering results. x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserGroupSearchItem] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_user_group Signature update_user_group(group_id: int, x_request_id: Optional[str], usergroup: Optional[UserGroup])-\u0026gt; None Update group information Update user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 789 # int | Group ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) usergroup = harbor_client.UserGroup() # UserGroup | (optional) try: # Update group information api_instance.update_user_group(group_id, x_request_id=x_request_id, usergroup=usergroup) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;update_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int Group ID x_request_id str An unique ID for","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/usergroupapi/","objectID":"3fc5113e8f60fc0622d9b9df79ae3ec7_0","order":0,"tags":null,"title":"UsergroupApi"},{"category":"Python API Client","content":"the request [optional] usergroup UserGroup [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/usergroupapi/","objectID":"3fc5113e8f60fc0622d9b9df79ae3ec7_1","order":1,"tags":null,"title":"UsergroupApi"},{"category":"Python API Client","content":"harbor_client.WebhookApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_webhook_policy_of_project POST /projects/{project_name_or_id}/webhook/policies Create project webhook policy. delete_webhook_policy_of_project DELETE /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Delete webhook policy of a project get_supported_event_types GET /projects/{project_name_or_id}/webhook/events Get supported event types and notify types. get_webhook_policy_of_project GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Get project webhook policy last_trigger GET /projects/{project_name_or_id}/webhook/lasttrigger Get project webhook policy last trigger info list_webhook_policies_of_project GET /projects/{project_name_or_id}/webhook/policies List project webhook policies. update_webhook_policy_of_project PUT /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Update webhook policy of a project. create_webhook_policy_of_project Signature create_webhook_policy_of_project(project_name_or_id: str, policy: WebhookPolicy, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Create project webhook policy. This endpoint create a webhook policy if the project does not have one. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project policy = harbor_client.WebhookPolicy() # WebhookPolicy | Properties \\\u0026#34;targets\\\u0026#34; and \\\u0026#34;event_types\\\u0026#34; needed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Create project webhook policy. api_instance.create_webhook_policy_of_project(project_name_or_id, policy, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;create_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project policy WebhookPolicy Properties \u0026amp;quot;targets\u0026amp;quot; and \u0026amp;quot;event_types\u0026amp;quot; needed. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_webhook_policy_of_project Signature delete_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete webhook policy of a project This endpoint is aimed to delete webhookpolicy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete webhook policy of a project api_instance.delete_webhook_policy_of_project(project_name_or_id, webhook_policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;delete_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_supported_event_types Signature get_supported_event_types(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; SupportedWebhookEventTypes Get supported event types and notify types. Get supportted event types and notify types. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get supported event types and notify types. api_response = api_instance.get_supported_event_types(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;get_supported_event_types: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type SupportedWebhookEventTypes Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_webhook_policy_of_project Signature get_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; WebhookPolicy Get project webhook policy This endpoint returns specified webhook policy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id =","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_0","order":0,"tags":null,"title":"WebhookApi"},{"category":"Python API Client","content":"\u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project webhook policy api_response = api_instance.get_webhook_policy_of_project(project_name_or_id, webhook_policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;get_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type WebhookPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] last_trigger Signature last_trigger(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; list[WebhookLastTrigger] Get project webhook policy last trigger info This endpoint returns last trigger information of project webhook policy. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project webhook policy last trigger info api_response = api_instance.last_trigger(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;last_trigger: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type list[WebhookLastTrigger] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_webhook_policies_of_project Signature list_webhook_policies_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], sort: Optional[str], q: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[WebhookPolicy] List project webhook policies. This endpoint returns webhook policies of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List project webhook policies. api_response = api_instance.list_webhook_policies_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, sort=sort, q=q, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;list_webhook_policies_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] page int The page number [optional] [default to 1] page_size int The size of per","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_1","order":1,"tags":null,"title":"WebhookApi"},{"category":"Python API Client","content":"page [optional] [default to 10] Return type list[WebhookPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_webhook_policy_of_project Signature update_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, policy: WebhookPolicy, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update webhook policy of a project. This endpoint is aimed to update the webhook policy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy policy = harbor_client.WebhookPolicy() # WebhookPolicy | All properties needed except \\\u0026#34;id\\\u0026#34;, \\\u0026#34;project_id\\\u0026#34;, \\\u0026#34;creation_time\\\u0026#34;, \\\u0026#34;update_time\\\u0026#34;. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update webhook policy of a project. api_instance.update_webhook_policy_of_project(project_name_or_id, webhook_policy_id, policy, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;update_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy policy WebhookPolicy All properties needed except \u0026amp;quot;id\u0026amp;quot;, \u0026amp;quot;project_id\u0026amp;quot;, \u0026amp;quot;creation_time\u0026amp;quot;, \u0026amp;quot;update_time\u0026amp;quot;. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_2","order":2,"tags":null,"title":"WebhookApi"},{"category":"Python API Client","content":"harbor_client.WebhookjobApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description list_webhook_jobs GET /projects/{project_name_or_id}/webhook/jobs List project webhook jobs list_webhook_jobs Signature list_webhook_jobs(project_name_or_id: str, policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], status: Optional[list[str]])-\u0026gt; list[WebhookJob] List project webhook jobs This endpoint returns webhook jobs of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookjobApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project policy_id = 789 # int | The policy ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) status = [\u0026#39;status_example\u0026#39;] # list[str] | The status of webhook job. (optional) try: # List project webhook jobs api_response = api_instance.list_webhook_jobs(project_name_or_id, policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, q=q, sort=sort, page=page, page_size=page_size, status=status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookjobApi-\u0026gt;list_webhook_jobs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project policy_id int The policy ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] status list[str] The status of webhook job. [optional] Return type list[WebhookJob] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookjobapi/","objectID":"6cd373094223010061a0c03837ec1d0e_0","order":0,"tags":null,"title":"WebhookjobApi"}] \ No newline at end of file +[{"category":"API","content":"","date":"2023-02-13T00:00:00Z","description":"Documentation for Harbor API","href":"https://container-registry.com/docs/harbor-api-client/api/","objectID":"fd67290dcb3c2d101adc432f6c783f71_0","order":0,"tags":null,"title":"API"},{"category":"Models","content":"","date":"2023-02-13T00:00:00Z","description":"Documentation for Harbor models","href":"https://container-registry.com/docs/harbor-api-client/model/","objectID":"701783c9278819aefe0b8373f2d48ceb_0","order":0,"tags":null,"title":"Models"},{"category":"OIDC configuration for Google Workspaces","content":"How to Setup Google Workspace as OIDC Provider for Your Harbor Container Registry In this tutorial, we will show you how to configure all necessary settings in your Google Workspace. The steps appear in chronological order but some of them may be skipped if you already dealt with Google Cloud before. The other tutorial explains what you should do in your Container Registry instance if you want to use OIDC authentication in general. However, before doing anything in Container Registry, you need to complete the configuration on the provider side. Prerequisites You need a custom domain on Container Registry. 1 - Create a New Project in the Google Cloud Platform Although it is not mandatory, we recommend you to create a new project in the Google Cloud Platform for managing your OIDC authentication. You can find detailed instructions in the Google official documentation. If you want to use an existing project, feel free to skip the next part. Steps Upon your first registration in Google Cloud, one project is automatically generated for you. It is usually called My First Project. You will see it on the top left of your console. If you click on the arrow next to it, the list of your projects will be displayed. Here, you can find the New Project button. Give your project a name and hit Create. You will be redirected back to your default project. Click on the arrow next to its name again, select the right project, and hit Open. We will add it to your DNS record and your domain will appear as authorized in the Google Cloud Console. This may take a couple of days. 2 - Configure Google OAuth Consent Screen If you decided to create a new project or if your current one does not have a consent screen yet, you have to configure it before you can acquire your credentials. Inside your Container Registry project: Find APIs and services on the left pane; Select OAuth consent screen; Select User Type; Consult Google official documentation to choose the right one for you; Fill in the mandatory fields: your application name; user support email: an email that users can reach out to you with; developer contact information for the external type of use; Add an authorized domain: use your custom domain name that needs to be authorized in Google Cloud before as explained above. Save your changes, and you will be re-directed to the Scopes configuration. 3 - Configure OAuth Scopes for Container Registry Scopes specify what kind of user data Container Registry can access in your Google account. You need to add three types of scopes: your OpenID; your email; your general profile information, such as your username. To do so: on the Scopes screen, simply click Add or remove scopes; normally, the scopes you need will appear on the top of the list; they should have no description in the API field; scroll down the form and hit Update; You will see the scopes added to non-sensitive scopes: Click Save and continue on the bottom of the scopes page. 4 - Adding Users On the next page, you will be able to add users that must be able to log in to Container Registry. Click Save and Continue when you are finished. 5 - Publish Your Application In the last step, after adding the users, you can review your consent screen data. After that: scroll down the page and hit Back to Dashboard; on the Dashboard, click Publish app and then Confirm to activate the consent screen. Your consent screen – called application – must yet be approved by the Google team. After that, it will be shown as published. In the meantime, you can create your API credentials. 6 - Create Your Google API Credentials for OIDC Find APIs and services on the left pane; Select Credentials; Click + Create credentials; Select OAuth client ID; In the Application type, select Web application from the dropdown; Give it a name; In Authorized redirect URIs, enter the following: https://your-custom-domain.com/c/oidc/callback Hit Create. You will see a dialogue window with your credentials that you can copy directly using the Copy buttons next to them or download as a JSON file. Your credentials can be accessed, edited, downloaded, or deleted at any time on the Credentials page. 7 - Configure OIDC Authentication in Your Container Registry Instance Keep your credentials at hand and proceed to this tutorial to finish the OIDC authentication setup for your Container Registry instance.","date":"2021-10-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-guide/oidc-configuration-for-google-workspaces/","objectID":"da5cdf744ac43dccfdf6d61be7fe2b3e_0","order":0,"tags":null,"title":"OIDC configuration for Google Workspaces"},{"category":"Why Use Container Registry","content":"Why Use Container Registry as a Service Container registries are storages for your container images. It is an essential service for containerization technology that saves you a lot of headaches when you run Kubernetes clusters to test and deploy your containerized applications. Why Use a Container Registry When you work with Kubernetes deployments, you face the chicken-egg dilemma: you cannot keep the images in the cluster but you need them to run it. A container registry keeps all your images that you pull into a Kubernetes cluster when you start it. But Container Registry is even more than that: it is a SaaS platform that helps you to manage your Docker images. Challenges There are quite a few challenges associated with managing your container images. You need to pull container images quickly. You can have more control over the costs of your incoming Kubernetes traffic. Since the traffic might go from one cluster into the other, this might result in additional costs. You need to protect certain images from unauthorized access. You want to avoid bugs and data breaches that can spread between containers since they are built upon each other. If one Docker container has security issues in the source code, all the images built from it will inherit these issues. You want a better structure of your image storage. You do not want to throw them all untagged into the same repository without a chance to find anything inside it later. Solution Consequently, you get enough reasons for using Container Registry: a container registry service that solves all of these problems. Developer Tools You get a solution that can be managed through API and robot accounts (integration users). It can also be operated through CLI tools. You can create webhooks to trigger events further down your CI/CD pipeline. You can replicate images to/from another repository (multiple providers are supported). Storage and Costs The images pushed to Container Registry are compressed and do not require much storage space. Besides, you can control the size of your storage to avoid cost explosion. For enterprise customers, we offer a custom storage. Security Features User Authorization and Authentication You can create users with different roles and permissions deriving from their roles (RBAC). Users can be onboarded using an OIDC provider or LDAP/AD server. Vulnerability Scanning You can run vulnerability checks using different providers. More than one developer may be working on an image and some imperfections may always slip your team\u0026rsquo;s attention. It is important not to let the other images inherit it and ruin your deployments. 2 pre-installed vulnerability scanners. Other Security Features Container Registry supports content trust: enforcing only sign images. Managing Images You can organize your images into projects, as well as tag and label them directly in the GUI. You can make certain tags immutable. You can retire tags automatically. You can delete unused and/or untagged images on schedule. You can get log data that tracks the history of everything that happened in the project. You have access to the build history of every image in the repository. Other Supported Artifacts Container Registry supports Open Container Initiative (OCI). You can store helm charts to manage your Kubernetes deployments. Admin Features In-browser admin portal, accessible from everywhere, on any device. Apart from this, Container Registry provides a simple graphical user interface. Although pushing images requires you to use a command line tool, all other actions can be done with a mouse click. Why Use Container Registry as a Service With our service, you have the latest Harbor technology but do not have to install it by yourself. You only need to log in to your account using a browser. That means that you can access your registry from everywhere. Besides, we fixed quite a few of Harbor\u0026rsquo;s and Docker Hub\u0026rsquo;s issues and offer much better image scanners and other security features.","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/why-use-container-registry/","objectID":"7cc66c81d3ca6b57e8358749b925b2b9_0","order":0,"tags":null,"title":"Why Use Container Registry"},{"category":"Database Authentication","content":"Database Authentication The database user authnetication mode is applied by default. With this mode, all user management happens in the Container Registry GUI and the data is stored in the local database. When selecting this authentication mode, keep in mind that once you added any users (except for yourself) to the instance using the database mode, the instance will be locked from switching to any other mode. Nonetheless, this mode has a few advantages. As a system admin, you can reset or change user passwords and enable self-registration to facilitate the onboarding process of a new users. Activate Database Authentication Mode In the navigation pane on the left, select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select Database; Hit Save. Self-Registration You can allow users to sign up for an account in your instance by activating the self-registration feature: In this case, when users access the URL of your instance, they see the Sign up for an account link. If they click on the link, they will be shown a registration form where they can create their user name. Once a new user filled in and submitted the signup form, this user is added to the instance automatically and appears immediately in the list of users under Administration -\u0026gt; Users.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/database-authentication/","objectID":"ed5bde98367c62b5f085437e50f2a8d9_0","order":0,"tags":null,"title":"Database Authentication"},{"category":"Getting Started Guide","content":"Getting Started If you want to start using Container Registry in a few simple steps, please check the instructions in this chapter. They will help you to get quickly to the point. These tutorials describe registration process and how to push and pull images and provide a short overview of the features. Here is a breakdown of the Table of contents. Feel free to access the individual sections by clicking on the titles in the left sidebar. Prerequisites New User Sign Up Push and Pull Images Other Useful Features","date":"2021-08-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/getting-started-guide/","objectID":"7659d80287131c0137b04dfd52d360ca_0","order":0,"tags":null,"title":"Getting Started Guide"},{"category":"Robot Accounts","content":"Robot Accounts Robot accounts are used to access your project through an API. They perform a limited range of actions that you can specify per account and are generally used for workflow, deployment, and testing automation. Robot accounts created on the project level can access only one project. They cannot be transferred to other projects. To create robots that have access to multiple projects, create system robot accounts as explained here. Overview of Existing Robot Accounts Inside a project, under the Robot Accounts tab, you will find a list of the robot accounts associated with the project. For each robot account, you can see its: name; enabled state; permissions; created time; expiration date if any; description. Robot Account Name The robot account name is used to log in to an external client as a user name. It\u0026rsquo;s built following this naming convention: robot_: permanent part for all robot accounts; project name; the + sign; the variable name that you can specify for this particular robot. Robot Account Secret Robot accounts use a CLI secret to log in to external clients. This secret is generated and displayed once on creation of the account but is not stored anywhere in the project or instance. However, it can be resetted later to generate a new secret. Docker Login With Robot Account Below is an example of how to log in with a robot account in Docker: docker login your-subdomain.container-registry.com -u robot_project_name+robot_variable_name -p 3xiYiY9eaenXDhZHj8k7WGcF5IfSSGVk Robot Account Permissions Upon creation, you can grant the new account all or a few selected permissions: Push artifacts Pull artifacts Delete artifacts Read Helm charts Create a Helm chart version Delete a Helm chart version Create a tag Delete a tag Create artifact labels Create a scan Create a Robot Account Use + NEW ROBOT ACCOUNT to add a new one: Specify its variable name; Set when it should expire: after how many days; or never; Check the permissions you need (by default, all of them are selected); Save it and then make sure that you save the token/CLI secret using one of the methods: copy the token into clipboard with the copy icon and paste it into some text editor (1); EXPORT TO FILE to export it as a JSON file(2). The JSON file looks like the following: { \u0026#34;creation_time\u0026#34;:\u0026#34;2021-08-04T13:58:45.934Z\u0026#34;, \u0026#34;expires_at\u0026#34;:1628949525, \u0026#34;id\u0026#34;:1, \u0026#34;name\u0026#34;:\u0026#34;robot_documentation+test\u0026#34;, \u0026#34;secret\u0026#34;:\u0026#34;D4pGyGP3eFaW8Ako4249kSNCtZ0McxgV\u0026#34; } exprires_at is shown as Unix Epoch. When it is set to never, it shows -1: { \u0026#34;creation_time\u0026#34;:\u0026#34;2021-08-04T14:17:44.764Z\u0026#34;, \u0026#34;expires_at\u0026#34;:-1, \u0026#34;id\u0026#34;:2, \u0026#34;name\u0026#34;:\u0026#34;robot_documentation+test2\u0026#34;, \u0026#34;secret\u0026#34;:\u0026#34;3xiYiY9eaenXDhZHj8k7WGcF5IfSSGVk\u0026#34; } The id in the JSON file reflects a simple sequential numbering of all robot accounts that have ever been created in the instance. Refresh Or Specify Own Secret If you lost the CLI secret (token) for a robot account or you want to specify it by yourself, you can do the following: Select the robot with a checkbox; Go to Actions; Select Refresh robot secret. This will open the following dialogue window. By default, without enabling a manual secret, you can generate a new one by clicking on Refresh: You will see the same dialogue window that was displayed upon creation of the robot account, with the copy to clipboard and export to file options for saving the new token. It won\u0026rsquo;t be possible to retrieve the new secret later. Specify the New Secret Manually If you enable this feature, you can enter your own secret. It should be: between 8 and 20 characters long; the combination of: at least 1 uppercase, at least 1 lowercase; at least 1 number Enable and Disable Robot Accounts Every newly created robot account is enabled by default. You can disable robot accounts. They will stay in the project and can be re-enabled again at any time. It is not possible to change enable status for more than one robot at once; you have to repeat the procedure for every account. Select the robot with a checkbox; Go to Actions; Click Disable/Enable. Edit or Delete Robot Accounts To edit the data that you entered during account creation or to delete one or a few robots: Select the robot with a checkbox (it is not possible to edit them in bulks); Go to Actions; Click Edit or Delete. Change Robot Account Permissions The Edit will open the dialogue window where you can also change permissions.","date":"2021-08-04T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/robot-accounts/","objectID":"5178bd29379b88948070e2d625baa8b7_0","order":0,"tags":null,"title":"Robot Accounts"},{"category":"Repositories","content":"Repositories Repositories can be described as folders within one project. If a project is a storage for images involved in the same application, the repositories can be a method to sort these images depending on the application feature, stage in the development life cycle, or any other factor. Browse and Filter Repositories Inside every project, you will see the list of all its repositories. Similarly to filtering and searching through projects, you can use a search field to find a repository by its name: Create a Repository New repositories can only be created using the command line tool. When you tag an image before pushing it into your project on Container Registry, the first part of the tag is the repository: docker tag hello-world your-subdomain.container-registry.com/library/repository:tag Read more about tagging and pushing images in this tutorial. Refresh Repositories List When you push an image to a new repository and have the project page open in your browser at the same time, you need to refresh the view to see the newly created repository: Change View You can switch between the default list view and card view: The view wil be resetted to the default list view every time you leave the project page. Delete a Repository Deleting a repository can only be done from the GUI. In the List View Select repositories you want to delete or select all by checking the tickbox in the upper left corner of the table. Click the Delete button INFO When you deleted a repository but then push the image tagged with it once again, the same repository will be created anew. To be able to delete only certain repositories in bulks, you can first filter them and then use the checkbox to select all repositories in the result list. In the Card View In the card view, the Delete button is hidden under Actions: Push Command Inside the project, you will find push command templates that help you to tag and push images, Helm charts and other artifacts. Inside a Repository Inside the repository, you can see a list of different artifacts – images, OCI indexes, and helm charts – and some general information about them. Repository Description You can provide your repository with a description in plain text or Markdown format. Inside the repository, go to the Info section: The Markdown format will create a well structured description of your repository. Managing Artifacts Refer to this guide to learn about managing artifacts (images, Helm charts, and tags) in your repository.","date":"2021-08-03T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/repositories/","objectID":"f76c1c66f68421d986b43a00196ef85d_0","order":0,"tags":null,"title":"Repositories"},{"category":"Prerequisites","content":"Prerequisites The only prerequisite for you to get started is to use an OCI compliant container runtime environment, such as Docker or Podman. Check the system and hardware requirements for Docker in its official documentation and follow the instructions to get it running on your machine. You can refer to the respective install guide for Podman.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/prerequisites/","objectID":"4a7ac3c25523c387f4947978f8e3bcfd_0","order":0,"tags":null,"title":"Prerequisites"},{"category":"Access","content":"Access Properties Name Type Description Notes resource str The resource of the access [optional] action str The action of the access [optional] effect str The effect of the access [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/access/","objectID":"0d0a82c7d0bc997074d34b8b0ac6750f_0","order":0,"tags":null,"title":"Access"},{"category":"Accessory","content":"Accessory Properties Name Type Description Notes id int The ID of the accessory [optional] artifact_id int The artifact id of the accessory [optional] subject_artifact_id int The subject artifact id of the accessory [optional] size int The artifact size of the accessory [optional] digest str The artifact digest of the accessory [optional] type str The artifact size of the accessory [optional] icon str The icon of the accessory [optional] creation_time datetime The creation time of the accessory [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/accessory/","objectID":"922f7a5b2f461466e054b140de918790_0","order":0,"tags":null,"title":"Accessory"},{"category":"ActionRequest","content":"ActionRequest Properties Name Type Description Notes action str The action of the request, should be stop, pause or resume [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/actionrequest/","objectID":"715f6338d9fc0237960c0d895a0a61c2_0","order":0,"tags":null,"title":"ActionRequest"},{"category":"AdditionLink","content":"AdditionLink Properties Name Type Description Notes href str The link of the addition [optional] absolute bool Determine whether the link is an absolute URL or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/additionlink/","objectID":"72eec620cfa0ed4f07f29c10e9742997_0","order":0,"tags":null,"title":"AdditionLink"},{"category":"AdditionLinks","content":"AdditionLinks Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/additionlinks/","objectID":"ac8a88b3f1d3dbb7b0b798b3bc7d7958_0","order":0,"tags":null,"title":"AdditionLinks"},{"category":"Annotations","content":"Annotations Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/annotations/","objectID":"c9dc6af732323276a8e4a670c9eca244_0","order":0,"tags":null,"title":"Annotations"},{"category":"Artifact","content":"Artifact Properties Name Type Description Notes id int The ID of the artifact [optional] type str The type of the artifact, e.g. image, chart, etc [optional] media_type str The media type of the artifact [optional] manifest_media_type str The manifest media type of the artifact [optional] project_id int The ID of the project that the artifact belongs to [optional] repository_id int The ID of the repository that the artifact belongs to [optional] digest str The digest of the artifact [optional] size int The size of the artifact [optional] icon str The digest of the icon [optional] push_time datetime The push time of the artifact [optional] pull_time datetime The latest pull time of the artifact [optional] extra_attrs ExtraAttrs [optional] annotations Annotations [optional] references list[Reference] [optional] tags list[Tag] [optional] addition_links AdditionLinks [optional] labels list[Label] [optional] scan_overview ScanOverview The overview of the scan result. [optional] accessories list[Accessory] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/artifact/","objectID":"0fc95dcb8105ca9e4416dd0baa622c2f_0","order":0,"tags":null,"title":"Artifact"},{"category":"AuditLog","content":"AuditLog Properties Name Type Description Notes id int The ID of the audit log entry. [optional] username str Username of the user in this log entry. [optional] resource str Name of the repository in this log entry. [optional] resource_type str Tag of the repository in this log entry. [optional] operation str The operation against the repository in this log entry. [optional] op_time datetime The time when this operation is triggered. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/auditlog/","objectID":"05c65702a7e48a081539c61cc182c8e0_0","order":0,"tags":null,"title":"AuditLog"},{"category":"AuthproxySetting","content":"AuthproxySetting Properties Name Type Description Notes endpoint str The fully qualified URI of login endpoint of authproxy, such as 'https://192.168.1.2:8443/login' [optional] tokenreivew_endpoint str The fully qualified URI of token review endpoint of authproxy, such as 'https://192.168.1.2:8443/tokenreview' [optional] skip_search bool The flag to determine whether Harbor can skip search the user/group when adding him as a member. [optional] verify_cert bool The flag to determine whether Harbor should verify the certificate when connecting to the auth proxy. [optional] server_certificate str The certificate to be pinned when connecting auth proxy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/authproxysetting/","objectID":"aede1acc2547e49270aece05799c0b41_0","order":0,"tags":null,"title":"AuthproxySetting"},{"category":"Body","content":"Body Properties Name Type Description Notes dry_run bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/body/","objectID":"d2e1d20bf6d8b3d1ebbe2a0c4fc4ffb6_0","order":0,"tags":null,"title":"Body"},{"category":"Body1","content":"Body1 Properties Name Type Description Notes action str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/body1/","objectID":"aaa1536b09814f10db0e6229525dd27d_0","order":0,"tags":null,"title":"Body1"},{"category":"BoolConfigItem","content":"BoolConfigItem Properties Name Type Description Notes value bool The boolean value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/boolconfigitem/","objectID":"81954cd3c8b03bc49239275b257c42af_0","order":0,"tags":null,"title":"BoolConfigItem"},{"category":"ChartMetadata","content":"ChartMetadata Properties Name Type Description Notes name str The name of the chart home str The URL to the relevant project page [optional] sources list[str] The URL to the source code of chart [optional] version str A SemVer 2 version of chart description str A one-sentence description of chart [optional] keywords list[str] A list of string keywords [optional] engine str The name of template engine icon str The URL to an icon file api_version str The API version of this chart app_version str The version of the application enclosed in the chart deprecated bool Whether or not this chart is deprecated [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/chartmetadata/","objectID":"cc376b6c58ed4d49fd255e0bd2777308_0","order":0,"tags":null,"title":"ChartMetadata"},{"category":"ChartVersion","content":"ChartVersion Properties Name Type Description Notes labels list[Label] A list of label [optional] created str The created time of the chart entry [optional] removed bool A flag to indicate if the chart entry is removed [optional] digest str The digest value of the chart entry [optional] urls list[str] The urls of the chart entry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/chartversion/","objectID":"e27d2ab7e3a7c95079374391aaccc36c_0","order":0,"tags":null,"title":"ChartVersion"},{"category":"ComponentHealthStatus","content":"ComponentHealthStatus Properties Name Type Description Notes name str The component name [optional] status str The health status of component [optional] error str (optional) The error message when the status is \u0026amp;quot;unhealthy\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/componenthealthstatus/","objectID":"838582a0580f7e46a2c8ddd552f1db0d_0","order":0,"tags":null,"title":"ComponentHealthStatus"},{"category":"Configurations","content":"Configurations Properties Name Type Description Notes auth_mode str The auth mode of current system, such as \u0026amp;quot;db_auth\u0026amp;quot;, \u0026amp;quot;ldap_auth\u0026amp;quot;, \u0026amp;quot;oidc_auth\u0026amp;quot; [optional] ldap_base_dn str The Base DN for LDAP binding. [optional] ldap_filter str The filter for LDAP search [optional] ldap_group_base_dn str The base DN to search LDAP group. [optional] ldap_group_admin_dn str Specify the ldap group which have the same privilege with Harbor admin [optional] ldap_group_attribute_name str The attribute which is used as identity of the LDAP group, default is cn.' [optional] ldap_group_search_filter str The filter to search the ldap group [optional] ldap_group_search_scope int The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' [optional] ldap_scope int The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' [optional] ldap_search_dn str The DN of the user to do the search. [optional] ldap_search_password str The password of the ldap search dn [optional] ldap_timeout int Timeout in seconds for connection to LDAP server [optional] ldap_uid str The attribute which is used as identity for the LDAP binding, such as \u0026amp;quot;CN\u0026amp;quot; or \u0026amp;quot;SAMAccountname\u0026amp;quot; [optional] ldap_url str The URL of LDAP server [optional] ldap_verify_cert bool Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. [optional] ldap_group_membership_attribute str The user attribute to identify the group membership [optional] project_creation_restriction str Indicate who can create projects, it could be ''adminonly'' or ''everyone''. [optional] read_only bool The flag to indicate whether Harbor is in readonly mode. [optional] self_registration bool Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. [optional] token_expiration int The expiration time of the token for internal Registry, in minutes. [optional] uaa_client_id str The client id of UAA [optional] uaa_client_secret str The client secret of the UAA [optional] uaa_endpoint str The endpoint of the UAA [optional] uaa_verify_cert bool Verify the certificate in UAA server [optional] http_authproxy_endpoint str The endpoint of the HTTP auth [optional] http_authproxy_tokenreview_endpoint str The token review endpoint [optional] http_authproxy_admin_groups str The group which has the harbor admin privileges [optional] http_authproxy_admin_usernames str The username which has the harbor admin privileges [optional] http_authproxy_verify_cert bool Verify the HTTP auth provider's certificate [optional] http_authproxy_skip_search bool Search user before onboard [optional] http_authproxy_server_certificate str The certificate of the HTTP auth provider [optional] oidc_name str The OIDC provider name [optional] oidc_endpoint str The endpoint of the OIDC provider [optional] oidc_client_id str The client ID of the OIDC provider [optional] oidc_client_secret str The OIDC provider secret [optional] oidc_groups_claim str The attribute claims the group name [optional] oidc_admin_group str The OIDC group which has the harbor admin privileges [optional] oidc_group_filter str The OIDC group filter which filters out the group name doesn't match the regular expression [optional] oidc_scope str The scope of the OIDC provider [optional] oidc_user_claim str The attribute claims the username [optional] oidc_verify_cert bool Verify the OIDC provider's certificate' [optional] oidc_auto_onboard bool Auto onboard the OIDC user [optional] oidc_extra_redirect_parms str Extra parameters to add when redirect request to OIDC provider [optional] robot_token_duration int The robot account token duration in days [optional] robot_name_prefix str The rebot account name prefix [optional] notification_enable bool Enable notification [optional] quota_per_project_enable bool Enable quota per project [optional] storage_per_project int The storage quota per project [optional] audit_log_forward_endpoint str The audit log forward endpoint [optional] skip_audit_log_database bool Skip audit log database [optional] session_timeout int The session timeout for harbor, in minutes. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurations/","objectID":"e629148ba1e7f17b6e6c75fd546837ce_0","order":0,"tags":null,"title":"Configurations"},{"category":"ConfigurationsResponse","content":"ConfigurationsResponse Properties Name Type Description Notes auth_mode StringConfigItem The auth mode of current system, such as \u0026amp;quot;db_auth\u0026amp;quot;, \u0026amp;quot;ldap_auth\u0026amp;quot;, \u0026amp;quot;oidc_auth\u0026amp;quot; [optional] ldap_base_dn StringConfigItem The Base DN for LDAP binding. [optional] ldap_filter StringConfigItem The filter for LDAP search [optional] ldap_group_base_dn StringConfigItem The base DN to search LDAP group. [optional] ldap_group_admin_dn StringConfigItem Specify the ldap group which have the same privilege with Harbor admin [optional] ldap_group_attribute_name StringConfigItem The attribute which is used as identity of the LDAP group, default is cn.' [optional] ldap_group_search_filter StringConfigItem The filter to search the ldap group [optional] ldap_group_search_scope IntegerConfigItem The scope to search ldap group. ''0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'' [optional] ldap_scope IntegerConfigItem The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE' [optional] ldap_search_dn StringConfigItem The DN of the user to do the search. [optional] ldap_timeout IntegerConfigItem Timeout in seconds for connection to LDAP server [optional] ldap_uid StringConfigItem The attribute which is used as identity for the LDAP binding, such as \u0026amp;quot;CN\u0026amp;quot; or \u0026amp;quot;SAMAccountname\u0026amp;quot; [optional] ldap_url StringConfigItem The URL of LDAP server [optional] ldap_verify_cert BoolConfigItem Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate. [optional] ldap_group_membership_attribute StringConfigItem The user attribute to identify the group membership [optional] project_creation_restriction StringConfigItem Indicate who can create projects, it could be ''adminonly'' or ''everyone''. [optional] read_only BoolConfigItem The flag to indicate whether Harbor is in readonly mode. [optional] self_registration BoolConfigItem Whether the Harbor instance supports self-registration. If it''s set to false, admin need to add user to the instance. [optional] token_expiration IntegerConfigItem The expiration time of the token for internal Registry, in minutes. [optional] uaa_client_id StringConfigItem The client id of UAA [optional] uaa_client_secret StringConfigItem The client secret of the UAA [optional] uaa_endpoint StringConfigItem The endpoint of the UAA [optional] uaa_verify_cert BoolConfigItem Verify the certificate in UAA server [optional] http_authproxy_endpoint StringConfigItem The endpoint of the HTTP auth [optional] http_authproxy_tokenreview_endpoint StringConfigItem The token review endpoint [optional] http_authproxy_admin_groups StringConfigItem The group which has the harbor admin privileges [optional] http_authproxy_admin_usernames StringConfigItem The usernames which has the harbor admin privileges [optional] http_authproxy_verify_cert BoolConfigItem Verify the HTTP auth provider's certificate [optional] http_authproxy_skip_search BoolConfigItem Search user before onboard [optional] http_authproxy_server_certificate StringConfigItem The certificate of the HTTP auth provider [optional] oidc_name StringConfigItem The OIDC provider name [optional] oidc_endpoint StringConfigItem The endpoint of the OIDC provider [optional] oidc_client_id StringConfigItem The client ID of the OIDC provider [optional] oidc_groups_claim StringConfigItem The attribute claims the group name [optional] oidc_admin_group StringConfigItem The OIDC group which has the harbor admin privileges [optional] oidc_group_filter StringConfigItem The OIDC group filter which filters out the group doesn't match the regular expression [optional] oidc_scope StringConfigItem The scope of the OIDC provider [optional] oidc_user_claim StringConfigItem The attribute claims the username [optional] oidc_verify_cert BoolConfigItem Verify the OIDC provider's certificate' [optional] oidc_auto_onboard BoolConfigItem Auto onboard the OIDC user [optional] oidc_extra_redirect_parms StringConfigItem Extra parameters to add when redirect request to OIDC provider [optional] robot_token_duration IntegerConfigItem The robot account token duration in days [optional] robot_name_prefix StringConfigItem The rebot account name prefix [optional] notification_enable BoolConfigItem Enable notification [optional] quota_per_project_enable BoolConfigItem Enable quota per project [optional] storage_per_project IntegerConfigItem The storage quota per project [optional] audit_log_forward_endpoint StringConfigItem The endpoint of the audit log forwarder [optional] skip_audit_log_database BoolConfigItem Whether skip the audit log in database [optional] scan_all_policy ConfigurationsResponseScanAllPolicy [optional] session_timeout IntegerConfigItem The session timeout in minutes [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponse/","objectID":"f59cd09b541ac1d8f9031b56ceb03c5d_0","order":0,"tags":null,"title":"ConfigurationsResponse"},{"category":"ConfigurationsResponseScanAllPolicy","content":"ConfigurationsResponseScanAllPolicy Properties Name Type Description Notes type str The type of scan all policy, currently the valid values are \u0026amp;quot;none\u0026amp;quot; and \u0026amp;quot;daily\u0026amp;quot; [optional] parameter ConfigurationsResponseScanAllPolicyParameter [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponsescanallpolicy/","objectID":"2bde847152a9df6a03e47c866f18969e_0","order":0,"tags":null,"title":"ConfigurationsResponseScanAllPolicy"},{"category":"ConfigurationsResponseScanAllPolicyParameter","content":"ConfigurationsResponseScanAllPolicyParameter Properties Name Type Description Notes daily_time int The offset in seconds of UTC 0 o'clock, only valid when the policy type is \u0026amp;quot;daily\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/configurationsresponsescanallpolicyparameter/","objectID":"56b4dcc91595754b5ceeea4c8d46725a_0","order":0,"tags":null,"title":"ConfigurationsResponseScanAllPolicyParameter"},{"category":"CVEAllowlist","content":"CVEAllowlist Properties Name Type Description Notes id int ID of the allowlist [optional] project_id int ID of the project which the allowlist belongs to. For system level allowlist this attribute is zero. [optional] expires_at int 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. [optional] items list[CVEAllowlistItem] [optional] creation_time datetime The creation time of the allowlist. [optional] update_time datetime The update time of the allowlist. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/cveallowlist/","objectID":"b107d31150adb7e5ede106b7c7983ead_0","order":0,"tags":null,"title":"CVEAllowlist"},{"category":"CVEAllowlistItem","content":"CVEAllowlistItem Properties Name Type Description Notes cve_id str The ID of the CVE, such as \u0026amp;quot;CVE-2019-10164\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/cveallowlistitem/","objectID":"8d03f1a32abab548b20ee2a5030d385e_0","order":0,"tags":null,"title":"CVEAllowlistItem"},{"category":"Endpoint","content":"Endpoint Properties Name Type Description Notes url str The URL of OIDC endpoint to be tested. [optional] verify_cert bool Whether the certificate should be verified [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/endpoint/","objectID":"44a7cd60bb11cbfa30c36668baf7e55c_0","order":0,"tags":null,"title":"Endpoint"},{"category":"Error","content":"Error Properties Name Type Description Notes code str The error code [optional] message str The error message [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/error/","objectID":"b9a8524f2f433a01207349a55bb7f06f_0","order":0,"tags":null,"title":"Error"},{"category":"Errors","content":"Errors Properties Name Type Description Notes errors list[Error] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/errors/","objectID":"a23509704b236e883e8c7e3420763091_0","order":0,"tags":null,"title":"Errors"},{"category":"EventType","content":"EventType Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/eventtype/","objectID":"e7d9644903017b1be84e55c4fa7315e1_0","order":0,"tags":null,"title":"EventType"},{"category":"ExecHistory","content":"ExecHistory Properties Name Type Description Notes id int the id of purge job. [optional] job_name str the job name of purge job. [optional] job_kind str the job kind of purge job. [optional] job_parameters str the job parameters of purge job. [optional] schedule ScheduleObj [optional] job_status str the status of purge job. [optional] deleted bool if purge job was deleted. [optional] creation_time datetime the creation time of purge job. [optional] update_time datetime the update time of purge job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/exechistory/","objectID":"0e067a403e96699e6aa3d3e72553a0c2_0","order":0,"tags":null,"title":"ExecHistory"},{"category":"Execution","content":"Execution Properties Name Type Description Notes id int The ID of execution [optional] vendor_type str The vendor type of execution [optional] vendor_id int The vendor id of execution [optional] status str The status of execution [optional] status_message str The status message of execution [optional] metrics Metrics [optional] trigger str The trigger of execution [optional] extra_attrs ExtraAttrs [optional] start_time str The start time of execution [optional] end_time str The end time of execution [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/execution/","objectID":"c866a567c85ee88e961cd762ff5db5e9_0","order":0,"tags":null,"title":"Execution"},{"category":"ExtraAttrs","content":"ExtraAttrs Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/extraattrs/","objectID":"db959b9695d3630516899810baa11e2d_0","order":0,"tags":null,"title":"ExtraAttrs"},{"category":"FilterStyle","content":"FilterStyle Properties Name Type Description Notes type str The filter type [optional] style str The filter style [optional] values list[str] The filter values [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/filterstyle/","objectID":"15acac66143f2b1921223f5bcd40e7c2_0","order":0,"tags":null,"title":"FilterStyle"},{"category":"GCHistory","content":"GCHistory Properties Name Type Description Notes id int the id of gc job. [optional] job_name str the job name of gc job. [optional] job_kind str the job kind of gc job. [optional] job_parameters str the job parameters of gc job. [optional] schedule ScheduleObj [optional] job_status str the status of gc job. [optional] deleted bool if gc job was deleted. [optional] creation_time datetime the creation time of gc job. [optional] update_time datetime the update time of gc job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/gchistory/","objectID":"67893bd28206f128afab06dc1101db1c_0","order":0,"tags":null,"title":"GCHistory"},{"category":"GeneralInfo","content":"GeneralInfo Properties Name Type Description Notes current_time datetime The current time of the server. [optional] with_notary bool If the Harbor instance is deployed with nested notary. [optional] with_chartmuseum bool If the Harbor instance is deployed with nested chartmuseum. [optional] registry_url str The url of registry against which the docker command should be issued. [optional] external_url str The external URL of Harbor, with protocol. [optional] auth_mode str The auth mode of current Harbor instance. [optional] project_creation_restriction str Indicate who can create projects, it could be 'adminonly' or 'everyone'. [optional] self_registration bool Indicate whether the Harbor instance enable user to register himself. [optional] has_ca_root bool Indicate whether there is a ca root cert file ready for download in the file system. [optional] harbor_version str The build version of Harbor. [optional] registry_storage_provider_name str The storage provider's name of Harbor registry [optional] read_only bool The flag to indicate whether Harbor is in readonly mode. [optional] notification_enable bool The flag to indicate whether notification mechanism is enabled on Harbor instance. [optional] authproxy_settings AuthproxySetting The setting of auth proxy this is only available when Harbor relies on authproxy for authentication. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/generalinfo/","objectID":"846a70b4dbad1e5d6ed9d9ad734e15f5_0","order":0,"tags":null,"title":"GeneralInfo"},{"category":"Icon","content":"Icon Properties Name Type Description Notes content_type str The content type of the icon [optional] content str The base64 encoded content of the icon [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/icon/","objectID":"4ce7b20ea1eb5f555e043740e9bccd42_0","order":0,"tags":null,"title":"Icon"},{"category":"ImmutableRule","content":"ImmutableRule Properties Name Type Description Notes id int [optional] priority int [optional] disabled bool [optional] action str [optional] template str [optional] params dict(str, object) [optional] tag_selectors list[ImmutableSelector] [optional] scope_selectors dict(str, list[ImmutableSelector]) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/immutablerule/","objectID":"d97a2d5069d90370e2c37d4bc48b3f4a_0","order":0,"tags":null,"title":"ImmutableRule"},{"category":"ImmutableSelector","content":"ImmutableSelector Properties Name Type Description Notes kind str [optional] decoration str [optional] pattern str [optional] extras str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/immutableselector/","objectID":"46644088845e48c0e968014e8164e172_0","order":0,"tags":null,"title":"ImmutableSelector"},{"category":"Instance","content":"Instance Properties Name Type Description Notes id int Unique ID [optional] name str Instance name [optional] description str Description of instance [optional] vendor str Based on which driver, identified by ID [optional] endpoint str The service endpoint of this instance [optional] auth_mode str The authentication way supported [optional] auth_info dict(str, str) The auth credential data if exists [optional] status str The health status [optional] enabled bool Whether the instance is activated or not [optional] default bool Whether the instance is default or not [optional] insecure bool Whether the instance endpoint is insecure or not [optional] setup_timestamp int The timestamp of instance setting up [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/instance/","objectID":"b9c3a43d1775c91cc6aef74ae2480706_0","order":0,"tags":null,"title":"Instance"},{"category":"IntegerConfigItem","content":"IntegerConfigItem Properties Name Type Description Notes value int The integer value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/integerconfigitem/","objectID":"473fff943c7e46d6232f5a82a2694bf0_0","order":0,"tags":null,"title":"IntegerConfigItem"},{"category":"InternalConfigurationsResponse","content":"InternalConfigurationsResponse Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/internalconfigurationsresponse/","objectID":"58bd925c8a11c63ef346227930f213bd_0","order":0,"tags":null,"title":"InternalConfigurationsResponse"},{"category":"InternalConfigurationValue","content":"InternalConfigurationValue Properties Name Type Description Notes value object The value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/internalconfigurationvalue/","objectID":"a5b48abc7dabd5c8772746027c437a6a_0","order":0,"tags":null,"title":"InternalConfigurationValue"},{"category":"IsDefault","content":"IsDefault Properties Name Type Description Notes is_default bool A flag indicating whether a scanner registration is default. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/isdefault/","objectID":"6575faf5584533bc04a003dab39ab16b_0","order":0,"tags":null,"title":"IsDefault"},{"category":"JobQueue","content":"JobQueue Properties Name Type Description Notes job_type str The type of the job queue [optional] count int The count of jobs in the job queue [optional] latency int The latency the job queue (seconds) [optional] paused bool The paused status of the job queue [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/jobqueue/","objectID":"264b90d3dc0b44d455989035c65661ea_0","order":0,"tags":null,"title":"JobQueue"},{"category":"Label","content":"Label Properties Name Type Description Notes id int The ID of the label [optional] name str The name the label [optional] description str The description the label [optional] color str The color the label [optional] scope str The scope the label [optional] project_id int The ID of project that the label belongs to [optional] creation_time datetime The creation time the label [optional] update_time datetime The update time of the label [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/label/","objectID":"ffc23091a7ebed23d64b9a668a6d4c3d_0","order":0,"tags":null,"title":"Label"},{"category":"LdapConf","content":"LdapConf Properties Name Type Description Notes ldap_url str The url of ldap service. [optional] ldap_search_dn str The search dn of ldap service. [optional] ldap_search_password str The search password of ldap service. [optional] ldap_base_dn str The base dn of ldap service. [optional] ldap_filter str The serach filter of ldap service. [optional] ldap_uid str The serach uid from ldap service attributes. [optional] ldap_scope int The serach scope of ldap service. [optional] ldap_connection_timeout int The connect timeout of ldap service(second). [optional] ldap_verify_cert bool Verify Ldap server certificate. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapconf/","objectID":"fe0e93d8abc4a21df686ae5ea11c8733_0","order":0,"tags":null,"title":"LdapConf"},{"category":"LdapFailedImportUser","content":"LdapFailedImportUser Properties Name Type Description Notes uid str the uid can't add to system. [optional] error str fail reason. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapfailedimportuser/","objectID":"408924358069e6ec7158f7b89207e3dd_0","order":0,"tags":null,"title":"LdapFailedImportUser"},{"category":"LdapImportUsers","content":"LdapImportUsers Properties Name Type Description Notes ldap_uid_list list[str] selected uid list [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapimportusers/","objectID":"99deac71325589f98237c22fb0d895dc_0","order":0,"tags":null,"title":"LdapImportUsers"},{"category":"LdapPingResult","content":"LdapPingResult Properties Name Type Description Notes success bool Test success [optional] message str The ping operation output message. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldappingresult/","objectID":"429c2d3ec160e5fbefac60c5dae0d5a8_0","order":0,"tags":null,"title":"LdapPingResult"},{"category":"LdapUser","content":"LdapUser Properties Name Type Description Notes username str ldap username. [optional] realname str The user realname from \u0026amp;quot;uid\u0026amp;quot; or \u0026amp;quot;cn\u0026amp;quot; attribute. [optional] email str The user email address from \u0026amp;quot;mail\u0026amp;quot; or \u0026amp;quot;email\u0026amp;quot; attribute. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/ldapuser/","objectID":"e4ea541ca1d547ae61920a93f47f5ffc_0","order":0,"tags":null,"title":"LdapUser"},{"category":"Metadata","content":"Metadata Properties Name Type Description Notes id str id [optional] name str name [optional] icon str icon [optional] maintainers list[str] maintainers [optional] version str version [optional] source str source [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/metadata/","objectID":"c538b81fe9bf3e0a8afcec885490d2c5_0","order":0,"tags":null,"title":"Metadata"},{"category":"Metrics","content":"Metrics Properties Name Type Description Notes task_count int The count of task [optional] success_task_count int The count of success task [optional] error_task_count int The count of error task [optional] pending_task_count int The count of pending task [optional] running_task_count int The count of running task [optional] scheduled_task_count int The count of scheduled task [optional] stopped_task_count int The count of stopped task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/metrics/","objectID":"f5b3cd1b0417d0221f716501cb77fa6e_0","order":0,"tags":null,"title":"Metrics"},{"category":"NativeReportSummary","content":"NativeReportSummary Properties Name Type Description Notes report_id str id of the native scan report [optional] scan_status str The status of the report generating process [optional] severity str The overall severity [optional] duration int The seconds spent for generating the report [optional] summary VulnerabilitySummary [optional] start_time datetime The start time of the scan process that generating report [optional] end_time datetime The end time of the scan process that generating report [optional] complete_percent int The complete percent of the scanning which value is between 0 and 100 [optional] scanner Scanner [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/nativereportsummary/","objectID":"8357dfbc1f5c3e81619f22f92e8c125e_0","order":0,"tags":null,"title":"NativeReportSummary"},{"category":"NotifyType","content":"NotifyType Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/notifytype/","objectID":"6e442da8dc01b195b3c52a95d6d22e47_0","order":0,"tags":null,"title":"NotifyType"},{"category":"OIDC configuration for Azure AD","content":"How to Set up Azure Active Directory as OIDC Provider for Your Harbor Container Registry This guide will walk you through the setup of Harbor with Azure AD (Azure Active Directory) using OIDC (OpenID Connect). The other tutorial explains what you should do in your Container Registry instance if you want to use OIDC authentication in general. However, before doing anything in Container Registry, you need to complete the configuration on the provider side. Prerequisites You need a custom domain on Container Registry. 1 - In Azure Active Directory Azure Active Directory \u0026ndash;\u0026gt; App Registrations \u0026ndash;\u0026gt; New Registration Name it as you like (eg. 8gears container registry) Choose accounts in this organizational directory only (though your use case may vary) Redirect URI: Web \u0026lt;\u0026ndash; This is important. Set the value to: https://YOUR-CORE-HARBOR-DOMAIN/c/oidc/callback \u0026laquo;- This value is also on the bottom of the Configuration \u0026ndash;\u0026gt; Authentication tab in the Harbor dashboard. Make note of the Application client ID \u0026amp; the directory tenant ID Click Certificates \u0026amp; secrets \u0026ndash;\u0026gt; Client secrets \u0026ndash;\u0026gt; +New client secret. Set the expiration to whenever you want to rotate it. Copy this value. 2 - Harbor OIDC Configuration In the Harbor dashboard go to Configuration \u0026ndash;\u0026gt; Authentication. Auth Mode \u0026ndash;\u0026gt; OIDC OIDC Endpoint \u0026ndash;\u0026gt; https://login.microsoftonline.com/TENANT ID FROM ABOVE/v2.0 OIDC Client ID \u0026ndash;\u0026gt; CLIENT ID FROM ABOVE OIDC Client Secret \u0026ndash;\u0026gt; SECRET FROM ABOVE Group Claim Name \u0026ndash;\u0026gt; groups OIDC Scope \u0026ndash;\u0026gt; openid,email,profile,offline_access Save it. This will now enable a Groups tab in the Harbor dashboard. It\u0026rsquo;s going to be populated with the Azure AD Object ID of the groups found. I believe it\u0026rsquo;s populated with groups found by users who log in. Have your users go to the Harbor dashboard login screen and choose LOGIN VIA OIDC PROVIDER. Users can than choose their username in Harbor. The prefilled suggestion default to Firstname_Lastname. Once logged-in users have access to basically nothing until you add them to Projects. Add an Azure AD groups Object ID to a project and those users have the specified level of access to that Harbor project now. Group Name don\u0026rsquo;t work - you have to use Object ID. Once logged-in user can go to their User Profile and grab the CLI secret, which is what user want to use with their local docker/podman client to push/pull images from the projects they have access too.","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-guide/oidc-configuration-for-azure-ad/","objectID":"ef39518d9bd9117eefe70f7c220828ed_0","order":0,"tags":null,"title":"OIDC configuration for Azure AD"},{"category":"OIDCCliSecretReq","content":"OIDCCliSecretReq Properties Name Type Description Notes secret str The new secret [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/oidcclisecretreq/","objectID":"14a6feecbdd2342131b78b121eaa0498_0","order":0,"tags":null,"title":"OIDCCliSecretReq"},{"category":"OIDCUserInfo","content":"OIDCUserInfo Properties Name Type Description Notes id int the ID of the OIDC info record [optional] user_id int the ID of the user [optional] subiss str the concatenation of sub and issuer in the ID token [optional] secret str the secret of the OIDC user that can be used for CLI to push/pull artifacts [optional] creation_time datetime The creation time of the OIDC user info record. [optional] update_time datetime The update time of the OIDC user info record. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/oidcuserinfo/","objectID":"cef561e2103f8dfa566532b7c0b2eacf_0","order":0,"tags":null,"title":"OIDCUserInfo"},{"category":"OverallHealthStatus","content":"OverallHealthStatus Properties Name Type Description Notes status str The overall health status. It is \u0026amp;quot;healthy\u0026amp;quot; only when all the components' status are \u0026amp;quot;healthy\u0026amp;quot; [optional] components list[ComponentHealthStatus] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/overallhealthstatus/","objectID":"549cfafc5225d6ca55e44ca0267fa1a1_0","order":0,"tags":null,"title":"OverallHealthStatus"},{"category":"PasswordReq","content":"PasswordReq Properties Name Type Description Notes old_password str The user's existing password. [optional] new_password str New password for marking as to be updated. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/passwordreq/","objectID":"8e70bfd090f23c078d0cc6485d28b6ab_0","order":0,"tags":null,"title":"PasswordReq"},{"category":"Permission","content":"Permission Properties Name Type Description Notes resource str The permission resoruce [optional] action str The permission action [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/permission/","objectID":"d912209133436457947e0c8611552c9c_0","order":0,"tags":null,"title":"Permission"},{"category":"Platform","content":"Platform Properties Name Type Description Notes architecture str The architecture that the artifact applys to [optional] os str The OS that the artifact applys to [optional] os_version str The version of the OS that the artifact applys to [optional] os_features list[str] The features of the OS that the artifact applys to [optional] variant str The variant of the CPU [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/platform/","objectID":"d0f13d9898065f54a45e494227cc9ac0_0","order":0,"tags":null,"title":"Platform"},{"category":"PreheatPolicy","content":"PreheatPolicy Properties Name Type Description Notes id int The ID of preheat policy [optional] name str The Name of preheat policy [optional] description str The Description of preheat policy [optional] project_id int The ID of preheat policy project [optional] provider_id int The ID of preheat policy provider [optional] provider_name str The Name of preheat policy provider [optional] filters str The Filters of preheat policy [optional] trigger str The Trigger of preheat policy [optional] enabled bool Whether the preheat policy enabled [optional] creation_time datetime The Create Time of preheat policy [optional] update_time datetime The Update Time of preheat policy [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/preheatpolicy/","objectID":"0856561127ff1f8eab6df911aaa13404_0","order":0,"tags":null,"title":"PreheatPolicy"},{"category":"Project","content":"Project Properties Name Type Description Notes project_id int Project ID [optional] owner_id int The owner ID of the project always means the creator of the project. [optional] name str The name of the project. [optional] registry_id int The ID of referenced registry when the project is a proxy cache project. [optional] creation_time datetime The creation time of the project. [optional] update_time datetime The update time of the project. [optional] deleted bool A deletion mark of the project. [optional] owner_name str The owner name of the project. [optional] togglable bool Correspond to the UI about whether the project's publicity is updatable (for UI) [optional] current_user_role_id int 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. [optional] current_user_role_ids list[int] The list of role ID of the current user who triggered the API (for UI) [optional] repo_count int The number of the repositories under this project. [optional] chart_count int The total number of charts under this project. [optional] metadata ProjectMetadata The metadata of the project. [optional] cve_allowlist CVEAllowlist The CVE allowlist of this project. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/project/","objectID":"84e6196cf1607acf904daa3f8aaac594_0","order":0,"tags":null,"title":"Project"},{"category":"ProjectDeletable","content":"ProjectDeletable Properties Name Type Description Notes deletable bool Whether the project can be deleted. [optional] message str The detail message when the project can not be deleted. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectdeletable/","objectID":"889e727aac59d262dd8f751218d0a99b_0","order":0,"tags":null,"title":"ProjectDeletable"},{"category":"ProjectMember","content":"ProjectMember Properties Name Type Description Notes role_id int The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer [optional] member_user UserEntity [optional] member_group UserGroup [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmember/","objectID":"1ee0a3379be492f1f4ac195d24b424bb_0","order":0,"tags":null,"title":"ProjectMember"},{"category":"ProjectMemberEntity","content":"ProjectMemberEntity Properties Name Type Description Notes id int the project member id [optional] project_id int the project id [optional] entity_name str the name of the group member. [optional] role_name str the name of the role [optional] role_id int the role id [optional] entity_id int 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. [optional] entity_type str the entity's type, u for user entity, g for group entity. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmemberentity/","objectID":"2c5fccf84ca0ec748dee57e238a2cc17_0","order":0,"tags":null,"title":"ProjectMemberEntity"},{"category":"ProjectMetadata","content":"ProjectMetadata Properties Name Type Description Notes public str The public status of the project. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] enable_content_trust str Whether content trust is enabled or not. If it is enabled, user can't pull unsigned images from this project. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] enable_content_trust_cosign str 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 \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] prevent_vul str Whether prevent the vulnerable images from running. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] severity str If the vulnerability is high than severity defined here, the images can't be pulled. The valid values are \u0026amp;quot;none\u0026amp;quot;, \u0026amp;quot;low\u0026amp;quot;, \u0026amp;quot;medium\u0026amp;quot;, \u0026amp;quot;high\u0026amp;quot;, \u0026amp;quot;critical\u0026amp;quot;. [optional] auto_scan str Whether scan images automatically when pushing. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. [optional] reuse_sys_cve_allowlist str Whether this project reuse the system level CVE allowlist as the allowlist of its own. The valid values are \u0026amp;quot;true\u0026amp;quot;, \u0026amp;quot;false\u0026amp;quot;. If it is set to \u0026amp;quot;true\u0026amp;quot; the actual allowlist associate with this project, if any, will be ignored. [optional] retention_id str The ID of the tag retention policy for the project [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectmetadata/","objectID":"afaaed877dc6166a289c6bb85f4bff80_0","order":0,"tags":null,"title":"ProjectMetadata"},{"category":"ProjectReq","content":"ProjectReq Properties Name Type Description Notes project_name str The name of the project. [optional] public bool deprecated, reserved for project creation in replication [optional] metadata ProjectMetadata The metadata of the project. [optional] cve_allowlist CVEAllowlist The CVE allowlist of the project. [optional] storage_limit int The storage quota of the project. [optional] registry_id int The ID of referenced registry when creating the proxy cache project [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectreq/","objectID":"a5ebb6091ad35c44c244bc82d28cb1ab_0","order":0,"tags":null,"title":"ProjectReq"},{"category":"ProjectScanner","content":"ProjectScanner Properties Name Type Description Notes uuid str The identifier of the scanner registration","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectscanner/","objectID":"68524be383bca65a0ef83c6678204224_0","order":0,"tags":null,"title":"ProjectScanner"},{"category":"ProjectSummary","content":"ProjectSummary Properties Name Type Description Notes repo_count int The number of the repositories under this project. [optional] chart_count int The total number of charts under this project. [optional] project_admin_count int The total number of project admin members. [optional] maintainer_count int The total number of maintainer members. [optional] developer_count int The total number of developer members. [optional] guest_count int The total number of guest members. [optional] limited_guest_count int The total number of limited guest members. [optional] quota ProjectSummaryQuota [optional] registry Registry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectsummary/","objectID":"51543ba405b00e1fc1654515f1e32bc0_0","order":0,"tags":null,"title":"ProjectSummary"},{"category":"ProjectSummaryQuota","content":"ProjectSummaryQuota Properties Name Type Description Notes hard ResourceList The hard limits of the quota [optional] used ResourceList The used status of the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/projectsummaryquota/","objectID":"26056b5fb3e73f526518d029b03a6609_0","order":0,"tags":null,"title":"ProjectSummaryQuota"},{"category":"ProviderUnderProject","content":"ProviderUnderProject Properties Name Type Description Notes id int [optional] provider str [optional] enabled bool [optional] default bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/providerunderproject/","objectID":"0d7e004ac62e3ee86e55b21facc452c6_0","order":0,"tags":null,"title":"ProviderUnderProject"},{"category":"Quota","content":"Quota Properties Name Type Description Notes id int ID of the quota [optional] ref QuotaRefObject The reference object of the quota [optional] hard ResourceList The hard limits of the quota [optional] used ResourceList The used status of the quota [optional] creation_time datetime the creation time of the quota [optional] update_time datetime the update time of the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quota/","objectID":"146029f117e5344666b1e2803e1adf81_0","order":0,"tags":null,"title":"Quota"},{"category":"QuotaRefObject","content":"QuotaRefObject Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quotarefobject/","objectID":"97465e43a2d1e7df88fd049d532c3540_0","order":0,"tags":null,"title":"QuotaRefObject"},{"category":"QuotaUpdateReq","content":"QuotaUpdateReq Properties Name Type Description Notes hard ResourceList The new hard limits for the quota [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/quotaupdatereq/","objectID":"cbc241d81fee050820f3a8f9f648f5b8_0","order":0,"tags":null,"title":"QuotaUpdateReq"},{"category":"Reference","content":"Reference Properties Name Type Description Notes parent_id int The parent ID of the reference [optional] child_id int The child ID of the reference [optional] child_digest str The digest of the child artifact [optional] platform Platform [optional] annotations Annotations [optional] urls list[str] The download URLs [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/reference/","objectID":"5bef4ee67bfda74f407f9d9cb96fd658_0","order":0,"tags":null,"title":"Reference"},{"category":"Registry","content":"Registry Properties Name Type Description Notes id int The registry ID. [optional] url str The registry URL string. [optional] name str The registry name. [optional] credential RegistryCredential [optional] type str Type of the registry, e.g. 'harbor'. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional] description str Description of the registry. [optional] status str Health status of the registry. [optional] creation_time datetime The create time of the policy. [optional] update_time datetime The update time of the policy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registry/","objectID":"99ad2ffba0a3a2278ba0a8d1a0a4c291_0","order":0,"tags":null,"title":"Registry"},{"category":"RegistryCredential","content":"RegistryCredential Properties Name Type Description Notes type str Credential type, such as 'basic', 'oauth'. [optional] access_key str Access key, e.g. user name when credential type is 'basic'. [optional] access_secret str Access secret, e.g. password when credential type is 'basic'. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registrycredential/","objectID":"1604f9260852854473c61464146ec5fa_0","order":0,"tags":null,"title":"RegistryCredential"},{"category":"RegistryEndpoint","content":"RegistryEndpoint Properties Name Type Description Notes key str The endpoint key [optional] value str The endpoint value [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryendpoint/","objectID":"364a523e04eaf1080694edaa1b46d67b_0","order":0,"tags":null,"title":"RegistryEndpoint"},{"category":"RegistryInfo","content":"RegistryInfo Properties Name Type Description Notes type str The registry type [optional] description str The description [optional] supported_resource_filters list[FilterStyle] The filters that the registry supports [optional] supported_triggers list[str] The triggers that the registry supports [optional] supported_copy_by_chunk bool The registry whether support copy by chunk. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryinfo/","objectID":"b1eb542623090e8a605dd2de10cffeea_0","order":0,"tags":null,"title":"RegistryInfo"},{"category":"RegistryPing","content":"RegistryPing Properties Name Type Description Notes id int The registry ID. [optional] type str Type of the registry, e.g. 'harbor'. [optional] url str The registry URL. [optional] credential_type str Credential type of the registry, e.g. 'basic'. [optional] access_key str The registry access key. [optional] access_secret str The registry access secret. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryping/","objectID":"012636962d7b954a87c33a563bf4f118_0","order":0,"tags":null,"title":"RegistryPing"},{"category":"RegistryProviderCredentialPattern","content":"RegistryProviderCredentialPattern Properties Name Type Description Notes access_key_type str The access key type [optional] access_key_data str The access key data [optional] access_secret_type str The access secret type [optional] access_secret_data str The access secret data [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryprovidercredentialpattern/","objectID":"3be6ae5443127fc489b5fe1630984e58_0","order":0,"tags":null,"title":"RegistryProviderCredentialPattern"},{"category":"RegistryProviderEndpointPattern","content":"RegistryProviderEndpointPattern Properties Name Type Description Notes endpoint_type str The endpoint type [optional] endpoints list[RegistryEndpoint] The endpoint list [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryproviderendpointpattern/","objectID":"24e62ea1c4dba84d298341f63c42cb3a_0","order":0,"tags":null,"title":"RegistryProviderEndpointPattern"},{"category":"RegistryProviderInfo","content":"RegistryProviderInfo Properties Name Type Description Notes endpoint_pattern RegistryProviderEndpointPattern The endpoint pattern [optional] credential_pattern RegistryProviderCredentialPattern The credential pattern [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryproviderinfo/","objectID":"9a76a240bac408880b13d274f52acb91_0","order":0,"tags":null,"title":"RegistryProviderInfo"},{"category":"RegistryUpdate","content":"RegistryUpdate Properties Name Type Description Notes name str The registry name. [optional] description str Description of the registry. [optional] url str The registry URL. [optional] credential_type str Credential type of the registry, e.g. 'basic'. [optional] access_key str The registry access key. [optional] access_secret str The registry access secret. [optional] insecure bool Whether or not the certificate will be verified when Harbor tries to access the server. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/registryupdate/","objectID":"f1d13f821849c520b43a9c999f2644ee_0","order":0,"tags":null,"title":"RegistryUpdate"},{"category":"ReplicationExecution","content":"ReplicationExecution Properties Name Type Description Notes id int The ID of the execution [optional] policy_id int The ID if the policy that the execution belongs to [optional] status str The status of the execution [optional] trigger str The trigger mode [optional] start_time datetime The start time [optional] end_time datetime The end time [optional] status_text str The status text [optional] total int The total count of all executions [optional] failed int The count of failed executions [optional] succeed int The count of succeed executions [optional] in_progress int The count of in_progress executions [optional] stopped int The count of stopped executions [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationexecution/","objectID":"450165ee54d20aab4cfcf505d06907ff_0","order":0,"tags":null,"title":"ReplicationExecution"},{"category":"ReplicationFilter","content":"ReplicationFilter Properties Name Type Description Notes type str The replication policy filter type. [optional] value object The value of replication policy filter. [optional] decoration str matches or excludes the result [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationfilter/","objectID":"66de82f0968a87db20741659be65f083_0","order":0,"tags":null,"title":"ReplicationFilter"},{"category":"ReplicationPolicy","content":"ReplicationPolicy Properties Name Type Description Notes id int The policy ID. [optional] name str The policy name. [optional] description str The description of the policy. [optional] src_registry Registry The source registry. [optional] dest_registry Registry The destination registry. [optional] dest_namespace str The destination namespace. [optional] dest_namespace_replace_count int 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. [optional] trigger ReplicationTrigger [optional] filters list[ReplicationFilter] The replication policy filter array. [optional] replicate_deletion bool Whether to replicate the deletion operation. [optional] deletion bool Deprecated, use \u0026amp;quot;replicate_deletion\u0026amp;quot; instead. Whether to replicate the deletion operation. [optional] override bool Whether to override the resources on the destination registry. [optional] enabled bool Whether the policy is enabled or not. [optional] creation_time datetime The create time of the policy. [optional] update_time datetime The update time of the policy. [optional] speed int speed limit for each task [optional] copy_by_chunk bool Whether to enable copy by chunk. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationpolicy/","objectID":"c68de375b940745c6353c4081909a815_0","order":0,"tags":null,"title":"ReplicationPolicy"},{"category":"ReplicationTask","content":"ReplicationTask Properties Name Type Description Notes id int The ID of the task [optional] execution_id int The ID of the execution that the task belongs to [optional] status str The status of the task [optional] job_id str The ID of the underlying job that the task related to [optional] operation str The operation of the task [optional] resource_type str The type of the resource that the task operates [optional] src_resource str The source resource that the task operates [optional] dst_resource str The destination resource that the task operates [optional] start_time datetime The start time of the task [optional] end_time datetime The end time of the task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtask/","objectID":"32dbf40ebaa9020ada4538b79bad66b6_0","order":0,"tags":null,"title":"ReplicationTask"},{"category":"ReplicationTrigger","content":"ReplicationTrigger Properties Name Type Description Notes type str The replication policy trigger type. The valid values are manual, event_based and scheduled. [optional] trigger_settings ReplicationTriggerSettings [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtrigger/","objectID":"30caa4a277395cd67ed1afcce35cb710_0","order":0,"tags":null,"title":"ReplicationTrigger"},{"category":"ReplicationTriggerSettings","content":"ReplicationTriggerSettings Properties Name Type Description Notes cron str The cron string for scheduled trigger [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/replicationtriggersettings/","objectID":"77fcf4be060bbb25bb7b41a55ae96e00_0","order":0,"tags":null,"title":"ReplicationTriggerSettings"},{"category":"Repository","content":"Repository Properties Name Type Description Notes id int The ID of the repository [optional] project_id int The ID of the project that the repository belongs to [optional] name str The name of the repository [optional] description str The description of the repository [optional] artifact_count int The count of the artifacts inside the repository [optional] pull_count int The count that the artifact inside the repository pulled [optional] creation_time datetime The creation time of the repository [optional] update_time datetime The update time of the repository [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/repository/","objectID":"20d1e5277d30ff2c6a22ae34f43ce07b_0","order":0,"tags":null,"title":"Repository"},{"category":"ResourceList","content":"ResourceList Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/resourcelist/","objectID":"81a1bad107dc4b0b0b27509e7697da95_0","order":0,"tags":null,"title":"ResourceList"},{"category":"RetentionExecution","content":"RetentionExecution Properties Name Type Description Notes id int [optional] policy_id int [optional] start_time str [optional] end_time str [optional] status str [optional] trigger str [optional] dry_run bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionexecution/","objectID":"cfb981b02e61c5dfc9591053f93c0048_0","order":0,"tags":null,"title":"RetentionExecution"},{"category":"RetentionExecutionTask","content":"RetentionExecutionTask Properties Name Type Description Notes id int [optional] execution_id int [optional] repository str [optional] job_id str [optional] status str [optional] status_code int [optional] status_revision int [optional] start_time str [optional] end_time str [optional] total int [optional] retained int [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionexecutiontask/","objectID":"7f67f49dc8bba3acd5a15405cf7c2e03_0","order":0,"tags":null,"title":"RetentionExecutionTask"},{"category":"RetentionMetadata","content":"RetentionMetadata Properties Name Type Description Notes templates list[RetentionRuleMetadata] templates [optional] scope_selectors list[RetentionSelectorMetadata] supported scope selectors [optional] tag_selectors list[RetentionSelectorMetadata] supported tag selectors [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionmetadata/","objectID":"23bc13525bac61975557721bd9f0fb73_0","order":0,"tags":null,"title":"RetentionMetadata"},{"category":"RetentionPolicy","content":"RetentionPolicy Properties Name Type Description Notes id int [optional] algorithm str [optional] rules list[RetentionRule] [optional] trigger RetentionRuleTrigger [optional] scope RetentionPolicyScope [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionpolicy/","objectID":"e041edc2a145708fc7a3834b6a7bf79a_0","order":0,"tags":null,"title":"RetentionPolicy"},{"category":"RetentionPolicyScope","content":"RetentionPolicyScope Properties Name Type Description Notes level str [optional] ref int [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionpolicyscope/","objectID":"b37f48ff8e0160bf1178839335a6cef3_0","order":0,"tags":null,"title":"RetentionPolicyScope"},{"category":"RetentionRule","content":"RetentionRule Properties Name Type Description Notes id int [optional] priority int [optional] disabled bool [optional] action str [optional] template str [optional] params dict(str, object) [optional] tag_selectors list[RetentionSelector] [optional] scope_selectors dict(str, list[RetentionSelector]) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionrule/","objectID":"ce63c73e63b31ad71b7cd70949e24eb8_0","order":0,"tags":null,"title":"RetentionRule"},{"category":"RetentionRuleMetadata","content":"RetentionRuleMetadata Properties Name Type Description Notes rule_template str rule id [optional] display_text str rule display text [optional] action str rule action [optional] params list[RetentionRuleParamMetadata] rule params [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionrulemetadata/","objectID":"25a170630c56ccfee76b9a871453f7ed_0","order":0,"tags":null,"title":"RetentionRuleMetadata"},{"category":"RetentionRuleParamMetadata","content":"RetentionRuleParamMetadata Properties Name Type Description Notes type str [optional] unit str [optional] required bool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionruleparammetadata/","objectID":"02fc7323ebbaae414fed468455ad2c67_0","order":0,"tags":null,"title":"RetentionRuleParamMetadata"},{"category":"RetentionRuleTrigger","content":"RetentionRuleTrigger Properties Name Type Description Notes kind str [optional] settings object [optional] references object [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionruletrigger/","objectID":"8baca87988c1ee5615ad0a373574d2c2_0","order":0,"tags":null,"title":"RetentionRuleTrigger"},{"category":"RetentionSelector","content":"RetentionSelector Properties Name Type Description Notes kind str [optional] decoration str [optional] pattern str [optional] extras str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionselector/","objectID":"68e2d27370c93b2e207d01e29e05d6ea_0","order":0,"tags":null,"title":"RetentionSelector"},{"category":"RetentionSelectorMetadata","content":"RetentionSelectorMetadata Properties Name Type Description Notes display_text str [optional] kind str [optional] decorations list[str] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/retentionselectormetadata/","objectID":"a543c1e29d9810a5ca307a68730d10cf_0","order":0,"tags":null,"title":"RetentionSelectorMetadata"},{"category":"Robot","content":"Robot Properties Name Type Description Notes id int The ID of the robot [optional] name str The name of the tag [optional] description str The description of the robot [optional] secret str The secret of the robot [optional] level str The level of the robot, project or system [optional] duration int The duration of the robot in days [optional] editable bool The editable status of the robot [optional] disable bool The disable status of the robot [optional] expires_at int The expiration data of the robot [optional] permissions list[RobotPermission] [optional] creation_time datetime The creation time of the robot. [optional] update_time datetime The update time of the robot. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robot/","objectID":"85c5bf49a019113f760a27ee35a33c0b_0","order":0,"tags":null,"title":"Robot"},{"category":"RobotCreate","content":"RobotCreate Properties Name Type Description Notes name str The name of the tag [optional] description str The description of the robot [optional] secret str The secret of the robot [optional] level str The level of the robot, project or system [optional] disable bool The disable status of the robot [optional] duration int The duration of the robot in days [optional] permissions list[RobotPermission] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreate/","objectID":"3d363599432883f912626e8b430a4c7d_0","order":0,"tags":null,"title":"RobotCreate"},{"category":"RobotCreated","content":"RobotCreated Properties Name Type Description Notes id int The ID of the robot [optional] name str The name of the tag [optional] secret str The secret of the robot [optional] creation_time datetime The creation time of the robot. [optional] expires_at int The expiration data of the robot [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreated/","objectID":"15432a836f50b7a2e396c1a20456c856_0","order":0,"tags":null,"title":"RobotCreated"},{"category":"RobotCreateV1","content":"RobotCreateV1 Properties Name Type Description Notes name str The name of robot account [optional] description str The description of robot account [optional] expires_at int The expiration time on or after which the JWT MUST NOT be accepted for processing. [optional] access list[Access] The permission of robot account [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotcreatev1/","objectID":"970fa7403d5132fd1dedbedf034ea39f_0","order":0,"tags":null,"title":"RobotCreateV1"},{"category":"RobotPermission","content":"RobotPermission Properties Name Type Description Notes kind str The kind of the permission [optional] namespace str The namespace of the permission [optional] access list[Access] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotpermission/","objectID":"1ad15f1108417734fbc793b87edb5af4_0","order":0,"tags":null,"title":"RobotPermission"},{"category":"RobotSec","content":"RobotSec Properties Name Type Description Notes secret str The secret of the robot [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/robotsec/","objectID":"efda5d3563416ce335af066f403c47e4_0","order":0,"tags":null,"title":"RobotSec"},{"category":"RoleRequest","content":"RoleRequest Properties Name Type Description Notes role_id int The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/rolerequest/","objectID":"1e101e18a163352a3f6c6bb72dfb8a78_0","order":0,"tags":null,"title":"RoleRequest"},{"category":"ScanDataExportExecution","content":"ScanDataExportExecution Properties Name Type Description Notes id int The ID of the execution [optional] user_id int The ID if the user triggering the export job [optional] status str The status of the execution [optional] trigger str The trigger mode [optional] start_time datetime The start time [optional] end_time datetime The end time [optional] status_text str The status text [optional] user_name str The name of the user triggering the job [optional] file_present bool Indicates whether the export artifact is present in registry [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportexecution/","objectID":"f79bec47d23f9d0bb835e5422b3f99fb_0","order":0,"tags":null,"title":"ScanDataExportExecution"},{"category":"ScanDataExportExecutionList","content":"ScanDataExportExecutionList Properties Name Type Description Notes items list[ScanDataExportExecution] The list of scan data export executions [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportexecutionlist/","objectID":"ac2bdb0ac169556019aef07f82d4cba8_0","order":0,"tags":null,"title":"ScanDataExportExecutionList"},{"category":"ScanDataExportJob","content":"ScanDataExportJob Properties Name Type Description Notes id int The id of the scan data export job [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportjob/","objectID":"d10b322588d8b1b41011bea6955249d8_0","order":0,"tags":null,"title":"ScanDataExportJob"},{"category":"ScanDataExportRequest","content":"ScanDataExportRequest Properties Name Type Description Notes job_name str Name of the scan data export job [optional] projects list[int] 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. [optional] labels list[int] A list of one or more labels for which to export the scan data, defaults to all if empty [optional] repositories str A list of repositories for which to export the scan data, defaults to all if empty [optional] cve_ids str CVE-IDs for which to export data. Multiple CVE-IDs can be specified by separating using ',' and enclosed between '{}'. Defaults to all if empty [optional] tags str A list of tags enclosed within '{}'. Defaults to all if empty [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scandataexportrequest/","objectID":"865e9dc1f5494a4d1259aa1df5317173_0","order":0,"tags":null,"title":"ScanDataExportRequest"},{"category":"Scanner","content":"Scanner Properties Name Type Description Notes name str Name of the scanner [optional] vendor str Name of the scanner provider [optional] version str Version of the scanner adapter [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanner/","objectID":"56d707cf57a98ee31ae50dc05d2b76d6_0","order":0,"tags":null,"title":"Scanner"},{"category":"ScannerAdapterMetadata","content":"ScannerAdapterMetadata Properties Name Type Description Notes scanner Scanner [optional] capabilities list[ScannerCapability] [optional] properties dict(str, str) [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanneradaptermetadata/","objectID":"75fe187b0f06b2706f61f24a2c1b045d_0","order":0,"tags":null,"title":"ScannerAdapterMetadata"},{"category":"ScannerCapability","content":"ScannerCapability Properties Name Type Description Notes consumes_mime_types list[str] [optional] produces_mime_types list[str] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannercapability/","objectID":"6a07db3861755ea2236ba3bdd76480e7_0","order":0,"tags":null,"title":"ScannerCapability"},{"category":"ScannerRegistration","content":"ScannerRegistration Properties Name Type Description Notes uuid str The unique identifier of this registration. [optional] name str The name of this registration. [optional] description str An optional description of this registration. [optional] url str A base URL of the scanner adapter [optional] disabled bool Indicate whether the registration is enabled or not [optional] [default to False] is_default bool Indicate if the registration is set as the system default one [optional] [default to False] auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] [default to \u0026lsquo;\u0026rsquo;] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional] skip_cert_verify bool Indicate if skip the certificate verification when sending HTTP requests [optional] [default to False] use_internal_addr bool Indicate whether use internal registry addr for the scanner to pull content or not [optional] [default to False] create_time datetime The creation time of this registration [optional] update_time datetime The update time of this registration [optional] adapter str Optional property to describe the name of the scanner registration [optional] vendor str Optional property to describe the vendor of the scanner registration [optional] version str Optional property to describe the version of the scanner registration [optional] health str Indicate the healthy of the registration [optional] [default to \u0026lsquo;\u0026rsquo;]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistration/","objectID":"322ce65785f9b859af33a18828f4b46d_0","order":0,"tags":null,"title":"ScannerRegistration"},{"category":"ScannerRegistrationReq","content":"ScannerRegistrationReq Properties Name Type Description Notes name str The name of this registration description str An optional description of this registration. [optional] url str A base URL of the scanner adapter. auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional] skip_cert_verify bool Indicate if skip the certificate verification when sending HTTP requests [optional] [default to False] use_internal_addr bool Indicate whether use internal registry addr for the scanner to pull content or not [optional] [default to False] disabled bool Indicate whether the registration is enabled or not [optional] [default to False]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistrationreq/","objectID":"0b2e47bcc131402d6d2b458205807b91_0","order":0,"tags":null,"title":"ScannerRegistrationReq"},{"category":"ScannerRegistrationSettings","content":"ScannerRegistrationSettings Properties Name Type Description Notes name str The name of this registration url str A base URL of the scanner adapter. auth str Specify what authentication approach is adopted for the HTTP communications. Supported types Basic\u0026amp;quot;, \u0026amp;quot;Bearer\u0026amp;quot; and api key header \u0026amp;quot;X-ScannerAdapter-API-Key\u0026amp;quot; [optional] [default to \u0026lsquo;\u0026rsquo;] access_credential str An optional value of the HTTP Authorization header sent with each request to the Scanner Adapter API. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scannerregistrationsettings/","objectID":"b4c105c03793b8e310312e97eafa6363_0","order":0,"tags":null,"title":"ScannerRegistrationSettings"},{"category":"ScanOverview","content":"ScanOverview Properties Name Type Description Notes","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scanoverview/","objectID":"986dcd3783d67b0718945c1362ccf9ae_0","order":0,"tags":null,"title":"ScanOverview"},{"category":"Schedule","content":"Schedule Properties Name Type Description Notes id int The id of the schedule. [optional] status str The status of the schedule. [optional] creation_time datetime the creation time of the schedule. [optional] update_time datetime the update time of the schedule. [optional] schedule ScheduleObj [optional] parameters dict(str, object) The parameters of schedule job [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/schedule/","objectID":"3112a641898b1ea1a950d4329b4a126b_0","order":0,"tags":null,"title":"Schedule"},{"category":"ScheduleObj","content":"ScheduleObj Properties Name Type Description Notes type str The schedule type. The valid values are 'Hourly', 'Daily', 'Weekly', 'Custom', 'Manual' and 'None'. 'Manual' means to trigger it right away and 'None' means to cancel the schedule. [optional] cron str A cron expression, a time-based job scheduler. [optional] next_scheduled_time datetime The next time to schedule to run the job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scheduleobj/","objectID":"8a3b9db730d997271979c7e63348f0c0_0","order":0,"tags":null,"title":"ScheduleObj"},{"category":"SchedulerStatus","content":"SchedulerStatus Properties Name Type Description Notes paused bool if the scheduler is paused [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/schedulerstatus/","objectID":"22018972044839406790c9cbae1b485d_0","order":0,"tags":null,"title":"SchedulerStatus"},{"category":"ScheduleTask","content":"ScheduleTask Properties Name Type Description Notes id int the id of the Schedule task [optional] vendor_type str the vendor type of the current schedule task [optional] vendor_id int the vendor id of the current task [optional] cron str the cron of the current schedule task [optional] update_time datetime the update time of the schedule task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/scheduletask/","objectID":"850a27d37434d74c59467c906f5418e3_0","order":0,"tags":null,"title":"ScheduleTask"},{"category":"Search","content":"Search Properties Name Type Description Notes project list[Project] Search results of the projects that matched the filter keywords. [optional] repository list[SearchRepository] Search results of the repositories that matched the filter keywords. [optional] chart list[SearchResult] Search results of the charts that macthed the filter keywords. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/search/","objectID":"47f008eb36a135c36c23300f155b50e6_0","order":0,"tags":null,"title":"Search"},{"category":"SearchRepository","content":"SearchRepository Properties Name Type Description Notes project_id int The ID of the project that the repository belongs to [optional] project_name str The name of the project that the repository belongs to [optional] project_public bool The flag to indicate the publicity of the project that the repository belongs to (1 is public, 0 is not) [optional] repository_name str The name of the repository [optional] pull_count int The count how many times the repository is pulled [optional] artifact_count int The count of artifacts in the repository [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/searchrepository/","objectID":"e0f5fb8af96a6c926e84f1a62f4a5adf_0","order":0,"tags":null,"title":"SearchRepository"},{"category":"SearchResult","content":"SearchResult Properties Name Type Description Notes name str The chart name with repo name [optional] score int The matched level [optional] chart ChartVersion [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/searchresult/","objectID":"87c84902c9aed5514c462b91f81bb223_0","order":0,"tags":null,"title":"SearchResult"},{"category":"StartReplicationExecution","content":"StartReplicationExecution Properties Name Type Description Notes policy_id int The ID of policy that the execution belongs to. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/startreplicationexecution/","objectID":"5f3d6e34b1e8d804bce8b28f55d3d1cd_0","order":0,"tags":null,"title":"StartReplicationExecution"},{"category":"Statistic","content":"Statistic Properties Name Type Description Notes private_project_count int The count of the private projects [optional] private_repo_count int The count of the private repositories [optional] public_project_count int The count of the public projects [optional] public_repo_count int The count of the public repositories [optional] total_project_count int The count of the total projects, only be seen by the system admin [optional] total_repo_count int The count of the total repositories, only be seen by the system admin [optional] total_storage_consumption int The total storage consumption of blobs, only be seen by the system admin [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/statistic/","objectID":"8963a6d777d100dce05c7a37178e96df_0","order":0,"tags":null,"title":"Statistic"},{"category":"Stats","content":"Stats Properties Name Type Description Notes total int The total number of scan processes triggered by the scan all action [optional] completed int The number of the finished scan processes triggered by the scan all action [optional] metrics dict(str, int) The metrics data for the each status [optional] ongoing bool A flag indicating job status of scan all. [optional] trigger str The trigger of the scan all job. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/stats/","objectID":"813cf6a1e13f8159ede74c29dfb68862_0","order":0,"tags":null,"title":"Stats"},{"category":"Storage","content":"Storage Properties Name Type Description Notes total int Total volume size. [optional] free int Free volume size. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/storage/","objectID":"410736401500b9ce9509236263a6e574_0","order":0,"tags":null,"title":"Storage"},{"category":"StringConfigItem","content":"StringConfigItem Properties Name Type Description Notes value str The string value of current config item [optional] editable bool The configure item can be updated or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/stringconfigitem/","objectID":"3a6bda8b011efdc42a7fc5ab3f66f886_0","order":0,"tags":null,"title":"StringConfigItem"},{"category":"SupportedWebhookEventTypes","content":"SupportedWebhookEventTypes Properties Name Type Description Notes event_type list[EventType] [optional] notify_type list[NotifyType] [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/supportedwebhookeventtypes/","objectID":"0cc140b9f16d35c122e6001d6ed5deb1_0","order":0,"tags":null,"title":"SupportedWebhookEventTypes"},{"category":"SystemInfo","content":"SystemInfo Properties Name Type Description Notes storage list[Storage] The storage of system. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/systeminfo/","objectID":"3268b0b10f9aa94ff2225321e37d09ad_0","order":0,"tags":null,"title":"SystemInfo"},{"category":"Tag","content":"Tag Properties Name Type Description Notes id int The ID of the tag [optional] repository_id int The ID of the repository that the tag belongs to [optional] artifact_id int The ID of the artifact that the tag attached to [optional] name str The name of the tag [optional] push_time datetime The push time of the tag [optional] pull_time datetime The latest pull time of the tag [optional] immutable bool The immutable status of the tag [optional] signed bool The attribute indicates whether the tag is signed or not [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/tag/","objectID":"07d266778ace9e9df513fc5122a18bc3_0","order":0,"tags":null,"title":"Tag"},{"category":"Task","content":"Task Properties Name Type Description Notes id int The ID of task [optional] execution_id int The ID of task execution [optional] status str The status of task [optional] status_message str The status message of task [optional] run_count int The count of task run [optional] extra_attrs ExtraAttrs [optional] creation_time str The creation time of task [optional] update_time str The update time of task [optional] start_time str The start time of task [optional] end_time str The end time of task [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/task/","objectID":"45ae2146063e258f94f75708fca476bf_0","order":0,"tags":null,"title":"Task"},{"category":"UserCreationReq","content":"UserCreationReq Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional] password str [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usercreationreq/","objectID":"a00e9cf3031800a3a958b34b8d01b34e_0","order":0,"tags":null,"title":"UserCreationReq"},{"category":"UserEntity","content":"UserEntity Properties Name Type Description Notes user_id int The ID of the user. [optional] username str The name of the user. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userentity/","objectID":"6fd555579c445c4d331099eb508cdcb1_0","order":0,"tags":null,"title":"UserEntity"},{"category":"UserGroup","content":"UserGroup Properties Name Type Description Notes id int The ID of the user group [optional] group_name str The name of the user group [optional] group_type int The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group. [optional] ldap_group_dn str The DN of the LDAP group if group type is 1 (LDAP group). [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usergroup/","objectID":"db297eb59feb6e1bbe2f75409b02d658_0","order":0,"tags":null,"title":"UserGroup"},{"category":"UserGroupSearchItem","content":"UserGroupSearchItem Properties Name Type Description Notes id int The ID of the user group [optional] group_name str The name of the user group [optional] group_type int The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usergroupsearchitem/","objectID":"c1bd816229ab4acb112f9d11d559b840_0","order":0,"tags":null,"title":"UserGroupSearchItem"},{"category":"UserProfile","content":"UserProfile Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userprofile/","objectID":"26f34f3100a3fff7e95635f786ac119f_0","order":0,"tags":null,"title":"UserProfile"},{"category":"UserResp","content":"UserResp Properties Name Type Description Notes email str [optional] realname str [optional] comment str [optional] user_id int [optional] username str [optional] sysadmin_flag bool [optional] admin_role_in_auth bool indicate the admin privilege is grant by authenticator (LDAP), is always false unless it is the current login user [optional] oidc_user_meta OIDCUserInfo [optional] creation_time datetime The creation time of the user. [optional] update_time datetime The update time of the user. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/userresp/","objectID":"bed3b344f9c3ac0742e89b80d51732d9_0","order":0,"tags":null,"title":"UserResp"},{"category":"UserSearch","content":"UserSearch Properties Name Type Description Notes user_id int The ID of the user. [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersearch/","objectID":"1d2a545d3862dc0c2d432004da05fad9_0","order":0,"tags":null,"title":"UserSearch"},{"category":"UserSearchRespItem","content":"UserSearchRespItem Properties Name Type Description Notes user_id int The ID of the user. [optional] username str [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersearchrespitem/","objectID":"3c9e9b2fa01d8580ba5399367826d9a7_0","order":0,"tags":null,"title":"UserSearchRespItem"},{"category":"UserSysAdminFlag","content":"UserSysAdminFlag Properties Name Type Description Notes sysadmin_flag bool true-admin, false-not admin. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/usersysadminflag/","objectID":"0185deb015aa8504214aed592dad9eb5_0","order":0,"tags":null,"title":"UserSysAdminFlag"},{"category":"VulnerabilitySummary","content":"VulnerabilitySummary Properties Name Type Description Notes total int The total number of the found vulnerabilities [optional] fixable int The number of the fixable vulnerabilities [optional] summary dict(str, int) Numbers of the vulnerabilities with different severity [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/vulnerabilitysummary/","objectID":"9aa8f7c5fc5810f12e657bb8abc844de_0","order":0,"tags":null,"title":"VulnerabilitySummary"},{"category":"WebhookJob","content":"WebhookJob Properties Name Type Description Notes id int The webhook job ID. [optional] policy_id int The webhook policy ID. [optional] event_type str The webhook job event type. [optional] notify_type str The webhook job notify type. [optional] status str The webhook job status. [optional] job_detail str The webhook job notify detailed data. [optional] creation_time datetime The webhook job creation time. [optional] update_time datetime The webhook job update time. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhookjob/","objectID":"e1856d71aa702e698ee1dfee229d4330_0","order":0,"tags":null,"title":"WebhookJob"},{"category":"WebhookLastTrigger","content":"WebhookLastTrigger Properties Name Type Description Notes policy_name str The webhook policy name. [optional] event_type str The webhook event type. [optional] enabled bool Whether or not the webhook policy enabled. [optional] creation_time datetime The creation time of webhook policy. [optional] last_trigger_time datetime The last trigger time of webhook policy. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhooklasttrigger/","objectID":"3c1b9bf60215892ee50352162920c6de_0","order":0,"tags":null,"title":"WebhookLastTrigger"},{"category":"WebhookPolicy","content":"WebhookPolicy Properties Name Type Description Notes id int The webhook policy ID. [optional] name str The name of webhook policy. [optional] description str The description of webhook policy. [optional] project_id int The project ID of webhook policy. [optional] targets list[WebhookTargetObject] [optional] event_types list[str] [optional] creator str The creator of the webhook policy. [optional] creation_time datetime The create time of the webhook policy. [optional] update_time datetime The update time of the webhook policy. [optional] enabled bool Whether the webhook policy is enabled or not. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhookpolicy/","objectID":"377c29698404ff5b59ca19d49633a281_0","order":0,"tags":null,"title":"WebhookPolicy"},{"category":"WebhookTargetObject","content":"WebhookTargetObject Properties Name Type Description Notes type str The webhook target notify type. [optional] address str The webhook target address. [optional] auth_header str The webhook auth header. [optional] skip_cert_verify bool Whether or not to skip cert verify. [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/webhooktargetobject/","objectID":"8fcbfab75345b2472011d77fce12d64d_0","order":0,"tags":null,"title":"WebhookTargetObject"},{"category":"Worker","content":"Worker Properties Name Type Description Notes id str the id of the worker [optional] pool_id str the id of the worker pool [optional] job_name str the name of the running job in the worker [optional] job_id str the id of the running job in the worker [optional] start_at datetime The start time of the worker [optional] check_in str the checkin of the running job in the worker [optional] checkin_at datetime The checkin time of the worker [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/worker/","objectID":"4e0ab38608fe30ace53d7f71832d55bc_0","order":0,"tags":null,"title":"Worker"},{"category":"WorkerPool","content":"WorkerPool Properties Name Type Description Notes pid int the process id of jobservice [optional] worker_pool_id str the id of the worker pool [optional] start_at datetime The start time of the work pool [optional] heartbeat_at datetime The heartbeat time of the work pool [optional] concurrency int The concurrency of the work pool [optional] host str The host of the work pool [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/model/workerpool/","objectID":"f6ae153a88095f7b3b513d537ac9bf0b_0","order":0,"tags":null,"title":"WorkerPool"},{"category":"Manage Pre-Installed Scanners","content":"Manage Pre-Installed Scanners You can find pre-installed vulnerability scanners under Administration -\u0026gt; Interrogation Services -\u0026gt; Scanners. If you click on an arrow next to a scanner, you\u0026rsquo;ll see the most important details about it. If you select a scanner using the small circle next to its name, you can perform the following actions with it Set a Default Vulnerability Scanner Use the Set as Default button to set a new default scanner for your instance: Edit Existing Scanner Click on the Action button and then select Edit: That will open a dialogue window where you can change: the scanner\u0026rsquo;s name; its description; the endpoint URL; authorization method; certification verification; registry address option; as described here. Disable or Enable a Scanner When you disable a scanner, project admins won\u0026rsquo;t be able to add it to their projects or use it as a scanner if it has been already added before disabling. To allow using the scanner again, enable it. Delete a Scanner You can delete a system scanner using the Action button.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/manage-pre-installed-scanners/","objectID":"2542c73c29a893d7199f90a9a2466186_0","order":0,"tags":null,"title":"Manage Pre-Installed Scanners"},{"category":"Registration for System Admins","content":"Registration for System Admins: Create a New Instance All accounts with a Dedicated Service subscription can have multiple users. For the first time, the system administrator must complete the subscription purchase and configure the instance to enable other users to work with it later. Users of Individual accounts are considered system admins of their accounts. The registration is the same. To start working with Container Registry: Go to our pricing page; Select your subscription or start a free trial; Fill in the form and provide your credit card details; Check your emails: you must have received a confirmation that your account has been created; Inside the email, click on password to display your password; you will be re-directed to a single use secure URL generated by OneTimeSecret where you can see your password for the Container Registry account; INFO The password will be kept by OneTimeSecret for a while but try to finish the registration within a few hours. The same email will contain a subdomain that was automatically generated for your instance; click on it to go to your account; Use admin as your user name and the password kept in OneTimeSecret as your password.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/registration-for-system-admins/","objectID":"5a91f757a9ffd1569a35c13f79e90142_0","order":0,"tags":null,"title":"Registration for System Admins"},{"category":"UAA Authentication","content":"UAA Authentication A user authentication and authorization server issues access tokens for your application to make it able to access another application: in this case, your Container Registry instance. You can configure a UAA server by yourself or select a provider that will set up for you a UAA instance. This instance will generate a token every time the user identity was confirmed – the user was authenticated – to enable user authorization that allows the user to perform certain actions in the system he was successfully logged in to. Most of the UAA providers work with either SAML 2.0, OAuth 2.0, or LDAP protocols. The setups may vary. Please refer to the official documentation of your selected provider. To configure the UAA authentication mode in Container registry, you will need: a UAA endpoint; a UAA client ID; a UAA client secret. Steps Go to the navigation pane on the left side of the GUI; Select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select UAA; Fill in the form; Tick the checkbox if your endpoint has a trusted certificate; Click Save.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/uaa-authentication/","objectID":"942907f9031700add02a828de7cde273_0","order":0,"tags":null,"title":"UAA Authentication"},{"category":"Push and Pull Images","content":"Push and Pull Images Pushing and pulling images is explained in detail in this getting started guide.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/push-and-pull-images/","objectID":"a309841863b58ed4653f01a171fed5f8_0","order":0,"tags":null,"title":"Push and Pull Images"},{"category":"Tag Retention","content":"Tag Retention As a project administrator, you can save storage capacity by defining rules to govern the number and retention period of artifacts stored in a repository. This allows you to keep only the necessary artifacts and discard those that are no longer required or have been superseded by a newer version. Managing your repository in this way can help ensure that only the most needed artifacts are kept, freeing up valuable storage space. WARNING The artifacts that are not covered by the retention rule will be deleted. However, the operation is conducted at the artifact level. Artifacts that have more than one tag will be retained even if not all their tags are covered by the retention policy. You can set tag retention rules for each repository in your project. With the following rules, you can identify which tags you would like to keep. It is important to note that you don\u0026rsquo;t actually define rules to explicitly remove tags; instead, any tags that are not eligible for retention are automatically discarded. Multiple retention rules are executed with an OR logic applied between each rule. Each retention rule consists of three filters that are applied sequentially. Retention Rule Definitions Repository: Allows you to select the repositories for further processing. You can identify repositories that either match a name or name fragment, or exclude that name or name fragment from matching. Wild cards definition such as *repo, repo*, or ** are permitted. Quantity to retain: adds the option to take the artifact push/pull count or number of days into consideration for your retention. Specifying a maximum number of tags, or by specifying a maximum period for which to retain tags. Tags to retain: Identify the tag on which to apply the rule. You can identify repositories that either match a name or name fragment, or exclude that name or name fragment from matching. Wild cards definition such as *repo, repo*, or ** are permitted. The checkbox is used to select whether untagged artifacts should be captured as part of the set of artifacts eligible for tag retention. For information about how the definition and usage of Patterns such as ** see https://github.com/bmatcuk/doublestar#patterns. Create a New Tag Retention Policy Inside a project, go to the Policy tab (1); Switch to TAG RETENTION (2); Click ADD RULE (3); A dialogue window will appear: Select Repos To specify repositories where the policy should look for the tags to be retained: type certain repositories in separating them by commas or use a double- or single-starred pattern; select between matching and excluding from the dropdown to include or exclude specified repositories; Select Tag Age or Number To specify how artifacts should be selected for retention, use one of the following options from the second dropdown: to refer to the number of artifacts stored in a repo: select retain the most recently pushed # artifacts and type in the number of artifacts to be retained in the COUNT field; select retain the most recently pulled # artifacts and type in the number of artifacts to be retained in the COUNT field; to refer to the artifacts \u0026ldquo;age\u0026rdquo;: select retain the artifacts pushed within the last # days and fill in the DAYS field; select retain the artifacts pulled within the last # days and fill in the DAYS field; select retain always will keep the artifacts and tags forever. Select Tags by Name To specify the tags to be retained: type in certain tags separated by commas or use a double- or single-starred pattern; select between matching and excluding to include or exclude selected tags; check untagged artifacts if you want to include artifacts that have no tag. Manage Tag Retention Rules You can edit, disable/enable, and delete a tag retention rule using the Action button next to each rule. Disabled rules will be marked with a red exclamation mark. Run Retention Rules Retention rules do nothing until they are run proactively. Indeed, it means that no tags or artifacts are deleted before you run a retention rule. You can do it either manually or create a schedule for it. Run the Retention Manually If you want the retention to take an effect immediately, you can use the RUN NOW (1) button. But, before doing this, we highly recommend using DRY RUN (2) which only simulates the retention policy execution and provides a log (4) describing once again which artifacts and tags are to be deleted or retained. Use ABORT (3) to stop an execution. Example of the log data: 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:83]: Run retention process. Repository: library/test Rule Algorithm: or Dry Run: true 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:98]: Load 2 candidates from repository library/test 2021-08-12T14:27:34Z [INFO] [/pkg/retention/job.go:201]: | Digest | Tag | Kind | Labels | PushedTime | PulledTime | CreatedTime | Retention | |-------------------------------------------------------------------------|----------|-------|--------|---------------------|---------------------|---------------------|-----------| | sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 | 4.0,test | image | | 2021/08/12 14:26:29 | 2021/08/11 14:32:52 | 2021/08/11 08:30:49 | RETAIN | | sha256:1649f969e17dff21275d1e227581fd492c77c9d856f989c2a1188a5798f6dfd2 | 2.0,1.0 | image | | 2021/08/04 12:47:31 | 2021/08/11 14:32:53 | 2021/07/29 12:02:18 | DEL | Schedule the Execution of the Retention Rule To make the retention execution happen automatically and on a regular basis, you can create a schedule for the policy to run. Go to the Schedule; Click EDIT; Select a schedule from the dropdown; If you select CRON, you need to create specify the frequency using the online CRON formatter (copy and paste the value from it); Alternatively, consult our short knowledge article by clicking on the i icon and create the schedule by yourself.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/tag-retention/","objectID":"98755519e4e51c05422526d0c350fc3e_0","order":0,"tags":null,"title":"Tag Retention"},{"category":"User Manual","content":"Table of Contents The current chapter provides general guidelines for users that work with images and helm charts. Throughout this manual, we will often refer to projects, a project administrator role, and permission rights level necessary to perform certain actions. This is only relevant for dedicated accounts since each organization with this type of account can have multiple users and organize repositories into projects. If you have an individual account, your permission level is always sufficient for any kind of an operation since you are a system and project administrator at the same time. When you read about something related to projects, please consider your account as a project. Read more about the differences between dedicated and individual accounts in this article. Why Use Container Registry as a Service What Is Harbor Container Registry User Interface: A Short Overview Working With Projects Repositories Managing Project Users Project Configuration Robot Accounts Webhooks Working With Artifacts Push and Pull Images Artifact Page Working With Tags Tag Policies Tag Retention Tag Immutability Working With Logs Dedicated vs Individual Account Double-Starred Patterns","date":"2021-08-13T00:00:00Z","description":"description_test","href":"https://container-registry.com/docs/user-manual/","objectID":"50e921a7f98d7d8805f5b0dd1d77c3ff_0","order":0,"tags":null,"title":"User Manual"},{"category":"Artifact Page","content":"Artifact Page When you click on a single artifact, you will be redirected to a view showing detailed information about this artifact. In this view, you can also perform a few additional actions on the selected artifact. Tags Overview Working with tags is described in detail in another tutorial since the features for doing this are distributed across the GUI. The current section explains general GUI features that are available in the single artifact view. The Tags overview table shows all tags assigned to an image. It contains the following columns: Checkboxes allow you to bulk-edit tags, for instance, add new tags or remove existing ones. Name shows the actual tag without the repository path. Pull Command allows you to copy into clipboard the command string that will pull the image with this particular tag. An example: docker pull your-subdomain.container-registry.com/project/repository[:TAG] Signed shows if the image was signed. Pull Time and Push Time show when the image was pulled or pushed for the last time. General Information The next section – Overview, can be expanded or collapsed – shows general information about: the CPU architecture the image was built for; the author nickname; a local path to the configuration file; when the image was created locally (for instance, downloaded from a GitHub repository to the local machine from which it was later pushed to the repository); for which operating system it was built. Additions Vulnerabilities If the image has been scanned and any vulnerabilities were detected, this section will display a detailed report about them. Each vulnerability has a CVE identifier. CVE means Common Vulnerabilities and Exposures. The CVE lists are maintained by the MITRE Corporation, a subsidiary of the US Department of Homeland Security. Each identifier has a year and a sequential number, for instance: CVE-2021-3449 In the Vulnerabilities table, you can click on the arrow next to the identifier to read the description of the vulnerability. The description is identical to that in the official CVE database. It helps you to learn about the origins of vulnerability and its possible consequences. Furthermore, you can click on the i icon twice to retrieve a list of the resources where you can get some additional information about this vulnerability. In the Severity column, you can see the severity level of the vulnerability. The levels are calculated using this methodology proposed by the National Institute of Standards and Technology of the US Department of Commerce. The Package column shows which package (of a programming language) causes this vulnerability. The Current version column shows which version of an operating system is affected by this vulnerability, whereas Fixed in version column shows which version (and higher) of the operating system is free from the problem. You can perform a new scan on the image using the Scan button to refresh the list of vulnerabilities if you have at least project administrator privileges. Build History If you are the person who worked with the image before pushing it to the repository, the history of your changes is retrievable locally using this command: docker image history [IMAGE] In Container Registry, you can see the same history in the Build History section. It may be useful if you want to locate the origin of the source code and track other changes.","date":"2021-08-12T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/artifact-page/","objectID":"6f0fdf501dd7338001db6350ff053a68_0","order":0,"tags":null,"title":"Artifact Page"},{"category":"Managing Project Users","content":"Managing Project Users The user that created a project and the super admin of the instance can add users to projects to enable them to perform different actions. It is possible to pull images from a public repository without being a project member. But a membership grants users other rights depending on the role they are assigned. Project Member Permissions Below is the overview of all project permissions by five types of roles: Action Limited Guest Guest Developer Master Project Admin System Administrator See the project configurations ✓ ✓ ✓ ✓ ✓ ✓ Edit the project configurations ✓ ✓ See a list of project members ✓ ✓ ✓ ✓ ✓ Create/edit/delete project members ✓ ✓ See a list of project logs ✓ ✓ ✓ ✓ ✓ See a list of project replications ✓ ✓ ✓ See a list of project replication jobs ✓ ✓ See a list of project labels ✓ ✓ ✓ Create/edit/delete project labels ✓ ✓ ✓ See a list of repositories ✓ ✓ ✓ ✓ ✓ ✓ Create repositories ✓ ✓ ✓ ✓ Edit/delete repositories ✓ ✓ ✓ See a list of images ✓ ✓ ✓ ✓ ✓ ✓ Retag image ✓ ✓ ✓ ✓ ✓ Pull image ✓ ✓ ✓ ✓ ✓ ✓ Push image ✓ ✓ ✓ ✓ Scan/delete image ✓ ✓ ✓ Add scanners to Harbor ✓ Edit scanners in projects ✓ ✓ See a list of image vulnerabilities ✓ ✓ ✓ ✓ ✓ ✓ See image build history ✓ ✓ ✓ ✓ ✓ ✓ Add/Remove labels of image ✓ ✓ ✓ ✓ See a list of helm charts ✓ ✓ ✓ ✓ ✓ ✓ Download helm charts ✓ ✓ ✓ ✓ ✓ ✓ Upload helm charts ✓ ✓ ✓ ✓ Delete helm charts ✓ ✓ ✓ See a list of helm chart versions ✓ ✓ ✓ ✓ ✓ ✓ Download helm chart versions ✓ ✓ ✓ ✓ ✓ ✓ Upload helm chart versions ✓ ✓ ✓ ✓ Delete helm chart versions ✓ ✓ ✓ Add/Remove labels of helm chart version ✓ ✓ ✓ ✓ See a list of project robots ✓ ✓ ✓ Create/edit/delete project robots ✓ ✓ See configured CVE whitelist ✓ ✓ ✓ ✓ ✓ ✓ Create/edit/remove CVE whitelist ✓ ✓ Enable/disable webhooks ✓ ✓ ✓ ✓ Create/delete tag retention rules ✓ ✓ ✓ ✓ Enable/disable tag retention rules ✓ ✓ ✓ ✓ Create/delete tag immutability rules ✓ ✓ ✓ Enable/disable tag immutability rules ✓ ✓ ✓ See project quotas ✓ ✓ ✓ ✓ ✓ ✓ Edit project quotas ✓ The matrix applies to the users that are registered in the instance. Unregistered anonymous users can access public projects in the read-only mode and pull any images from such projects and for both types of projects. Adding Project Members By default, any new project has no users except the project admin that created it. Super admins can access projects that they are not members of. To enable your collaborators to work on the project, you need to add them. There are two methods for doing this. An important prerequisite is that they must be users of the same instance. If they are not, refer to this article to add users to the instance. Regardless of the method you want to use for adding project members: Go to the Projects section in the navigation pane; Open the project in detailed view; Go to the Members tab. Adding Users One by One If you want to add single users, use + User button. Start typing in the name and a dropdown with a few suggestions will appear. By default, every new user is granted the project admin role, thus, acquiring the same rights as the project creator has. Remember to change this, if you want to restrict the permissions level. Adding LDAP/AP User Groups Prerequisites This method is available for instances using LDAP/AD authentication. Read about configuring this method of authentication here. Another important Prerequisite is that you must enable the memberof feature on the LDAP/AD server. It is explained in the same guide mentioned above, as well as in this external technical note. Eventually, you need to create user groups on your LADP/AD server since, with this authentication method, the super admins cannot manage users inside the Container Registry interface. Steps Click + Group button; Select a user group: If you use the group option for the first time, and do not have any user groups in your Container Registry yet, select Add a group from LDAP to project member. Enter the LDAP Group DN; Optionally: give your group a catchy name. If you already used some LDAP/AD groups, select Add an existing user group to project members and start typing the name of the group. Assign a role to the new project group. The corresponding permissions will be granted to all users in this group. Adding OIDC User Groups Prerequisites This method is available for instances using OIDC as authentication method. Read about configuring this method of authentication here. User groups must be created in the OIDC provider workspace. Steps Click + Group button; Type in the correct name of the group as it exists in the OIDC provider; Assign a project role to this group. The corresponding permissions will be granted to all users in this group. Deleting Users To delete one or a few users, click on the tickbox next to the user entry, then go to Actions and select Remove. Changing Project Role To change the project role for one or a few users, check the tickboxes next to their names, click Actions, and select a new role.","date":"2021-08-02T12:11:51+02:00","description":"Managing project membership","href":"https://container-registry.com/docs/user-manual/projects/managing-project-users/","objectID":"1f847759880c31287b6366930de41d4c_0","order":0,"tags":null,"title":"Managing Project Users"},{"category":"New User Sign Up","content":"New User Sign Up Container Registry is a cloud-based solution that you can use in your browser or CLI tool or through an API. Your Instance on Container Registry All accounts with a Dedicated Service subscription receive a subdomain on container-registry.com. Your organization can also request a custom domain. Every subdomain/domain represents one instance. For different instances, you need different login credentials. Registration Methods As a user, you can use one of these methods to register in your Container Registry instance: Your account admin can create a user for you and send you the credentials. If the self-registration is enabled for the instance, then go to the subdomain/custom domain, and click on Sing up for an account, and fill in the form. If the OIDC login is enabled for the instance, go to the subdomain/custom domain, click on Login via OIDC provider, and use one of your federated identity profiles. The last two methods must be configured by your Container Registry administrator. If you are the administrator, please refer to this tutorial in our administrator guide.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/new-user-sign-up/","objectID":"33eb530bb48210b190977f985db76538_0","order":0,"tags":null,"title":"New User Sign Up"},{"category":"What Is Harbor?","content":"What Is Harbor? Our service is built upon Harbor. Harbor is an open-source technology for storing and managing container images. It was developed by VMware, a leading provider of virtual machines, and then transferred to the Cloud Native Computing Foundation (CNCF), one of the biggest open-source initiatives. In its turn, the Harbor project evolved out of Docker\u0026rsquo;s source code. Its contributors attempted to enhance the latter and eliminate its security problems. A lot of developers all over the world worked on both projects. This may have led to a certain inconsistency in the code. At Container Registry, we have been making our solution more secure than its ancestors. Harbor is cloud-native. Moreover, it does not only store images but can scan their contents for security issues. Harbor also allows developers to sign the images that they push to the registry with their personal keys, thus, marking the images as trustworthy. For more information on Harbor, visit the official Harbor project website.","date":"2021-07-23T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/what-is-harbor/","objectID":"687e3e2d35fc5f51212dcc45f7420084_0","order":0,"tags":null,"title":"What Is Harbor?"},{"category":"Working With Helm Charts and OCI Registries","content":"Working With OCI Helm Charts Harbor stopped offering ChartMuseum interfaces to store Helm Charts. As of now, only OCI registry interfaces are used to store Helm Charts. Interacting with Helm Charts stored in OCI registries is different, but it has some advantages over the old Chart Museum. With OCI based Helm Charts, you get the familiar command syntax as with interacting with container images runtimes. registry login .... The only difference is that you need to use the helm command instead of docker or Podman. Fewer commands needed for installing Charts. No repo add and repo update commands anymore. Publishing Helm Charts to OCI registries does not need the separate plugin cm-push plugin anymore. The performance for repositories with many Helm Charts is better. This guide assumes that you are familiar with ChartMuseum and Helm Charts. Logging Into to Your Registry To install, push or pull Helm Charts in and from your private registry, you need to log in to it first. TIP For quick local testing, you can use your username and password or in the case of OIDC the CLI secret, for production and CI/CD environments; we strongly recommended the use of robot account. Using Username and Password to log in into your registry: echo $PWD | helm registry login your-subdomain.container-registry.com -u USER_NAME --stdin Installing OCI based Helm Charts Installing Helm Charts stored in OCI registries is simplified compared to working with Chart Museum repositories. The overhead of adding and updating repositories repo add and repo update is not needed anymore. helm install oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3 As you can see, the workflow is straightforward. All the other installation command arguments stay the same, except that you now directly address the Chart location in the URI format with the oci:// prefix protocol. The option to pull the Helm Chart tarball from a specific repository is also available in case you peek into the Helm Chart templates before installing them. # Download the Helm Chart tarball. helm pull oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3 Publishing Helm Charts to OCI Registries Publishing Helm Charts to OCI registries is also simplified as not external dependencies need to be installed cm-push plugin. helm chart package . # . the current directory contains the Chart.yaml. helm push ./nginx-1.2.3.tgz oci://your-subdomain.container-registry.com/library Adapting or switching from ChartMuseum to OCI based Helm Charts does not come with much effort. The commands are similar and there are fewer steps needed to install charts Additional Recommendations for OCI Helm Chart Users Migration from ChartMuseum to OCI based Helm Charts can be done without much effort and even adds some advantages. We recommend using OCI based Helm Charts for new projects and migrating existing projects to OCI based Helm Charts. To ease the migration, there are a few tools available. goharbor/chartmuseum-migration-tools docker run -ti --rm 8gears.container-registry.com/library/chartmuseum2oci --url $HARBOR_URL --username $HARBOR_USER --password $HARBOR_PASSWORD In cases when you depend on third-party Helm Chart that are ChartMuseum based, you can transparently proxy those Charts as OCI artifacts using the Helm Chart OCI Proxy. Helm Chart OCI Proxy","date":"2024-03-18T12:11:51+02:00","description":"This guide contains the essential knowledge to work with OCI based Helm Charts.","href":"https://container-registry.com/docs/getting-started-guide/working-with-helm-charts-and-oci-registries/","objectID":"588b0e7d05ad056dfc80e2d84a020f43_0","order":0,"tags":null,"title":"Working With Helm Charts and OCI Registries"},{"category":"Administration Manual","content":"Table of Contents The current chapter explains how to administer your Container Register system. An important prerequisite for using the features mentioned in is chapter is the system administrator role. System admins can see and access the Administration tab on the navigation pane on the left side, which is invisible for other users. The administration manual includes the following articles: Register at Container Registry: Admin Registration Configure User Authentication Database Authentication UAA Authentication LDAP/AD Authentication User Management System Robot Accounts Endpoints for Replication and Proxy Cache Configure Artifacts Replication Configure Replication Rules System-Wide Labels Project Quotas Vulnerability Scanner Manage Pre-Installed Scanners Add New Scanners Scanning Artifacts General Configurations Terminal Deletion of Images Other System Settings","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/","objectID":"3f9591e0a890413447ef93711c89353d_0","order":0,"tags":null,"title":"Administration Manual"},{"category":"Add New Scanners","content":"Add New Scanners Although vulnerability scanning is a highly unified procedure, different scanners may capture different vulnerabilities. Some scanners are developed to act in a more severe way than others to meet specific compliance requirements. Nonetheless, adding more scanners may increase the general coverage and improve your cyber security. To add a new scanner: Expand Administration; Go to Interrogation Services; On the Scanners tab, click + New Scanner; Fill in the form: Give your scanner a name; Optionally, add a description; Enter the endpoint URL or IP address (if you are using an internal server); Choose your authorization method: For Basic one, enter your username and password which you received from the scanner provider; For Bearer, enter the secret token from your provider; For API key, enter the API key from your account on the scanner service provider. Choose if you want to activate certificate verification; If you entered an IP instead of an URL, select Use internal registry address to allow this. Test the new connection and save the scanner if it was successful.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/add-new-scanners/","objectID":"3846e09f899e1179c19d7e0548fec9ea_0","order":0,"tags":null,"title":"Add New Scanners"},{"category":"LDAP/AD Authentication","content":"LDAP/AD Authentication Every company needs a directory where all user login data is kept. There are two popular technologies for configuring and managing such directories – Windows Active Directory (AD) and Lightweight Directory Access Protocol – that are Harbor-compatible. It means that you can use an LDAP/AD server to add new users to the Container Registry instance and manage existing accounts on the server. Indeed, you need to set up and configure such a server before you can activate this kind of user authentication in Container Registry. How you do it, depends on your provider. You can look for instructions on the official website of the OpenLDAP project or in the Windows server official documentation. Limitations of LDAP/AD Authentication If you select this authentication mode, then, as a system admin, you will only be able to see a list of users in your Container Registry admin console but you won\u0026rsquo;t be able to perform any actions with them in the GUI, neither create and delete users nor change and reset their passwords. That all must be done on the LDAP or AD server. For the users, the self-registration option is not available in this mode (and you cannot enable it as an admin). Advantages of LDAP/AD Authentication If you already have an LDAP/AD server, you can onboard Container Registry users quicker. You can use the same LDAP/AD server to add and manage users of more than one Container Registry instance. You can create user groups and assign multiple users to projects in one leap. Enable LDAP/AD User Authentication Information You Need for Configuring LDAP/AD Authentication All entries in an LDAP directory are organized into a structure resembling roots of a tree or a reverted tree. There is a root node – the highest one in the structure – where a few brunches with more nodes originate; other nodes have own brunches, etc. Each entry – a node – has a unique identifying path, called a distinguished name or DN. Every time a user submits his credentials, a search is performed inside this structure to match the provided user credentials with an entry and authenticate the user. That\u0026rsquo;s why you need to keep at hand the following information about your LDAP server to configure it in Container Registry. LDAP Search DN. This node coincides with the user who has access to the LDAP server which is usually an admin. This parameter should be specified as cn=admin, dc=your-subdomain.container-registry.com where the attribute cn stands for \u0026ldquo;common name\u0026rdquo; and dc stands for \u0026ldquo;domain component\u0026rdquo;. LDAP Search Password. Consequently, here you need to enter the password of the user you specified in the previous parameter. LDAP Base DN. Theoretically, you may use your LDAP server not only for managing Container Registry but also for other applications. In this case, the tree would have nodes/entries that are irrelevant to Container Registry users. Thus, you need to specify a node where the search for the relevant entries should start. This is your subdomain or custom domain in our service. This parameter needs to be specified as dc=your-subdomain.container-registry.com. LDAP Scope. This parameter specifies the depth of the search in relation to the starting point: the previous parameter. You have a choice between the following values: Base: to search the entire tree; the base DN will be ignored; Subtree: to search the nodes below the starting point; OneLevel: to search the nodes on the same level as the start node. LDAP Filter. With this, you can narrow the search down to users or user groups. This will facilitate the search but, more importantly, restricts access to your Container Registry. You can use more than one attribute in the filter, as well as wildcards. A detailed tutorial on writing LDAP filters can be found here. LDAP UID. Every entry in the LDAP has multiple attributes. The LDAP UID parameter specifies which of the attributes must be used as a key to match the user credentials (of the user who tries to log in to the system) with the entries in the tree. Typically, either the uid or the cn attribute are used. Steps in the GUI In the navigation pane on the left, select Administration; Click on Configuration; Select Authentication tab; In Auth Mode, in the dropdown, select LDAP/AD; Fill in the form; Select if you want to use a server certificate or not by using a checkbox; TEST LDAP SERVER to ensure that you\u0026rsquo;ve entered correct parameters; If you see an affirmative message, hit Save. LDAP User Groups Optionally, you can create user groups to be able to assign users to projects in bulks in the Container Registry GUI. Since an LDAP directory is a tree-like structure, it\u0026rsquo;s naturally hierarchical. Groups are a way to put entities – in our case, users – together independently of that hierarchy. One user can be a member of more than one group. On the LDAP/AD server, you need to use the memberof attribute of the entries. If you are new to this technology, look into this tutorial that explains how to create groups on the LDAP server and add users into them. Once you created LDAP groups on the server, you have to configure group settings in the Container Registry GUI as well. You also cannot leave these settings empty if there are groups on your LDAP server. The parameters are similar to those in the general server configuration. LDAP Group Base DN. Like LDAP Search DN, it specifies a starting point in the tree structure of nodes/entries with user accounts and other records, with the only difference that this parameter may rather refer to a group or organizational unit name. For the latter, use the ou attribute. LDAP Group Filter. Like LDAP Filter, it limits the search to certain nodes. First of all, you need to specify that you want to search only within groups and not all other nodes. If you use OpenLDAP, the filter is objectclass=groupOfNames. If you use Active Directory, apply the objectclass=group filter. In addition to that,","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/ldap-ad-authentication/","objectID":"500c07706a2a9b987e967f1c74040751_0","order":0,"tags":null,"title":"LDAP/AD Authentication"},{"category":"LDAP/AD Authentication","content":"you can use other LDAP attributes to make your search more precise. LDAP Group GUID. This parameter specifies which attribute of a node is reserved for the name of the group. Typically, this would be cn. LDAP Group Admin DN. In this field, you can enter the distinguished name of an LDAP/AD group the members of which will all be granted system admin access rights for your Container Registry instance. LDAP Group Membership. This is also an attribute of a node but this attribute applies to the nodes holding user accounts. Thus, it specifies which attribute should the search look at to identify of which group the user is a member of. The default node attribute that identifies group membership is memberof. LDAP Scope. Identical to the LDAP Scope mentioned before but applies to the group nodes.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/ldap-ad-authentication/","objectID":"500c07706a2a9b987e967f1c74040751_1","order":1,"tags":null,"title":"LDAP/AD Authentication"},{"category":"Configure User Authentication","content":"Configure User Authentication Configuring user authentication can be accessed in the navigation pane, then Administration -\u0026gt; Configuration -\u0026gt; Authentication tab. Once you created your account as a system admin, you can choose between four methods of user authentication that will also specify how you add and manage users in your instance. The difference between the four methods is how identity management, user authentication, and authorization are performed: locally, using an external server, or an external provider. Identity management keeps user account data such as their user names and IDs; User authentication procedure proves the user identity; User authorization enables authenticated users to perform certain actions. Considering these differences, you can configure one of the following authentication modes: database mode: the user accounts are created and managed using the Container Registry GUI; authentication happens by comparing their credentials against the data in this local database; UAA mode: you will need an external user identity, authentication, and authorization provider or server; it will keep the user data, perform user authentication, and communicate the result of such authentication back to the Container Registry instance; LDAP/AP mode: you will need an external LDAP/AD server where the new user accounts will be created and managed and that will perform user authentication; OIDC mode: similarly to UAA, user accounts will be created and managed by a Single Sign-On provider, and this provider will perform user authentication. When you sign up for the first time as a system admin, the database mode is activated by default. Before you start adding new users in this mode, you can switch to a different one. Restrictions on Switching Between User Authentication Modes As you may know, generally, you can always migrate your user accounts from an LDAP/Active directory server to a OpenID provider. The steps depend on the latter. Most OIDC providers, such as Google, Azure, etc, provide tools for migrating user accounts with functionalities for matching user records. Once you\u0026rsquo;ve done the migration, you can switch the user authentication mode in the Container Registry administration console. IMPORTANT Switching the authentication mode between the internal database (database mode) and LDAP/OIDC is only possible without users in the system. Before you can switch to a different authentication method, the system admin (admin) needs to delete all users manually in the UI or via API. It is also not possible to export or migrate user accounts from the Container Registry GUI.","date":"2021-08-18T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/","objectID":"a2a9fba40fdd48ea01829409f8c44e2a_0","order":0,"tags":null,"title":"Configure User Authentication"},{"category":"Tag Immutability","content":"Tag Immutability What Is Tag Immutability and Why You Need It Harbor, the technology behind Container Registry, cannot (yet) deal with the situation when more than one image has the same tag. When there is an image in the registry with a certain tag, and then another image with the same tag is pushed to it, the first image loses its tag. The second image, pushed later, retains the tag but only until the next image with the same tag is pushed. Thus, the very purpose of tags existence – helping to differentiate between images – becomes a bit meaningless since the images override each other. The reason behind this trouble is that, for now, Harbor cannot match tags and SHA256 hashes. Therefore, hashes remain the only reliable image reference. To rehabiliate the tags, Harbor allows you to specify tag immutability rules, although they must be set manually for each tag that can be a subject to repetition. The immutability won\u0026rsquo;t allow an image with the same tag to be pushed into the repository. To be more precise, the policy is about a pair of an artifact and its tag. INFO If you add a tag into an immutability policy, you won\u0026rsquo;t be able to perform the following actions with this artifact from anywhere in the GUI or you command line tool: delete the tagged artifact completely; re-tag the artifact that is assigned the tag involved in the immutability policy; alter the tagged artifact through a replication from another target registry or in any other way. You still can perform any operations with other tags assigned to the same artifact, even though the tags are attached to the same SHA256 hash/digest. Create a Tag Immutability Policy Inside a project, go to the Policy tab; Switch to TAG IMMUTABILITY (2); Click ADD RULE (3); To select repositories and tags, specify matching patterns as explained here; Manage Immutability Policies You can edit, disable/enable, and delete a tag immutability rule using the Action button next to each rule. Disabled rules will be marked with a red exclamation mark.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/tag-immutability/","objectID":"ba4c6a11b181ace05476eddcb34b692e_0","order":0,"tags":null,"title":"Tag Immutability"},{"category":"Project Configuration","content":"Project Configuration For each project, you can configure a wide range of properties and features. We already touched on some of them in the general description, repositories section, and the section about project members. In addition to that, for each project, you can manage the following: helm charts; labels; scanners; tag policies; robot accounts; webhooks; project type; deployment security; CVE allowlists. Labels and tags are explained in a separate chapter that deals with images in general. In this chapter, we will go through the rest. Prerequisites To change any of the project configurations, you need to have one of the roles: System administrator; Project administrator. Labels tab In addition to tags, you can create labels for images. Labels will only be visible for the users that can log in to the Container Registry GUI. Create a Label Inside a project, go to the Labels tab; Click +NEW LABEL; Enter the label name; Select a color or enter a color hash; Enter a description. Edit or Delete Labels To edit or delete a label: Tick the checkbox next to it; Click on either Edit or Delete. You can delete more than label at once if you select a few of them. Scanner Tab In this tab, you can select the vulnerability scanner you want to use for the images in the project. Only one scanner can activate at the same time for a certain project. At the instance level, only superadmins can add scanners, enable them, and set default scanners. When a project is created, it inherits the instance\u0026rsquo;s default vulnerability scanner. To select another one, use Select Scanner button under the Scanner tab. This will open the list of enabled scanners where you can pick up the one you need for your project: Configuration Tab Some of the important properties and features can be found in the Configuration tab. Type of Project You can change the type of project after it has been created from private to public or the other way around. Deployment Security This configuration allows you to make your deployments more secure by limiting which images can be deployed. This can be done using two features. Content Trust When this feature is enabled, you can only deploy (pull) images that were signed. After enabling this feature in the Container Registry GUI, you can still push unsigned images into your project. But since none can pull them, it makes sense to start pushing only signed images. Prevent Vulnerable Images From Running When you have active vulnerability scanners in your project, they will calculate a vulnerability score following the methodology created by the National Institute of Standards and Technology of the US Department of Commerce. Its common Common Vulnerability Scoring System Calculator (CVSS Version 3.1) and the list of the involved metrics can be accessed here. The specification document can be viewed here. Accordingly, your project scanner will mark certain images as having one of the vulnerability severity levels: None; Low; Medium; High; Critical. Both Trivy and Clair, default Container Registry scanners, use this scale. In the current setting, you can specify which of the levels is not acceptable. The images marked with this level and all severity levels that are higher, will be suppressed from deployment. Vulnerability Scanners Scanners can be added to the instance and its projects only by superadmins but project admins can specify if images should be automatically scanned on push. If this feature is not enabled but you have scanners in your project, you still can scan images manually. CVE Allowlists This is another setting that is applied to vulnerability scanners. Common Vulnerabilities and Exposures List is a project by the US Department of Homeland Security and Cybersecurity and Infrastructure Security Agency. The aim of it is to \u0026ldquo;to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.\u0026rdquo; Each vulnerability is associated with a string type record in the CVE database. These records have IDs. With our CVE allowlist feature, you can use these CVE IDs to make the scanner ignore certain vulnerabilities. There are multiple ways to add CVE IDs to your project. System Allowlist When you select this option, all CVE IDs that were configured on the instance level by your superadmin (as described here) will be inherited by the project. Project Allowlist Alternatively, you can create your own lists manually or adjust the system-level allowlist. Use ADD to add the IDs manually using commas or putting each ID on a new line. You can search for CVE IDs in this database. Adding using commas: Adding using line breaks: Result for both: Use COPY FROM SYSTEM to copy the instance-level CVE IDs and then use X to delete any of them. You can also add new ones using ADD as in the previous case to expand the copied allowlist. System vs Project Allowlist: Which Overrides Which? When you never created any project-wide lists, then the system-wide (instance-wide) allowlist will be applied to all of your projects, as well as to all other projects in the instance. You do not need to select the System allowlist option pro-actively, it is set by default upon creation of the project. Once you create any project-wide allowlists, the project-wide lists will override the system-wide ones. It means that if you copy any allowlists from system but then modify them, the new custom allowlist will be applied to this specific project. Thus, be careful with deleting items from the system-wide allowlists when re-using them as project-wide allowlists to avoid any security issues in your images. Also note, that removing CVE IDs from the system won\u0026rsquo;t automatically remove them from the project if you re-used these IDs in a per-project allowlist. Set Expiration Date By default, no expiration date will be set for your CVE allowlist. They will remain active forever. To set a particular expiration date for either system-wide or project-wide lists, use the calendar to select a date. Once the date is set, the Never expires checkbox will be unticked automatically.","date":"2021-08-03T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/","objectID":"e7f371c63d1f2e27600c8bd63f4c1c37_0","order":0,"tags":null,"title":"Project Configuration"},{"category":"Push and Pull Images","content":"Push and Pull Images Log In to Your Private Registry If you use a private registry, you need to use Docker login to push and pull images to and from Container Registry. For this, you can use your Container Registry username but you need to generate your CLI login for Docker first. Go to your user profile in the upper right corner of the cockpit: Copy the CLI secret: In your command line tool, log in to Docker: docker login your-subdomain.container-registry.com -u USER_NAME -p CLI Push Images Before Tagging: Projects and Repositories Container Registry Structure Inside your Container Registry instance, you can have two types of \u0026ldquo;folders\u0026rdquo; to sort your artifacts and control user access. Projects are bigger ones and contain repositories, the smaller folders. User access is managed on the project level. Default Project Upon your first registration, a sample public project called library already exists in your Container Registry instance. You can pull and push your images from or into it. Alternatively, you can create your own public or private project following the instructions from this tutorial. Fully Qualified Repository Name A fully qualified repository name includes a project and repository name and is used on the next step. You can pull or push your images from/into an existing repository inside your project or create a new repository while pushing an image to Container Registry. Tag the Image Tag the image you want to push; use the qualified name of your repository as repository and some tag as tag: docker tag SOURCE_IMAGE[:TAG] your-subdomain.container-registry.com/library/repository[:TAG] Alternatively: Build Image You can also build a new image with a tag: docker build -t SOURCE_IMAGE[:TAG] -t your-subdomain.container-registry.com/library/repository[:TAG] Push the Image Push the image using its tag to Container Registry: docker push your-subdomain.container-registry.com/library/repository[:TAG] In case of success, you will see the Docker image\u0026rsquo;s ID in your command line tool and in your project repository in Container Registry, under the Artifacts section together with the push timestamp like this: TIP To make pushing images easier for you, we prepared the sample tag and push commands that you can access through the GUI. You only need to change the source image tag and the final tag which you what to use in your Container Registry. Inside the project, click on the PUSH COMMAND as shown on the screenshot: Pull Images If you want to pull images from a private registry, login to it first as described above. Use the following sample command in your command line tool: docker pull your-subdomain.container-registry.com/library/repository:TAG Pulling by Tag or Hash You can pull images using their tags or SHA265 hashes (digests). The hashes are more reliable since tags do not catch all changes in image layers. Pull by Hash In the Container Registry GUI, open the project, then the registry. You will see the list of artifacts. Click on the copy icon in the Pull command column next to an artifact to get a pull command with the hash. If you already have the same image on your PC, they will be matched and the Image is up to date status will be shown in your command line tool. Example pull comand: docker pull your-subdomain.container-registry.com/library/repository@sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 Pull by Tag If you do not know the exact tag, go to your Container Registry account, open the project and the repository, and look for the image you need. The tag is displayed next to it, as well as information about when it was pushed. Annotations and labels can also provide you with a hint. Click on the image to get to the overview of its tags and click on the Pull command icon next to a tag to copy the following command into clipboard: docker pull your-subdomain.container-registry.com/library/repository:TAG","date":"2021-07-28T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/getting-started-guide/push-and-pull-images/","objectID":"451a6c963048508fd4c3189d59bd605d_0","order":0,"tags":null,"title":"Push and Pull Images"},{"category":"Container Registry User Interface: A Short Overview","content":"Container Registry User Interface: A Short Overview When you log in to your Container Registry account as a user, you will see the following console. INFO If you log in as an administrator, you will see an additional administration section. Refer to our Administration Guide for the GUI features overview. Main GUI Features The navigation pane provides you access to your projects and logs. Projects are folders for your images which can be assigned certain settings. Logs contain information about push and pull actions, created repositorues, and a few others. Inside each project, you can also access logs for only this particular project. More about it in the section about working with logs. Both logs and projects have a detailed view where you can search and filter your projects or logs (1) and set the page size to increase or limit the number of displyed items (2). Event Log stores information about local events that do not have directly to do with your registry. User profile and settings contain your user name (which can\u0026rsquo;t be changed after your initial registration), your email, your name, and some additional information. Besides, in your user profile, you can access and manage your CLI secret. Manage Your CLI Secret If you click on the three dots next to the CLI, you will see two additional options: Generate secret will generate a new CLI secret; Upload your own secret will open another dialogue window where you can type in your own secret. Additional GUI Features To search through all project names, repository names, and charts, use the search field on the top pane of the console. In the upper right corner, you can switch language and select from one of the following: English (default language) Chinese Japanese Spanish French Portugese Turkish German In the bottom left corner of the console, you can change the colour theme of the interface from light to dark. Next to it, you have a link that brings you to our Swagger-based API documentation.","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/container-registry-user-interface-a-short-overview/","objectID":"a8666d936bd011108595485e496b09ed_0","order":0,"tags":null,"title":"Container Registry User Interface: A Short Overview"},{"category":"Python API Client","content":"Harbor API Client These APIs provide services for manipulating Harbor project. This Python package is automatically generated by the Swagger Codegen project: API version: 2.0 Package version: 2.7.0 Build package: io.swagger.codegen.languages.PythonClientCodegen Requirements. Python 2.7 and 3.4+ Installation \u0026amp; Usage pip install If the python package is hosted on Github, you can install directly from Github pip install git+https://github.com/container-registry/harbor-api-client.git (you may need to run pip with root permission: sudo pip install git+https://github.com/container-registry/harbor-api-client.git) Then import the package: import harbor_client Setuptools Install via Setuptools. python setup.py install --user (or sudo python setup.py install to install the package for all users) Then import the package: import harbor_client Getting Started Please follow the installation procedure and then run the following: from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) uid_list = harbor_client.LdapImportUsers() # LdapImportUsers | The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Import selected available ldap users. api_instance.import_ldap_user(uid_list, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;import_ldap_user: %s\\n\u0026#34; % e) Documentation for API Endpoints All URIs are relative to http://localhost/api/v2.0 Class Method HTTP request Description LdapApi import_ldap_user POST /ldap/users/import Import selected available ldap users. LdapApi ping_ldap POST /ldap/ping Ping available ldap service. LdapApi search_ldap_group GET /ldap/groups/search Search available ldap groups. LdapApi search_ldap_user GET /ldap/users/search Search available ldap users. RetentionApi create_retention POST /retentions Create Retention Policy RetentionApi delete_retention DELETE /retentions/{id} Delete Retention Policy RetentionApi get_rentenition_metadata GET /retentions/metadatas Get Retention Metadatas RetentionApi get_retention GET /retentions/{id} Get Retention Policy RetentionApi get_retention_task_log GET /retentions/{id}/executions/{eid}/tasks/{tid} Get Retention job task log RetentionApi list_retention_executions GET /retentions/{id}/executions Get Retention executions RetentionApi list_retention_tasks GET /retentions/{id}/executions/{eid}/tasks Get Retention tasks RetentionApi operate_retention_execution PATCH /retentions/{id}/executions/{eid} Stop a Retention execution RetentionApi trigger_retention_execution POST /retentions/{id}/executions Trigger a Retention Execution RetentionApi update_retention PUT /retentions/{id} Update Retention Policy SystemCVEAllowlistApi get_system_cve_allowlist GET /system/CVEAllowlist Get the system level allowlist of CVE. SystemCVEAllowlistApi put_system_cve_allowlist PUT /system/CVEAllowlist Update the system level allowlist of CVE. ArtifactApi add_label POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels Add label to artifact ArtifactApi copy_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts Copy artifact ArtifactApi create_tag POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags Create tag ArtifactApi delete_artifact DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Delete the specific artifact ArtifactApi delete_tag DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name} Delete tag ArtifactApi get_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition} Get the addition of the specific artifact ArtifactApi get_artifact GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Get the specific artifact ArtifactApi get_vulnerabilities_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities Get the vulnerabilities addition of the specific artifact ArtifactApi list_accessories GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/accessories List accessories ArtifactApi list_artifacts GET /projects/{project_name}/repositories/{repository_name}/artifacts List artifacts ArtifactApi list_tags GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags List tags ArtifactApi remove_label DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels/{label_id} Remove label from artifact AuditlogApi list_audit_logs GET /audit-logs Get recent logs of the projects which the user is a member of ConfigureApi get_configurations GET /configurations Get system configurations. ConfigureApi get_internalconfig GET /internalconfig Get internal configurations. ConfigureApi update_configurations PUT /configurations Modify system configurations. GcApi create_gc_schedule POST /system/gc/schedule Create a gc schedule. GcApi get_gc GET /system/gc/{gc_id} Get gc status. GcApi get_gc_history GET /system/gc Get gc results. GcApi get_gc_log GET /system/gc/{gc_id}/log Get gc job log. GcApi get_gc_schedule GET /system/gc/schedule Get gc's schedule. GcApi stop_gc PUT /system/gc/{gc_id} Stop the specific GC execution GcApi update_gc_schedule PUT /system/gc/schedule Update gc's schedule. HealthApi get_health GET /health Check the status of Harbor components IconApi get_icon GET /icons/{digest} Get artifact icon ImmutableApi create_immu_rule POST /projects/{project_name_or_id}/immutabletagrules Add an immutable tag rule to current project ImmutableApi delete_immu_rule DELETE /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Delete the immutable tag rule. ImmutableApi list_immu_rules GET /projects/{project_name_or_id}/immutabletagrules List all immutable tag rules of current project ImmutableApi update_immu_rule PUT /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Update the immutable tag rule or enable or disable the rule JobserviceApi action_pending_jobs PUT /jobservice/queues/{job_type} stop and clean, pause, resume pending jobs in the queue JobserviceApi get_worker_pools GET /jobservice/pools Get worker pools JobserviceApi get_workers GET /jobservice/pools/{pool_id}/workers Get workers JobserviceApi list_job_queues GET /jobservice/queues list job queues JobserviceApi stop_running_job PUT /jobservice/jobs/{job_id} Stop running job LabelApi create_label POST /labels Post creates a label LabelApi delete_label DELETE /labels/{label_id} Delete the label specified by ID. LabelApi get_label_by_id GET /labels/{label_id} Get the label specified by ID. LabelApi list_labels GET /labels List labels according to the query strings. LabelApi update_label PUT /labels/{label_id} Update the label properties. MemberApi create_project_member POST /projects/{project_name_or_id}/members Create project member MemberApi delete_project_member DELETE /projects/{project_name_or_id}/members/{mid} Delete project member MemberApi get_project_member GET /projects/{project_name_or_id}/members/{mid} Get the project member information MemberApi list_project_members GET /projects/{project_name_or_id}/members Get all project member information MemberApi update_project_member PUT /projects/{project_name_or_id}/members/{mid} Update project member OidcApi ping_oidc POST /system/oidc/ping Test the OIDC endpoint. PingApi get_ping GET /ping Ping Harbor to check if it's alive. PreheatApi create_instance POST /p2p/preheat/instances Create p2p provider instances PreheatApi create_policy POST /projects/{project_name}/preheat/policies Create a preheat policy under a project PreheatApi delete_instance DELETE /p2p/preheat/instances/{preheat_instance_name} Delete the specified P2P provider instance PreheatApi delete_policy DELETE /projects/{project_name}/preheat/policies/{preheat_policy_name} Delete a preheat policy PreheatApi get_execution GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Get a execution detail by id PreheatApi get_instance GET /p2p/preheat/instances/{preheat_instance_name} Get a P2P provider instance PreheatApi get_policy GET /projects/{project_name}/preheat/policies/{preheat_policy_name} Get a preheat policy PreheatApi get_preheat_log GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs Get the log text stream of the specified task for the given execution PreheatApi list_executions GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions List executions for the given policy PreheatApi list_instances GET /p2p/preheat/instances List P2P provider instances PreheatApi list_policies GET /projects/{project_name}/preheat/policies List preheat policies PreheatApi list_providers GET /p2p/preheat/providers List P2P providers PreheatApi list_providers_under_project GET /projects/{project_name}/preheat/providers Get all providers at project level PreheatApi list_tasks GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks List all the related tasks for the given execution PreheatApi manual_preheat POST /projects/{project_name}/preheat/policies/{preheat_policy_name} Manual preheat PreheatApi ping_instances POST /p2p/preheat/instances/ping Ping status of a instance. PreheatApi stop_execution PATCH /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Stop a execution PreheatApi update_instance PUT /p2p/preheat/instances/{preheat_instance_name} Update the specified P2P provider instance PreheatApi update_policy PUT /projects/{project_name}/preheat/policies/{preheat_policy_name} Update preheat policy ProjectApi create_project POST /projects Create a new project. ProjectApi delete_project DELETE /projects/{project_name_or_id} Delete project by projectID ProjectApi get_logs GET /projects/{project_name}/logs Get recent logs of the projects ProjectApi get_project GET /projects/{project_name_or_id} Return specific project detail information ProjectApi get_project_deletable GET /projects/{project_name_or_id}/_deletable Get the deletable status of the project ProjectApi get_project_summary GET /projects/{project_name_or_id}/summary Get summary of the project. ProjectApi get_scanner_of_project GET /projects/{project_name_or_id}/scanner Get project level scanner ProjectApi head_project HEAD /projects Check if the project name","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_0","order":0,"tags":null,"title":"Python API Client"},{"category":"Python API Client","content":"user provided already exists. ProjectApi list_projects GET /projects List projects ProjectApi list_scanner_candidates_of_project GET /projects/{project_name_or_id}/scanner/candidates Get scanner registration candidates for configurating project level scanner ProjectApi set_scanner_of_project PUT /projects/{project_name_or_id}/scanner Configure scanner for the specified project ProjectApi update_project PUT /projects/{project_name_or_id} Update properties for a selected project. ProjectMetadataApi add_project_metadatas POST /projects/{project_name_or_id}/metadatas/ Add metadata for the specific project ProjectMetadataApi delete_project_metadata DELETE /projects/{project_name_or_id}/metadatas/{meta_name} Delete the specific metadata for the specific project ProjectMetadataApi get_project_metadata GET /projects/{project_name_or_id}/metadatas/{meta_name} Get the specific metadata of the specific project ProjectMetadataApi list_project_metadatas GET /projects/{project_name_or_id}/metadatas/ Get the metadata of the specific project ProjectMetadataApi update_project_metadata PUT /projects/{project_name_or_id}/metadatas/{meta_name} Update the specific metadata for the specific project PurgeApi create_purge_schedule POST /system/purgeaudit/schedule Create a purge job schedule. PurgeApi get_purge_history GET /system/purgeaudit Get purge job results. PurgeApi get_purge_job GET /system/purgeaudit/{purge_id} Get purge job status. PurgeApi get_purge_job_log GET /system/purgeaudit/{purge_id}/log Get purge job log. PurgeApi get_purge_schedule GET /system/purgeaudit/schedule Get purge's schedule. PurgeApi stop_purge PUT /system/purgeaudit/{purge_id} Stop the specific purge audit log execution PurgeApi update_purge_schedule PUT /system/purgeaudit/schedule Update purge job's schedule. QuotaApi get_quota GET /quotas/{id} Get the specified quota QuotaApi list_quotas GET /quotas List quotas QuotaApi update_quota PUT /quotas/{id} Update the specified quota RegistryApi create_registry POST /registries Create a registry RegistryApi delete_registry DELETE /registries/{id} Delete the specific registry RegistryApi get_registry GET /registries/{id} Get the specific registry RegistryApi get_registry_info GET /registries/{id}/info Get the registry info RegistryApi list_registries GET /registries List the registries RegistryApi list_registry_provider_infos GET /replication/adapterinfos List all registered registry provider information RegistryApi list_registry_provider_types GET /replication/adapters List registry adapters RegistryApi ping_registry POST /registries/ping Check status of a registry RegistryApi update_registry PUT /registries/{id} Update the registry ReplicationApi create_replication_policy POST /replication/policies Create a replication policy ReplicationApi delete_replication_policy DELETE /replication/policies/{id} Delete the specific replication policy ReplicationApi get_replication_execution GET /replication/executions/{id} Get the specific replication execution ReplicationApi get_replication_log GET /replication/executions/{id}/tasks/{task_id}/log Get the log of the specific replication task ReplicationApi get_replication_policy GET /replication/policies/{id} Get the specific replication policy ReplicationApi list_replication_executions GET /replication/executions List replication executions ReplicationApi list_replication_policies GET /replication/policies List replication policies ReplicationApi list_replication_tasks GET /replication/executions/{id}/tasks List replication tasks for a specific execution ReplicationApi start_replication POST /replication/executions Start one replication execution ReplicationApi stop_replication PUT /replication/executions/{id} Stop the specific replication execution ReplicationApi update_replication_policy PUT /replication/policies/{id} Update the replication policy RepositoryApi delete_repository DELETE /projects/{project_name}/repositories/{repository_name} Delete repository RepositoryApi get_repository GET /projects/{project_name}/repositories/{repository_name} Get repository RepositoryApi list_all_repositories GET /repositories List all authorized repositories RepositoryApi list_repositories GET /projects/{project_name}/repositories List repositories RepositoryApi update_repository PUT /projects/{project_name}/repositories/{repository_name} Update repository RobotApi create_robot POST /robots Create a robot account RobotApi delete_robot DELETE /robots/{robot_id} Delete a robot account RobotApi get_robot_by_id GET /robots/{robot_id} Get a robot account RobotApi list_robot GET /robots Get robot account RobotApi refresh_sec PATCH /robots/{robot_id} Refresh the robot secret RobotApi update_robot PUT /robots/{robot_id} Update a robot account Robotv1Api create_robot_v1 POST /projects/{project_name_or_id}/robots Create a robot account Robotv1Api delete_robot_v1 DELETE /projects/{project_name_or_id}/robots/{robot_id} Delete a robot account Robotv1Api get_robot_by_idv1 GET /projects/{project_name_or_id}/robots/{robot_id} Get a robot account Robotv1Api list_robot_v1 GET /projects/{project_name_or_id}/robots Get all robot accounts of specified project Robotv1Api update_robot_v1 PUT /projects/{project_name_or_id}/robots/{robot_id} Update status of robot account. ScanApi get_report_log GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log Get the log of the scan report ScanApi scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan Scan the artifact ScanApi stop_scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/stop Cancelling a scan job for a particular artifact ScanAllApi create_scan_all_schedule POST /system/scanAll/schedule Create a schedule or a manual trigger for the scan all job. ScanAllApi get_latest_scan_all_metrics GET /scans/all/metrics Get the metrics of the latest scan all process ScanAllApi get_latest_scheduled_scan_all_metrics GET /scans/schedule/metrics Get the metrics of the latest scheduled scan all process ScanAllApi get_scan_all_schedule GET /system/scanAll/schedule Get scan all's schedule. ScanAllApi stop_scan_all POST /system/scanAll/stop Stop scanAll job execution ScanAllApi update_scan_all_schedule PUT /system/scanAll/schedule Update scan all's schedule. ScanDataExportApi download_scan_data GET /export/cve/download/{execution_id} Download the scan data export file ScanDataExportApi export_scan_data POST /export/cve Export scan data for selected projects ScanDataExportApi get_scan_data_export_execution GET /export/cve/execution/{execution_id} Get the specific scan data export execution ScanDataExportApi get_scan_data_export_execution_list GET /export/cve/executions Get a list of specific scan data export execution jobs for a specified user ScannerApi create_scanner POST /scanners Create a scanner registration ScannerApi delete_scanner DELETE /scanners/{registration_id} Delete a scanner registration ScannerApi get_scanner GET /scanners/{registration_id} Get a scanner registration details ScannerApi get_scanner_metadata GET /scanners/{registration_id}/metadata Get the metadata of the specified scanner registration ScannerApi list_scanners GET /scanners List scanner registrations ScannerApi ping_scanner POST /scanners/ping Tests scanner registration settings ScannerApi set_scanner_as_default PATCH /scanners/{registration_id} Set system default scanner registration ScannerApi update_scanner PUT /scanners/{registration_id} Update a scanner registration ScheduleApi get_schedule_paused GET /schedules/{job_type}/paused ScheduleApi list_schedules GET /schedules SearchApi search GET /search Search for projects, repositories and helm charts StatisticApi get_statistic GET /statistics Get the statistic information about the projects and repositories SysteminfoApi get_cert GET /systeminfo/getcert Get default root certificate. SysteminfoApi get_system_info GET /systeminfo Get general system info SysteminfoApi get_volumes GET /systeminfo/volumes Get system volume info (total/free size). UserApi create_user POST /users Create a local user. UserApi delete_user DELETE /users/{user_id} Mark a registered user as be removed. UserApi get_current_user_info GET /users/current Get current user info. UserApi get_current_user_permissions GET /users/current/permissions Get current user permissions. UserApi get_user GET /users/{user_id} Get a user's profile. UserApi list_users GET /users List users UserApi search_users GET /users/search Search users by username UserApi set_cli_secret PUT /users/{user_id}/cli_secret Set CLI secret for a user. UserApi set_user_sys_admin PUT /users/{user_id}/sysadmin Update a registered user to change to be an administrator of Harbor. UserApi update_user_password PUT /users/{user_id}/password Change the password on a user that already exists. UserApi update_user_profile PUT /users/{user_id} Update user's profile. UsergroupApi create_user_group POST /usergroups Create user group UsergroupApi delete_user_group DELETE /usergroups/{group_id} Delete user group UsergroupApi get_user_group GET /usergroups/{group_id} Get user group information UsergroupApi list_user_groups GET /usergroups Get all user groups information UsergroupApi search_user_groups GET /usergroups/search Search groups by groupname UsergroupApi update_user_group PUT /usergroups/{group_id} Update group information WebhookApi create_webhook_policy_of_project POST /projects/{project_name_or_id}/webhook/policies Create project webhook policy. WebhookApi delete_webhook_policy_of_project DELETE /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Delete webhook policy of a project WebhookApi get_supported_event_types GET /projects/{project_name_or_id}/webhook/events Get supported event types and notify types. WebhookApi get_webhook_policy_of_project GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Get project webhook policy WebhookApi last_trigger GET /projects/{project_name_or_id}/webhook/lasttrigger Get project webhook policy last trigger info WebhookApi list_webhook_policies_of_project GET /projects/{project_name_or_id}/webhook/policies List project webhook policies. WebhookApi update_webhook_policy_of_project PUT /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Update webhook policy of a project. WebhookjobApi list_webhook_jobs GET /projects/{project_name_or_id}/webhook/jobs List project webhook jobs Documentation For Models Access Accessory ActionRequest AdditionLink AdditionLinks Annotations Artifact AuditLog AuthproxySetting Body Body1 BoolConfigItem CVEAllowlist CVEAllowlistItem ChartMetadata ChartVersion ComponentHealthStatus Configurations ConfigurationsResponse ConfigurationsResponseScanAllPolicy ConfigurationsResponseScanAllPolicyParameter Endpoint Error Errors EventType ExecHistory Execution ExtraAttrs FilterStyle","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_1","order":1,"tags":null,"title":"Python API Client"},{"category":"Python API Client","content":"GCHistory GeneralInfo Icon ImmutableRule ImmutableSelector Instance IntegerConfigItem InternalConfigurationValue InternalConfigurationsResponse IsDefault JobQueue Label LdapConf LdapFailedImportUser LdapImportUsers LdapPingResult LdapUser Metadata Metrics NativeReportSummary NotifyType OIDCCliSecretReq OIDCUserInfo OverallHealthStatus PasswordReq Permission Platform PreheatPolicy Project ProjectDeletable ProjectMember ProjectMemberEntity ProjectMetadata ProjectReq ProjectScanner ProjectSummary ProjectSummaryQuota ProviderUnderProject Quota QuotaRefObject QuotaUpdateReq Reference Registry RegistryCredential RegistryEndpoint RegistryInfo RegistryPing RegistryProviderCredentialPattern RegistryProviderEndpointPattern RegistryProviderInfo RegistryUpdate ReplicationExecution ReplicationFilter ReplicationPolicy ReplicationTask ReplicationTrigger ReplicationTriggerSettings Repository ResourceList RetentionExecution RetentionExecutionTask RetentionMetadata RetentionPolicy RetentionPolicyScope RetentionRule RetentionRuleMetadata RetentionRuleParamMetadata RetentionRuleTrigger RetentionSelector RetentionSelectorMetadata Robot RobotCreate RobotCreateV1 RobotCreated RobotPermission RobotSec RoleRequest ScanDataExportExecution ScanDataExportExecutionList ScanDataExportJob ScanDataExportRequest ScanOverview Scanner ScannerAdapterMetadata ScannerCapability ScannerRegistration ScannerRegistrationReq ScannerRegistrationSettings Schedule ScheduleObj ScheduleTask SchedulerStatus Search SearchRepository SearchResult StartReplicationExecution Statistic Stats Storage StringConfigItem SupportedWebhookEventTypes SystemInfo Tag Task UserCreationReq UserEntity UserGroup UserGroupSearchItem UserProfile UserResp UserSearch UserSearchRespItem UserSysAdminFlag VulnerabilitySummary WebhookJob WebhookLastTrigger WebhookPolicy WebhookTargetObject Worker WorkerPool Documentation For Authorization basic Type: HTTP basic authentication Author","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/","objectID":"e81dad90bc1f6e547738b43d4fbcfe2e_2","order":2,"tags":null,"title":"Python API Client"},{"category":"OIDC Authentication","content":"OpenID Connect Single Sign-On Authentication We support all OIDC compliant identity providers. In the User Guides section, you can find selected configuration tutorials that explain how the settings look like on the provider side. This reference, explains what you need to do in your Container Registry instance to enable and configure the OIDC login. Usually, you should proceed with this tutorial if you have access to your OIDC\u0026rsquo;s provider management console to set up new client. Besides, make sure that you made yourself familiar with general notes on different authentication modes as each of them may have its advantages and disadvantages. Enable the OIDC Authentication In the left navigation pane in the Container Registry UI, select Administration; Click on Configuration; Open the Authentication tab; In the Auth Mode, select OIDC from the dropdown; NOTE Switching the authentication mode from the database mode to OIDC is only possible on a system without existing users. To resolve such issue, the system admin (admin) needs to delete all users manually in the UI or via API. OIDC Configuration Primary Auth Mode When enabled OIDC becomes the default way for users to login. The login screen where the user can select to log in via the identity provider or via local DB will not be shown and redirect the user to the identity provider configured here. Login via DB is still possible but the admin user need to visiting the url account/sign-in explicitly in order to be able to log in via username and password. OIDC Provider Name The OIDC Provider Name is for you to identify the selected IDP or the configuration. The name is not visible to the user. OIDC Endpoint Mandatory Enter the OIDC Endpoint of the publicly accessible endpoint that serves its OpenID configuration document /.well-known/openid-configuration. The URI of the configuration document\u0026rsquo;s endpoint is usually visible in the identity provider management console. For some identity providers configurations an ending slash / is required. OIDC Client ID Mandatory The client id is a public identifier for apps, given out by your identity provider, if you create a new App. Fill in the field with information you copied from your identity provider. OIDC Client Secret Mandatory The client secret is should only be known to the application and the authorization server. It is essential the application’s own password. Fill in the field with information you copied from your identity provider. Group Claim Name Enter the Group Claim Name which contains the list of groups the user is member of in the ID Token. During the login the user is added to the Harbor group he is member of. OIDC Admin Group Specify a name from the Group Claim Name, where users belonging to that group will have admin privileges. OIDC Scope Mandatory In OIDC Scope, enter at least openid,email and offline_access. Optionally add profile to get users first and last name. Verify Certificate Tick on Verify Certificate if your provider offers a CA (Certificate Authority) Signed Certificate and not a self-signed one. Automatic Onboarding Specifies if users will have the option to define their own username when signing up for the first time. If you select Automatic Onboarding, the username request dialog screen won\u0026rsquo;t be shown, and users will be automatically assigned their usernames as they appear in the OpenID token; Username Claim This setting only works in combination with Automatic Onboarding If you activated Automatic Onboarding, you may also specify the property in the ID token that will be used as the usernames. Test the connection to verify the configuration against the IDP. Hit Save if it worked out well. Login via OIDC provider When you log out and then log in again, a new Login via OIDC provider button will appear on the login screen. As a system admin, you can continue to use your old credentials and Username and Password field to access your instance. Identity Provider Callback URL Independently of your provider, you need to set a redirect URL, the is also displayed in the line above the Save Button. https://your-instance-domain.com/c/oidc/callback Refreshing CLI Secret with OIDC Authentication Users\u0026rsquo; CLI secrets my not be valid after a some time. In OIDC enabled setups, the CLI secret depends on the validity of the JWT, which usually has a validity period defined by the identity provider. In cases where the user\u0026rsquo;s CLI password isn\u0026rsquo;t working, the user must log in to the Container Registry UI to refresh the JWT.","date":"2021-09-30T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/authentication/oidc-authentication/","objectID":"b0fa7bdc2697390155fe7a10f1d4d171_0","order":0,"tags":null,"title":"OIDC Authentication"},{"category":"Scanning Artifacts","content":"Scanning Artifacts Read more about vulnerability scanning and how the health score is calculated here. Running a System-Wide Scan As a system administrator, you can scan all artifacts in your instance at once. Go to Administration; Click Interrogation Services; Select Vulnerability tab; Click Scan now. This will set the whole process in motion. You can watch the progress. Schedule a Scan Inside the vulnerability tab, you can schedule a system-wide scan. It will scan all artifacts in all projects. The scan can be set to run: hourly; daily; weekly; or on a custom schedule entered in the CRON format. How to Scan Only Selected Artifacts To do this, you need to go to a certain project to pick up artifacts. Click Projects in the navigation pane; Click on a project in the project overview); Click on a repository; Select artifacts; Optionally, filter artifacts; Click Scan.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/scanning-artifacts/","objectID":"315f3dbb8ad511192ccd502221e2a77f_0","order":0,"tags":null,"title":"Scanning Artifacts"},{"category":"User Management","content":"User Management Add Another System Admin You can make another user a system admin: In the navigation pane, expand the Administration section; Select Users; Select a user name from the list; Click SET AS ADMIN. The new admin will have the same rights as the existing ones. Revoke System Admin Access To revoke admin access rights, repeat the steps from the previous section. Instead of Set as Admin, you will see REVOKE ADMIN after selecting user names. Click this button. User Management in the Database Mode Prerequisites User management is only possible in the GUI if you have set the authentication mode to database as explained here. Add New Users In the navigation pane, expand the Administration section and select Users; Then, click New User; Fill in the form; do not forget to note the password; Hit Save; Communicate the credentials to the new user; we recommend using OneTimeSecret. Validation Rules for User Names and Passwords Each user name must be unique within the instance. The minimal length for the password is 8 characters. It must include: 1 lowercase letter; 1 uppercase letter; 1 number. Changing and Resetting User Passwords As an admin, you can change the user password. In the Users tab, tick the checkbox next to the user; Click Actions and then Reset password; In the dialogue window, type in the new password and communicate it to the user. We recommend one-time notes from OneTimeSecret. Allow Users to Reset Their Passwords Instead of resetting user passwords manually, you can configure an email server to let users reset their passwords by themselves. They will use the Forgot password link below the sign-in form and receive a link to their email box. Steps to Configure Email Server Indeed, you need to set up such a server internally or using an external provider. In the navigation pane, expand the Administration section; Go to the Configuration section; Click on the Email tab; Fill in the following fileds : email server; email server port; email username; email password; email sender; can be configured as Container Registry Password Reset \u0026lt;hello@your-subdomain.container-registry.com\u0026gt; Select if you want to use an SSL and/or a trusted certificate. Test the server connection; Hit Save if everything works fine. Delete Users In the navigation pane, expand the Administration section; Select the Users tab; Select the users you want to delete; Click Actions; Select Delete.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/user-management/","objectID":"2696d8f6e8e87ed7a390fd2ee39bcf4e_0","order":0,"tags":null,"title":"User Management"},{"category":"Tag Policies","content":"Tag Policies Managing Tag Policies Prerequisites These rules require a project administrator permission level and are applied on the repository level. Another way to manage tags in bulks is to define specific rules. Two types of such rules are possible: tag retention rules; tag immutability rules. For both retention and immutability, you can create up to 15 rules that will be applied using an OR algorithm. It means that the rules are calculated independently from each other.","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/tags/","objectID":"b89f3577edd8c943787ee84d0869b2b7_0","order":0,"tags":null,"title":"Tag Policies"},{"category":"Webhooks","content":"Webhooks Webhooks are API push notifications sent in the form of HTTP or HHTPS POST requests. They pro-actively deliver messages to other applications when some event occurs inside their own application. They can inform or trigger further events in the destination application. For instance, you can directly deploy an application upon the image push. This allows you to automate your deployments. In Container Registry, you can add either an HTTP or Slack-based HTTPS URL that will be used for receiving the messages by the target application. You have a choice between the following events that can initiate a push message: Artifact deleted Artifact pulled Artifact pushed Chart deleted Chart downloaded Chart uploaded Quota exceed Quota near threshold Replication finished Scanning failed All incoming messages (payloads) will be in JSON format. Below is an example from the push artifact event message: { \u0026#34;type\u0026#34;: \u0026#34;PUSH_ARTIFACT\u0026#34;, \u0026#34;occur_at\u0026#34;: 1586922308, \u0026#34;operator\u0026#34;: \u0026#34;username\u0026#34;, \u0026#34;event_data\u0026#34;:{ \u0026#34;resources\u0026#34;: [ { \u0026#34;digest\u0026#34;: \u0026#34;sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792\u0026#34;, \u0026#34;tag\u0026#34;: \u0026#34;5.0\u0026#34;, \u0026#34;resource_url\u0026#34;: \u0026#34;epic-exoscale.container-registry.com/documentation/test_slack:5.0\u0026#34; } ], \u0026#34;repository\u0026#34;: { \u0026#34;date_created\u0026#34;: 1628167510, \u0026#34;name\u0026#34;: \u0026#34;test_slack\u0026#34;, \u0026#34;namespace\u0026#34;: \u0026#34;documentation\u0026#34;, \u0026#34;repo_full_name\u0026#34;: \u0026#34;documentation/test_slack\u0026#34;, \u0026#34;repo_type\u0026#34;: \u0026#34;private\u0026#34; } } } Prerequisites Webhooks must be enabled on the instance level by your system administrator (super admin). The instructions are available here. You must be a project administrator to add webhooks to the project. Get Your Webhook URL You need an endpoint URL that is able to receive HTTP/HTTPS POST requests. HTTP or HTTPS Configure a webhook listener on a server that will receive messages and perform further actions if their content requires so. Slack You can configure Slack, a popular team messenger, to receive notifications from your project. For this, you need: a Slack account; a Slack workspace; a target channel inside this workspace; an app with enabled incoming webhooks. For the last step, there are two methods to implement it: Add the existing legacy Incoming Webhooks app from the Slack marketplace: Go to https://slack.com/apps/A0F7XDUAZ-incoming-webhooks?tab=more_info; Click Install; On the following page, select your channel and click Add Incoming WebHooks Integration. Alternatively, create a new Slack channel: You\u0026rsquo;ll be redirected to the Setup Instructions page where you can copy your webhook URL: After you add your webhook in the Container Registry GUI, you will start receiving Slack notifications that look like this: Create your own Slack app and enable webhooks for it. Go to https://api.slack.com and click Create an app or Go directly to https://api.slack.com/apps?new_app=1; Select From an app manifest if you only need it for the webhooks; Select your workspace; Inside the YAML or JSON file, change the name of your app; Hit Next and then Create; You\u0026rsquo;ll land in the basic information view of your new Slack app; Click Incoming Webhooks; Activate incoming webhooks for this app with the slider and then click Add New WebHook to Workspace; Select the target channel to post notifications and click Allow; Your Slack webhook URL was now generated and can be copied: Your new app will be visible among your Slack apps: After you add your webhook in the Container Registry GUI, you will start receiving Slack notifications that look like this: Webhook Triggers The table contains the details about available webhook triggers and what they do. Event Webhook Event Type Contents of Notification Push artifact to registry PUSH_ARTIFACT Repository namespace name, repository name, resource URL, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Pull artifact from registry PULL_ARTIFACT Repository namespace name, repository name, manifest digest, artifact name, pull time timestamp, username of user who pulled artifact Delete artifact from registry DELETE_ARTIFACT Repository namespace name, repository name, manifest digest, artifact name, artifact size, delete time timestamp, username of user who deleted image Upload Helm chart to chartMuseum UPLOAD_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of push, username of user who uploaded chart Download Helm chart from chartMuseum DOWNLOAD_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of push, username of user who pulled chart Delete Helm chart from chartMuseum DELETE_CHART Repository name, chart name, chart type, chart version, chart size, tag, timestamp of delete, username of user who deleted chart Image scan completed SCANNING_COMPLETED Repository namespace name, repository name, tag scanned, image name, number of critical issues, number of major issues, number of minor issues, last scan status, scan completion time timestamp, vulnerability information (CVE ID, description, link to CVE, criticality, URL for any fix), username of user who performed scan Image scan failed SCANNING_FAILED Repository namespace name, repository name, tag scanned, image name, error that occurred, username of user who performed scan Project quota exceeded QUOTA_EXCEED Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Project quota near threshold QUOTA_WARNING Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who pushed artifact Artifact replication finished REPLICATION Repository namespace name, repository name, tags, manifest digest, artifact name, push time timestamp, username of user who triggered the replication You can use any combination of them or all triggers. Creating a New Webhook in the Container Registry GUI Go to the Webhooks tab in your project; Click + NEW WEBHOOK: Select slack if you copied your endpoint/webhook URL from a Slack application, or select http if you use another application to receive push notifications; Paste the endpoint URL; For HTTP endpoint URLs, you can provide the Authorization Header that specifies your authorization type and contains your credentials, if required, for instance: Authorization: Bearer {{token}} Select an option to verify remote certificates; For HTTP endpoint, disable the feature; For HTTPS, enable it. Webhooks Overview and Details If you click on the arrow next to a webhook, you can open a detailed overview of the triggers and when they ran for the last time. You may need to flick through the triggers using the arrows in the bottom right corner. Enabling/Disabling, Editing, and Deleting Webhooks You can delete webhooks manually or in bulks if you tick the checkboxes and click Delete under the Action menu. You can disable/re-enable and edit","date":"2021-08-05T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/webhooks/","objectID":"b135e4c7439b19538cce7a471fc23d4f_0","order":0,"tags":null,"title":"Webhooks"},{"category":"Webhooks","content":"webhooks one by one if you tick the checkboxes and click Disable/Enable or Edit under the Action menu.","date":"2021-08-05T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/configuration/webhooks/","objectID":"b135e4c7439b19538cce7a471fc23d4f_1","order":1,"tags":null,"title":"Webhooks"},{"category":"Working With Projects","content":"Working With Projects This article contains basic information about projects in Container Registry. What Projects Are For When you log in to your Container Registry account, you will land in the Projects section. Projects play a central role in Container Registry for two reasons. Projects host all repositories of the application that you need images for. Basically, a simple rule will be one project = one application. Inside a project, you can have multiple repositories. Consequently, you can only start working with images, if you have at least one project. By default, upon your initial registration, a sample project will be created for you automatically. The repositories can be created with the push or from the console UI. Permissions are set on the project level in the form of Role-Based Access Control (RBAC). Look here to learn about certain actions that users with different roles can perform. Types of Projects Harbor allows two types of projects: public and private. Public projects do not require project membership to pull images from this kind of project. The users do not even need login credentials for their Docker clients. On the contrary, to access private projects, you have to be added to it by the project administrator. The project administrator is another user and not necessarily the system administrator / superadmin of your instance. Read more about assigning users to projects in this article. Create New Project Navigate to the Projects section; Use the + NEW PROJECT button; Give your project a name; Set the access level to public or private. Set Project Quotas Project quotas are storage quotas for your images. If you create a project as a user, ask your superadmin to adjust the storage quotas (refer to the administration manual). If you create a project as a superadmin, you will be able to set the quotas directly in the dialogue window: Set a number and select the scale; Type in -1 to set an unlimited storage quota. Filter or Search Projects In the Project section, you can filter your projects by: their type: public or private; their name. To filter by project type, use the following dropdown: To filter by project name, use the search field: You can also search for projects using the seach icon in the Project Name column header: To display all projects again, delete your search string and click X. Refresh Existing Projects Since more than one project admin is possible per project, more than one collaborator can create and delete projects in the same instance. If you notice that some repositories or certain images are missing, try to refresh the list of existing projects to make sure that you are looking at the actual view: Delete Projects If you have a project admin role in the project, you can delete your projects. Inside the Projects section, select the projects you want to delete and click Delete: Project Summary Summary of All Projects When you are on the highest level of the project section, you can see the following summary of your projects and repositories: Project List Inside the project section, you can see the list of all projects you are the member of, as well as some basic information about them: Project names; Their type (shown as Acess Level column); Your role in each project; The type of the entry; Number of the repositories Number of charts; Creation time. Summary of Each Project Inside every project, you can get a similar summary that includes: number of repositories in the project (1); project quotas: storage consumption (2); number of helm charts (3); number of project members per project role (4).","date":"2021-03-30T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-manual/projects/","objectID":"6c5ad82046c6871478f1acb26afac188_0","order":0,"tags":null,"title":"Working With Projects"},{"category":"Other Useful Features","content":"Other Useful Features Our Harbor-based cloud service allows you to manage your images easier. Apart from pulling and pushing images to and from your container registry, you can: Facilitate your Kubernetes deployments by seamless integration between your Kubernetes clusters and Harbor-based container registries; using Kubernetes YAML manifests: Helm Charts; access your Chart Museum directly from the GUI Bypass connectivity issues by using a proxy cache: a pull-through cache for another target registry; a cached copy is checked against the target and is always up-to-date. Better manage your images by organizing them into projects; creating repositories inside projects; tagging images; creating labels and annotations for images; Improve your security by running vulnerability checks on images; using identity providers, such as Google and Azure; distributing commercial images safely; applying role-based access control to all artifacts; Automate your workflow by creating robot accounts; creating, refreshing, and synchronizing their secrets programmatically with Harbor Sync; creating webhooks; specifying a P2P preheat policy for commercial distribution of the images; Have a better overview of your costs by monitoring project quotas.","date":"2021-03-29T12:11:51+02:00","description":"A brief overview of the available features","href":"https://container-registry.com/docs/getting-started-guide/other-useful-features/","objectID":"5580fb613387ff9877f009f1f3f0f259_0","order":0,"tags":null,"title":"Other Useful Features"},{"category":"General Configurations","content":"General Configurations System-Wide CVE Allowlist You can manage your deployment security by excluding certain vulnerabilities – entries in the Common Vulnerabilities and Exposures List – from the health score calculation. Project admins can do this on the project level re-using system-wide CVE lists or creating their own. Add Items to a System-Wide CVE Allowlist In the navigation pane, expand Administration; Go to Configuration; Open System Settings; Scroll down to Deployment Security; Click ADD; Find the vulnerability in this database; Enter the items separated by simple commans or line breaks; Select an expiration date for the allowlist or click Never expires; Click ADD; Click Save. Edit Existing System-Wide CVE Allowlist Still in the Deployment security, click on the x next to the CVE index to remove it from the system-wide allowlist. Vulnerability Database Updates If you have vulnerability scanners Clair or Anchore, you can see when these databases were updated for the last time. The timestamp can be accessed under Administration -\u0026gt; Interrogation Services -\u0026gt; Vulnerability.","date":"2021-09-08T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/general-configurations/","objectID":"0a64c1e8701adbcfd2c5b799763c29cb_0","order":0,"tags":null,"title":"General Configurations"},{"category":"System Robot Accounts","content":"System Robot Accounts Robot accounts are used to let another application log in to Container Registry automatically. The overview of all robot accounts in your instance is available from Navigation -\u0026gt; Robot Accounts. Please note that all robot accounts get a prefix to their names when they are created. By default, the prefix is robot$. It is possible to configure another prefix as described here. Available Robot Account Permissions Robot accounts can access Container Registry through API or a command line tool but never the GUI. They can perform one or more of the following actions based on the permissions you granted them: Push artifacts Pull artifacts Delete artifacts Read Helm charts Create a Helm chart version Delete a Helm chart version Create a tag Delete a tag Create artifact labels Create a scan System robot accounts may be granted such permissions for more than one project or even for the entire system. Create a System Robot Account The procedure is similar to creating robot accounts on the project level as described here with the difference that, as a system admin, you can create robots that have access to multiple projects. To create a system robot account: Go to the Administration tab; Select Robot Accounts; Click New Robot Account; Fill in the form: Give your robot a catchy name; Select from the dropdown if its token should expire and how soon; INFO The tokens can be refreshed upon expiration or at any other time as described here. Optionally, add a description; Set which projects it should have access to: A) Select Cover all projects and set permissions that apply to all projects. Select or de-select them from the dropdown. B) If you have a lot of projects, filter them by name and then click Cover all Projects to include the selected results. IMPORTANT The filter that you created in this step will be saved in the robot account configuration. It means that if you later create a project with the name matching the same pattern, the existing robot account will be automatically granted access rights to this project. C) Or check the tickboxes next to specific projects. In this case, you will need to set permissions for each project individually. As a shortcut, you can use the Reset Permissions button to revoke certain permissions from all projects in the list. Hit ADD to add the new system robot account. Upon creation of the new robot account, the secret token for this account will be displayed once. You can also save it as a JSON file if you use the Export to file button. If you do not copy or export the token immediately, you will need to reset it later since the original one won\u0026rsquo;t be accessible any longer due to the restrictions of the underlying Harbor technology. Managing System Robot Accounts From the system robot accounts overview, under Administration -\u0026gt; Robot Accounts, you can manage your robots. To do this, tick the checkbox next to an account and click on Action button. You cannot manage items in bulk. Refresh System Robot Account Token Robot account secret tokens must be refreshed when they expired or can be refreshed when you have not saved the original ones or want to refresh them for security reasons. To do this, use the Refresh Secret button and then Refresh in the opened dialogue window. The new secret will be generated automatically. After you hit Refresh, you will see the dialogue window that allows you either to copy your secret or download it as a JSON file. Remember, that, like in the case of new account creation, this secret token won\u0026rsquo;t be saved anywhere in the system, so make sure you save it immediately. Optionally, you can type in your own secret if you enable this option using the slider. Requirements for the Manual Secret 8-20 characters including: at least 1 uppercase; at least 1 lowercase; at least one number. Edit System Robot Account Still in the Robot Accounts overview, use Action button and then Edit to edit general attributes of the robot account, such as expiration period, description, and permissions. You cannot rename existing robot accounts. Delete System Robot Accounts In the same Robot Accounts overview, use Action button and then Delete to remove any system robot accounts completely. Disable and Enable System Robot Accounts Instead of deleting system robot accounts, you can disable them using Action - \u0026gt; Disable in the Robot Accounts overview. The accounts will be kept in the system and can be enabled using the same Action button. Additional Configuration You can configure a few features that apply to the creation of new system robot accounts. This needs to be done from a different section in the navigation. Go to Administration; Click on Configuration; Then open the System Settings tab. Changing Default Robot Accounts Prefix By default, all new accounts are created with a robot$ prefix that is attached to the name that you provide manually. You can set a different default prefix in the System Settings. In the Robot Name Prefix, type in the new prefix string. The prefix will be applied to all new system and project robot accounts. The robot accounts with the old prefix will be marked as legacy. Robot Accounts Expiration By default, when you create a new system or project robot account, the Expiration time field is filled with a value which is 30 (days). You can set a different default value which will be also in days counted from the creation of a robot account. In the same System Settings tab, you can specify the default expiration period for the tokens of all newly created robot accounts. However, you still can set the expiration period manually while creating a robot.","date":"2021-08-19T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/system-robot-accounts/","objectID":"07692a3e1de0c414bbc9f9d6bbc7c326_0","order":0,"tags":null,"title":"System Robot Accounts"},{"category":"Working With Artifacts","content":"Working With Images, OCI Indexes, Tags, and Helm Charts Needless to say, Docker images are the reason why you actually want to work with Container Registry. This section will describe general features available for managing images and helm charts. To learn about working with tags, refer to this section. To learn how to push and pull images, refer to this tutorial. Types of Artifacts When you open a repository in a project, you will see a list of the available artifacts: items stored in the same repository. The following types of artifacts are possible: Images: items with the Docker whaleship icons; Helm charts: items with the \u0026ldquo;Helm\u0026rdquo; icon; OCI indexes: items with the three-bubbled icon on the left and a folder icon on the right. What are OCI indexes and why do you need them? Some images may be gathered in lists using the OCI index. In general, every Docker image has a manifest: information about its layers, size, digest, as well as for which operating system and type of CPU architecture it was built, etc. Images are only templates that do not change. The changes are stored in the image layers. In Harbor, you can create manifest lists that are basically lists of the layers of the same image. Manifest lists appear in Container Registry as artifacts with a folder icon. When you click on the icon, the entire list of the image manifests will be displayed. Refer to the official Docker documentation to create a manifest list using your command line tool. SHA256 Hash The artifacts are named using a SHA256 hash. A hash can be described as a key or a representation of a text message. It is similar to encryption but it can be decrypted into the original message easily. SHA256 hashes refer to the JSON file that keeps the image manifest and are generated when the image is compressed for being pushed. Since such compression is also a kind of change, a new image layer is created during this preparation for a push. Consequently, this layer needs a new manifest that is pushed to a repository. Further, the manifest is written in a new JSON file. Eventually, this file becomes its own new unique hash. INFO To display the type of the artifact as well as its complete hash, hover over one of them respectively: Displaying artifact type: Displaying artifact hash: You do not need to memorize the hash, though. It can be copied into clipboard. Overview of the Stored Images/Artifacts The overview table has the following columns: Artifacts. Pull Command: when you click on the copy icon next to an artifact, the pull command for this artifact will be copied to clipboard and can be used in your command line tool to pull the artifact. Example of the copied command: docker pull your-subdomain.container-registry.com/library/test@sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 Since there are different types of artifacts stored in repositories, they are all referred to using their SHA256 hashes. Tags. Read more about Docker image tags here. Some artifacts can have multiple tags. Hover over the entry to display an overview of all tags or check them in the artifact view. Size. This column shows the size of the compressed artifact. When you pull it to your local machine, it will be decompressed to its original size again. Vulnerabilities. This column shows the results of the image scan if any scan has been run upon it. Hover over the entry to display all vulnerabilities or check them in the artifact view. Annotation. This column displays additional information that was added to the image manifest. It can include: type of CPU architecture; architecture variant; operating system and, optionally, its versions and features. Read more about setting images annotations here. Labels shows labels that you or your project collaborators assigned to the artifact. Push Time shows when the artifact was pushed for the last time. Pull Time shows when the artifact was pulled for the last time. Filtering Artifacts You can filter artifacts in the repository using the magnifier in the top right corner of the table. Click on it to access different filtering options. Filter Artifacts by Type You can restrict the artifacts overview to a specific type by selecting one of the types in the dropdown: Filter Artifacts by Tags You can display only tagged or untagged images. Filter Artifacts by Label You can display only artifacts that have the same label. You can select more than one label in this operation. Managing Artifacts In the artifacts overview, a few basic operations with artifacts are available. Every time you need to perform one of them: Tick the checkbox next to the artifact; Click Actions: Per-Item Actions These kinds of actions can only be applied to one artifact at a time. Copy Digest This button will open another dialogue window where you can copy the digest to clipboard. Add Labels Labels are another way to add some short information to your artifacts to sort them later or to make them more eye-catching in the overview. Labels must be added to the project by the project administrator as described here. Bulk Actions: Delete or Scan Artifacts These actions can be applied to more than one artifact at a time. INFO To scan images, you need at least the project administrator privileges.","date":"2021-08-11T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/images/","objectID":"867296aa8812795d3fcf8878e82a9ea6_0","order":0,"tags":null,"title":"Working With Artifacts"},{"category":"Endpoints For Replications and Proxy Cache","content":"Endpoints For Replications and Proxy Cache Projects Endpoints are container image registries. They can be instances of the Container Registry platform, or other Harbor-based registries, or even non-Harbor-based ones. Non-Harbor Registries: General Information Supported Non-Harbor Registries For Replications Ali Cloud Container Registry (Alibaba ACR); Artifact Hub; AWS Elastic Container Registry; Azure Container Registry; Docker Hub; Docker registry; DTR; GitHub GHCR; Gitlab; Google Container Registry; Harbor; Huawei SWR; Jfrog Artifactory; Quay; Tencent TCR. For Proxy Cache Projects Harbor; Docker Hub; AWS Elastic Container Registry; Azure Container Registry; Google Container Registry; Quay. INFO We update these lists regularly but you can also check for the original ones here. Getting Your Access ID and Access Secret from Other Providers When you create a new endpoint as described below, you will need to enter an Access ID and Access Secret. Different providers have different names for that. Amazon ECR In the case of AWS ECR, those are not your (root) user credentials but the so-called keys for programmatic access. Read this AWS documentation article to understand how you can access these keys in your AWS account. Google Container Registry (GCR) In GCR, those can be downloaded as a JSON file following the instructions from the official documentation. Quay Without Authorization If your Quay registry does not require authorization, do not enter anything in the Access ID and Access Secret fields. With Authorization In this case, you need to leave the Access ID field empty and enter all credentials into the Access Secret field in JSON format, like this: { \u0026#34;oauth2_token\u0026#34;: \u0026#34;YmQZ1QZENVmOD6v9kENzmfptNVhgBuy5oVl85eGV\u0026#34;, \u0026#34;account_name\u0026#34;: \u0026#34;account_name\u0026#34;, \u0026#34;docker_cli_password\u0026#34;: \u0026#34;q6NVazikNqIf4coiQ+JvV4iqiCpkNjE0DLX8ZMQuFRbkHk5iMv6/hd4WdV3W3nyX\u0026#34; } The OAuth2 token can be skipped if you do not want to create a new organization; Account name: If you use robot account credentials, be aware that it can only be used in one Container registry system at the same time. Thus, you will need different robot accounts for every Container Registry instance; Alternatively, and this is even recommended, use your personal account name; Docker CLI password is your general CLI password. Create New Endpoint In the navigation pane: Go to Administration; Then to Registries; Click + New Endpoint. Fill in the form; For the endpoint URL, use the URL of the registry; If you want to connect to another Harbor-based registry, use the account name of your robot account as Access ID and its token as Access Secret; Select if there is a security certificate on the other side or not. Test the connection; Save the endpoint if the test ran successfully. Manage Existing Endpoints You can either edit or delete any of the existing endpoints. In the Registries overview, select one endpoint for editing or one or multiple ones for deleting.","date":"2021-08-27T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/endpoints-for-replications-and-proxy-cache/","objectID":"e7cec8f5c23fa5955f485fbbc7a310bd_0","order":0,"tags":null,"title":"Endpoints For Replications and Proxy Cache"},{"category":"Working With Logs","content":"Working With Logs Logs track everything that happens in your system. You can access logs from different places in the GUI. Event Logs You will see this side bar on the right from everywhere in Container Registry. Hover over the EVENT LOG tab to exapnd it. Event log includes high-level events, for instance, adding or deleting a new user to the system: In some cases, project-related events will be also displayed in this section. Local events are shown in groups: All; Running; Failed. All Projects Logs Events that happen within certain projects can be found in the Logs section of the Navigation pane on the left. Each log entry includes the following information: username; resource; resource type: tag; artifact; project; operation; timestamp. You can type your search string and use a dropdown filter to narrow the search down to: username; resource; resource type: operation. Project Logs In addition to the Logs section and Event Log, you can dig into log data generated for particular projects. For this, go to the Logs tab inside the project. Each project log entry includes the following information: Username of the project memeber who initialized the operation; Resource: an image or project name depending on the level the operation happened on; Resource type: artifact/image; project; Operation: create; delete; push; pull; Timestamp. Here, you can filter your logs by: user name: date of the operations; type of the operation. For the last two filters to appear, use Advanced filer mode.","date":"2021-08-17T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/working-with-logs/","objectID":"e148e2ad617e81f30991a395ad4e97a2_0","order":0,"tags":null,"title":"Working With Logs"},{"category":"Configure Replication Rules","content":"Configure Replication Rules Replication rules specify which artifacts will be moved between registries and how they should be moved. Each replication rule includes: a filter to catch particular artifacts; a scheduler; a flattening rule. Create or Configure a Replication Rule Prerequisite You need at least one endpoint – a registry to push or pull images from – to create a new replication rule. Steps In the navigation, select Administration and then Replications; Click + New Replication Rule; If you want to edit an existing one, select it for editing as explained below; Fill in the form: Name should not have any white spaces; Description is optional; Replication mode: Push-based means that you will push images from your current Container Registry instance into a remote one; Pull-based means that you will pull images to your current Container registry instance from a remote one; Resource filter: in the push replication mode, your current instance is the resource, whereas, in the pull mode, the resource is the remote registry; the resource filter selects which artifacts should be included in the replication: Name is the repository name; however, you can include all repositories by specifying in this field only the name of the project or using patterns; Tag is the artifact tag; Label; In the Resource dropdown, you can choose between the artifact type: chart, image, or any artifact. Destination/Source registry: you need to specify the remote registry by selecting an existing endpoint from the dropdown; In the Destination Namespace you can enter a custom name for the namespace where the artifacts should be pushed; if you leave it empty, the namespace existing in the source will be created in the destination and the artifacts will be stored there; In you specify a destination namespace or tag, you will need to select a Flattening rule for them (read more about flattening below); Trigger will specify when a replication should run: manually: when you start it pro-actively; scheduled: the replication runs repeatedly after the same time interval; this interval must be specified using the CRON format; event-based runs when an event happens; for manual and scheduled triggers, specify if you want the artifacts with the same name to be overridden in the destination; for event-based trigger, specify if you want to synchronize delete operations. INFO The resource filter is an AND filter. The more conditions you add, the narrow is the selection. Which Events Trigger a Replication or Not The following events will trigger a replication that is set to be event-based: a new artifact has been pushed into the resource registry; an artifact was re-tagged in the resource registry; optionally: an artifact has been deleted from the resource registry; to activate this one, you need to tick the checkbox near Delete remote resources when locally deleted. INFO Changes in the artifact labels do not count as events and never trigger a replication. Flattening Docker images have multiple layers that reflect all changes you\u0026rsquo;ve done to the original image. Layers are organized into hierarchies. When a layer in the hierarchy is changed, Docker will propagate the changes to all the layers below this one. The hierarchy may have more than one brunch. Consequently, you need to make sure that you keep track of where certain layers come from, which changes were applied to them, and how to find the \u0026ldquo;original\u0026rdquo; layer. You can also choose not to track this information if you do not need it. An image hierarchy can be visualized in your command line tool using the tool known as dockviz and looks like this: $ dockviz images -t -l └─511136ea3c5a Virtual Size: 0.0 B ├─f10ebce2c0e1 Virtual Size: 103.7 MB │ └─74fe38d11401 Virtual Size: 209.6 MB Tags: ubuntu:12.04, ubuntu:precise ├─ef519c9ee91a Virtual Size: 100.9 MB │ └─a7cf8ae4e998 Virtual Size: 171.3 MB Tags: ubuntu:12.10, ubuntu:quantal │ ├─5c0d04fba9df Virtual Size: 513.7 MB Tags: nate/mongodb:latest │ └─f832a63e87a4 Virtual Size: 243.6 MB Tags: redis:latest └─02dae1c13f51 Virtual Size: 98.3 MB └─316b678ddf48 Virtual Size: 169.4 MB Tags: ubuntu:13.04, ubuntu:raring In your repository, this hierarchy is represented through slashes in the artifact name. The highest level appears in the image name on the left, before the very first slash. By selecting a flattening rule, you keep some or all or none of the hierarchy levels. It is pretty much like removing parts of the image name. When you drop – flatten – one or a few levels, one or a few slashes and characters between them will be removed from the artifact name. INFO Chartmuseum always needs two levels left on the chart name. Options for the scope of flattening: Flatten All Levels will remove the complete hierarchy leaving only the tag of the last layer; No Flatteing will keep the hierarchy as it appears in the resource registry; Other options always remove a number of levels (parts of the image name starting from the left): Flattening 1 level; Flattening 2 levels; Flattening 3 levels. Pattern Matching Rules for the Name and Tag Resource Filter You can use double-starred patterns as explained here to include only certain repositories in the project or certain tags. The pattern will be matched with the names of repositories or artifacts. In addition to that, you can use two more pattern matching methods. Contrary to double-starred patterns that take any match independently of the number of the characters that can be added to the pattern to build a match, with the question mark, you can specify that only one character can be added. For instance, test? will be matched with test1 and test2 but not with test12. To enter more than one pattern as a match, create a list of them using curly brackets and separating single patterns with simple commas. You can use ? and asterisk in the patterns inside the list. General Information About Replication Tasks Failed Tasks Replication tasks are running replications. Failed replication tasks undergo a few execution attempts automatically. Reasons for Replication Task Failure Most of the time, two reasons for the replication task failure are possible: network issues; insufficient user","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/configure-replication-rules/","objectID":"532f4df93a6fbcb23bd8df5c974f17d7_0","order":0,"tags":null,"title":"Configure Replication Rules"},{"category":"Configure Replication Rules","content":"rights in the destination registry. Managing Replication Rules To manage replication rules, select one of them by clicking on the circle next to a rule and then perform one of the following actions using buttons in the replication rules overview. Run a Replication Manually The Replicate button will run the selected replication. This is possible for replications with any type of trigger but is the only way to run the replication with the manual trigger type. Disable or Enable a Replication Rule Replication rules can be disabled and enabled again if you only want to pause them for a while. Edit or Delete a Replication Rule You can delete or edit any replication rule using the Actions button. INFO If a replication that you want to edit or delete is running at the moment, you will need to wait until all replication tasks are finished successfully. You can check their status as explained below. Check the Status of Replication Tasks To check the status of all past and present replication tasks, select a replication rule and the list of its executions will appear below. Click on the execution ID and you will be redirected to the overview of the replication tasks for this execution. Replication Logs For each replication task, you can access its logs by clicking on the log icon next to the task in the replication task overview. Stop a Running Replication To stop a running replication, select a replication rule to display the list of executions. Select the one that is still in progress by using the checkbox and press Stop. The same button is also available in the replication task overview.","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/configure-replication-rules/","objectID":"532f4df93a6fbcb23bd8df5c974f17d7_1","order":1,"tags":null,"title":"Configure Replication Rules"},{"category":"Configure Artifacts Replication","content":"Configure Artifacts Replication In Container Registry, artifacts – images and helm charts – can be pushed or pulled between registries in bulks, even between those that are outside of our platform. This process is known as replication. Artifacts are replicated based on a filter: a replication rule. The external registry does not need to be Harbor-based. A replication can be initiated manually but its main advantage is that it can be set to run on a schedule or trigger. Configuring a replication – manual or rule-based automated – includes two major steps: creating a replication endpoint; creating a replication rule. Manual replications still need a rule but must be initiated by hand. Namespace Match With the Destination Registry When you push artifacts to a registry using replication, you do not need to create the namespace – project and repository – in the destination registry before. Exactly as in the case of pushing images to Container Registry from your local machine, the repository will be created in the destination. It also plays no role if the destination is your Container Registry system or an external one. Exception In Quay.io you need to create namespaces in advance before using the endpoint.","date":"2021-08-27T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/replication/","objectID":"3e5bf2321ed976b6648ad5858d7fc30c_0","order":0,"tags":null,"title":"Configure Artifacts Replication"},{"category":"System-Wide Labels","content":"System-Wide Labels Labels are colored tags that can be added to artifacts and are only visible in the Container Registry GUI. They help you to find artifacts quickly since they can be used in some filters and since they are more eye-catchy than tags. They can be added on the project level by project administrators as explained here, but system administrators can also create system-wide labels that can be used for all projects. Add a New System-Wide Label In the navigation, go to Administration; Select Labels; Click + New Label; Give it a name; Assign it some color; Optionally, add a description. Edit or Delete a System-Wide Label To edit or delete an existing system-wide label: Go to the Labels tab in the Administration; Check a tick box next to a label; Press either Edit or Delete. It is possible to delete labels in bulks, but editing only works for one label at a time.","date":"2021-09-03T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/system-wide-labels/","objectID":"ec4a5bb5bca3185e9b32d4cf7b38cc27_0","order":0,"tags":null,"title":"System-Wide Labels"},{"category":"Project Quotas","content":"Project Quotas Individual accounts have 1 GB of storage included. Dedicated accounts have 100 GB. You can set the upper limit for storage usage for every project. Overview of the Storage Usage In the Project Quotas tab of the navigation pane, you can check how much storage is used and by which projects. Default disk space per project shows how much storage every newly created project will be assigned. The bar in the Storage column of the overview shows the percentage of storage use. If it is green, you are below the first half of the storage reserved for this project. The yellow color shows that you are above the first half. The red color shows that the project is close to exhausting its available storage. INFO Default disk space per project is not the total storage use per instance, nor it is the sum of all other project quotas. Changing Project Quotas If you are a system administrator of your Container Registry instance, you will be able to set project quotas during the creation of new projects. For the projects created by other users of your instance, you can adjust quotas afterward or specify a default storage quota. Set Default Storage Quota Per Project In the navigation pane, expand Administration; Find Default disk space per project und click Edit next to it: Choose the volume measure from the dropdown; Type in the amount of storage you need; Set it at -1 for unlimited storage. Change Quotas for Existing Projects In the navigation pane, expand Administration; Click Project Quotas; In the project list, select a checkbox next to the project you want to change the quota for; Click Edit; Select the volume measure from the dropdown; Enter the amount of storage you need; Set it at -1 for unlimited storage. INFO When you change the default project quota and there are some existing projects in the instance, that won\u0026rsquo;t change their storage quotas. General Information About the Storage Size A few notes on when you should expect changes in your storage usage: what makes your storage quotas exhausted quickly and what makes some storage space vacant again. INFO Helm Charts do not influence the storage usage that you see in the project quotas overview. Every Docker image has at least one – usually, numerous – layers. Those layers are \u0026ldquo;stored\u0026rdquo; in blobs: binary files. The track of layers is kept in the image manifest. Shared Blobs and Project Quotas The hierarchy of the image layers was explained in detail here. From this perspective, one can say that some image layers are included in more than one image. But the underlying Harbor technology does not multiply identical layers but rather maps different images to store one unique layer only once and to spare some storage space. Consequently, shared blobs – identical layers – add to the exhaustion of the project storage only once. However, shared blobs stretched across different projects add to the exhaustion of every project. What Happens With the Storage on Image Push On image push, blob files are transmitted first. The manifest is pushed only upon their successful arrival in the registry. Therefore, you may exceed your project quota but you won\u0026rsquo;t be notified about it immediately after you\u0026rsquo;ve started the push. The storage may be exhausted in the process but Container Registry can reject the push only when its manifest arrives and gets rejected due to the quota exceeded by the blobs. Rejection or acceptance happens on \u0026ldquo;First come, first served\u0026rdquo; principle, in the order image manifests arrive. Keep this in mind when pushing a few images in parallel. They may race with each other and the first to be pushed is not necessarily the one to be stored successfully. Images with blobs already existing in the registry will squeeze through faster than those with completely new layers. What Happens With the Storage on Retagging Images Retagging images increases storage exhaustion if you copy an image from one project to another. It does not change project quota exhaustion if you tag the image but leave it in the same project. What Happens With the Storage on Deleting Images Image blobs are not deleted when the image is deleted. Therefore, deleting images won\u0026rsquo;t free any storage space. To remove the blobs completely and to reduce the storage exhaustion in the project, run Garbage Collection as described here.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/project-quotas/","objectID":"82a32351b9f6562064e3f1fe3200e614_0","order":0,"tags":null,"title":"Project Quotas"},{"category":"Vulnerability Scanners","content":"Vulnerability Scanners Docker images may contain vulnerabilities that are dangerous from a cyber security point of view. Multiple providers offer software that allows for scanning images for such vulnerabilities and can be integrated into your Container Registry instance. Every instance comes with the two pre-installed vulnerability scanners: Trivy, the default one, and Clair, both open-source. What Vulnerability Scanners Do Known cyber security vulnerabilities are pieces of the source code that can lead to security breaches. They are listed in the ever-growing database Common Vulnerabilities and Exposures List. Vulnerability scanners go through the underlying source code of a Docker image and check if some parts of it match the known vulnerabilities. Some of the vulnerabilities you can exclude from matching as explained here. As a system admin, you manage all scanners available in the instance. Project admins can select scanners for adding them to their projects as explained here. Without any active intervention from you or from the project admins, all projects inherit the default system scanner as their active scanner.","date":"2021-09-06T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/scanners/","objectID":"522135246f895e36e5b76f77ed14a1a5_0","order":0,"tags":null,"title":"Vulnerability Scanners"},{"category":"Dedicated vs Individual Account","content":"Dedicated vs Individual Account Container Registry offers three types of pricing plans: individual; dedicated; custom/enterprise. The present documentation is mostly written with dedicated accounts in mind. We would like to explain the differences between the three. The table below summarizes critical distinctions. You can also refer to our pricing page. Position Individual Dedicated Custom Tenants 1 tenant Multitenancy Multitenancy Repositores Only private Private and public Private and public Domain c8n.io Subdomain on container-registry.com or custom domain Any Users 1 user Multiple users Mutliple users Storage 1 GB 100 GB Custom Multiregional High Availability Rollouts - - Yes Users, Teams, and RBAC Dedicated and custom enterprise accounts allow you to create user groups that enable fast collaboration on projects. These accounts also fully implement role-based access control allowing you to specify which user can do what. Storage Starting from a dedicated pricing plan, you have more control over the size of your registry storage. Dedicated accounts can obtain additional storage for a monthly fee. Custom enterprise accounts may be provisioned and operated by a selected cloud provider, thus giving their owners full control over their storage sizes. Customization With a dedicated account, you can use your company\u0026rsquo;s subdomain as your instance at Container Registry. For enterprise accounts, we offer a completely customized setup and configuration of the container registry making it a white label product. Additional Enterprise-Only Features With an enterprise account, you can minimize or eliminate any rollout-related downtimes with multi-regional HA rollouts. You also receive enterprise-level customer support. Pricing Individual accounts are completely free of charge. Dedicated accounts provide a free 14-day trial. Prices for custom solutions are calculated individually by our sales team.","date":"2021-08-13T00:00:00Z","description":"description_test","href":"https://container-registry.com/docs/user-manual/dedicated-vs-individual-account/","objectID":"80722198c7394618ee3300790e358830_0","order":0,"tags":null,"title":"Dedicated vs Individual Account"},{"category":"Double-Starred Patterns","content":"Double-Starred Patterns Some Container Registry GUI features allow you to use string matching instead of entering complete names of repositories or tags. That comes in handy if you create separate repositories or tags for every stage in the software development lifecycle and follow a naming convention. In this case, you can select more than one repository or tag by typing in only the pattern once instead of listing all their names. The star or asterisk symbol helps you to compile such patterns. For information about how the definition and usage of Patterns such as ** see https://github.com/bmatcuk/doublestar#patterns. Double Star In Harbor, and, consequently, Container Registry, you can use a double star/asterisk to do the following: specify that you want to select all names by using the ** without any other characters; for instance, to select all repositories in the tag retention rule dialogue window: specify a part of the name that is the same for all items; for instance, to select all repositories that have \u0026ldquo;release\u0026rdquo; in the middle of the name, use: *release* Single Star You can also use only one star/asterisk to specify a string that is either the beginning or the end of a name. Pattern Stands at the Beginning For instance, to select all repositories that start with \u0026ldquo;release\u0026rdquo;, use: release* The star at the end will identify that something is going to come after the pattern. Pattern Stands at the End On the contrary, to select all repositories that end with \u0026ldquo;release\u0026rdquo;, use: *release with the matching pattern at the end and the star/asterisk at the beginning showing that something comes before the pattern. INFO Please keep in mind that the single asterisk will stop pattern matching as soon as it stumbles across a separator /. If you need to match any patterns that have separators, typically, a file or repository path, or a complex artifact tag, include the separators into the pattern: release*/test*/** It will match with: release_2021/test_new/1.0","date":"2021-08-13T00:00:00Z","description":"","href":"https://container-registry.com/docs/user-manual/double-starred-patterns/","objectID":"28de6696e91de29259a1e6822829f9d0_0","order":0,"tags":null,"title":"Double-Starred Patterns"},{"category":"Terminal Deletion of Images","content":"Terminal Deletion of Images: Garbage Collection A simple delete operation is not enough to remove images – to be precise, their blob files – from the system. When you use a delete button on the artifacts overview page inside a repository, it simply deletes the corresponding item from the GUI. It means that simple deletion does not clean up your storage, and you may be hitting your project quotas even if you do not see a lot of artifacts in there. To remove blob files from the system and make some space in your repository, you need to perform an operation known as garbage collection. To access it: Expand Administration in the navigation tab; Click Garbage Collection. Handling Untagged Artifacts When you remove a tag from the image, you hide a layer associated with the tag from the Container Registry GUI. The result of the untagging is equal to deletion and, as in the case of deleting an artifact, it does not remove the blob from the system. Independently of the method you select for garbage collection, make sure to use the slider to specify if you want to include untagged artifacts in the ultimate deletion: Handling Images That Are Still Uploading Since some images may take time to upload, there is a mechanism to prevent them from unintentional removal. Any garbage collection operation (including the dry run) only covers images that were not uploaded within the previous two hours. Garbage Collection Dry Run Garbage collection takes some time and computing capacity. Besides, since some blob files may be shared between artifacts with identical layers, this operation brings some complexity with it. As a result, a running garbage collection may prevent users from working with your repository normally. For this reason and to avoid losing data that you may still need, we recommend performing a test execution first: a dry run. Use the Dry Run button to initiate it and wait for the results to appear; Access Garbage Collecting Log Data Go to the History tab; Find the dry run job that you started; Click on the Log icon; The log data will be displayed in a new browser window; it will list artifact trash candidates and provide a recommendation for whether or not to run a garbage collection. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:145]: Garbage Collection parameters: [delete_untagged: false, dry_run: true, time_window: 2] 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:155]: start to run gc in job. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:411]: artifact trash candidates. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:413]: ID-1 MediaType-application/vnd.docker.container.image.v1+json ManifestMediaType-application/vnd.docker.distribution.manifest.v2+json RepositoryName-library/gc_test Digest-sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 CreationTime-2021-09-08 15:50:13 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:203]: no need to execute GC as there is no non referenced artifacts. 2021-09-08T15:50:18Z [INFO] [/jobservice/job/impl/gc/garbage_collection.go:174]: success to run gc in job. You can also see how much space will be freed after the execution. Run Garbage Collection Use the GC Now button to run a real garbage collection. You can access the History tab to monitor the execution and then look into the log file when the job is finished. Schedule Garbage Collection To schedule a garbage collection: Click on Edit next to Schedule to GC; Select a schedule or type in a CRON-formatted schedule; Hit Save.","date":"2021-09-08T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/terminal-deletion-of-images/","objectID":"5a7f60a6f23d41822520c4e6905e7c11_0","order":0,"tags":null,"title":"Terminal Deletion of Images"},{"category":"Other System Settings","content":"Other System Settings Under Administration -\u0026gt; Configuration -\u0026gt; System Settings you will find a few more system-wide settings. Project Authorship In the dropdown Project Creation, you can specify who can create new projects in your instance. You have a choice between system admins and all other users. Token Expiration You need a token every time you want to login into your private registry from Docker. You can specify how many minutes it is valid. Robot Name Prefix As described here. Robot Token Expiration As explained here. Make Repositories Read-Only If you enable this feature, all users will only be able to pull images. Independent of their permissions, none will be able to push images, tag images, and delete repositories. Deployment Security As explained here. Enable Webhooks As a system admin, you must enable webhooks so that project admins can add webhooks to their projects.","date":"2021-09-09T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/other-system-settings/","objectID":"336b1d60bfb6975c1b39e5ead6678f09_0","order":0,"tags":null,"title":"Other System Settings"},{"category":"Proxy Cache Projects","content":"Proxy Cache Projects Why Use Container Registry as a Proxy Cache Container Registry can be used as a proxy cache for images originally stored on Docker Hub. There are a few reasons why you would avoid pulling images from Docker Hub directly. Docker Rate Limit Docker Hub has a download limit rate which is defined differently for different subscription plans. In our blog post, we explain why you can hit the limits quite quickly and which consequences it may have for your workflows. One of the main reasons why your rate limit may get exhausted is that you often make duplicate (triplicate, etc.) pull requests. A proxy cache prevents duplicate requests. It caches an image that was already pulled and allows you to pull it again from its \u0026ldquo;cache memory\u0026rdquo; without sending the actual pull request to Docker Hub. Nevertheless, you can be sure that you get the latest image version. The proxy accessed the canonical repository and checks if there are newer layers. If yes, then it will pull them, meaning that this request will contribute to the exhaustion of your limit. INFO To explain it in a different way: pulling an image from Docker Hub means sending a GET request, whereas the proxy only sends a HEAD request which does not count into the rate limit exhaustion. Less Bandwidth and no Throttling Sending too many pull requests may eat into your own bandwidth and slow down your network, as well as lead to your being throttled by the server that hosts the original registry. Have Better Control and Enjoy Better Security By using Container Registry, you avoid putting all eggs in one basket: fetching all your images from one place. The opposite situation may make you subject to outages and other failures. Overcome Outages and Air Gaps An outage means that you are left without Internet access. But sometimes your access is restricted permanently. To overcome this, you can use proxy cache: it will access the canonical repository for you and supply you with the images you need. Your own machine remains disconnected from vulnerable public networks. Important Prerequisites Project admins cannot create proxy projects. You have to be a system admin. Apart from this, you will need to create an endpoint as explained here before. This section also provides information about supported third-party solutions. Create a New Proxy Cache Project In the navigation, click on Projects and then on + New Project. In the open dialogue window, use the Proxy Cache slider to make this project a proxy cache. Select the endpoint from the dropdown. To Make Your Proxy Cache Project Work You are just one more step away from using your new proxy cache. Edit your docker pull commands: replace canonical registry and project with the proxy project. Optionally, re-configure your pod manifests in a similar manner. The last two actions are necessary to pull images from the proxy and not directly from the canonical registry. WARNING Remember that proxy cache projects are only for pulling images. By granting users access to a proxy cache project, you automatically grant them access to the canonical registry, and they can pull any images from there. Retention Rules for Proxy-Cached Images Contrary to other solutions, Container Registry won\u0026rsquo;t create any retention rules for your proxy cache projects automatically. It means that not only the latest but all images will be kept. If you want unused images to be deleted from time to time, you can create retention rules as described here.","date":"2021-09-30T00:00:00Z","description":"","href":"https://container-registry.com/docs/administration-manual/proxy-cache-projects/","objectID":"7215fd4df4997a88164f9a8156bf73ba_0","order":0,"tags":null,"title":"Proxy Cache Projects"},{"category":"Container Registry Knowledge Base","content":"","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/","objectID":"4cdd37113783e47641dd300543c94e1b_0","order":0,"tags":null,"title":"Container Registry Knowledge Base"},{"category":"User Guides","content":"Table of Contents The current chapter contains instructions for specific workflows, best practices, tips and tricks, and other useful information. OIDC Configuration for Google Workspaces OIDC configuration for Azure AD\u0026quot;","date":"2021-03-27T12:11:51+02:00","description":"","href":"https://container-registry.com/docs/user-guide/","objectID":"ecf7e357d2a131135219db95eddda49c_0","order":0,"tags":null,"title":"User Guides"},{"category":"ArtifactApi","content":"harbor_client.ArtifactApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description add_label POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels Add label to artifact copy_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts Copy artifact create_tag POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags Create tag delete_artifact DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Delete the specific artifact delete_tag DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name} Delete tag get_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition} Get the addition of the specific artifact get_artifact GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference} Get the specific artifact get_vulnerabilities_addition GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities Get the vulnerabilities addition of the specific artifact list_accessories GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/accessories List accessories list_artifacts GET /projects/{project_name}/repositories/{repository_name}/artifacts List artifacts list_tags GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags List tags remove_label DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels/{label_id} Remove label from artifact add_label Signature add_label(project_name: str, repository_name: str, reference: str, label: Label, x_request_id: Optional[str])-\u0026gt; None Add label to artifact Add label to the specified artiact. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag label = harbor_client.Label() # Label | The label that added to the artifact. Only the ID property is needed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Add label to artifact api_instance.add_label(project_name, repository_name, reference, label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;add_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag label Label The label that added to the artifact. Only the ID property is needed. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] copy_artifact Signature copy_artifact(project_name: str, repository_name: str, _from: str, x_request_id: Optional[str])-\u0026gt; None Copy artifact Copy the artifact specified in the \u0026quot;from\u0026quot; parameter to the repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb _from = \u0026#39;_from_example\u0026#39; # str | The artifact from which the new artifact is copied from, the format should be \\\u0026#34;project/repository:tag\\\u0026#34; or \\\u0026#34;project/repository@digest\\\u0026#34;. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Copy artifact api_instance.copy_artifact(project_name, repository_name, _from, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;copy_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb _from str The artifact from which the new artifact is copied from, the format should be \u0026amp;quot;project/repository:tag\u0026amp;quot; or \u0026amp;quot;project/repository@digest\u0026amp;quot;. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] create_tag Signature create_tag(project_name: str, repository_name: str, reference: str, tag: Tag, x_request_id: Optional[str])-\u0026gt; None Create tag Create a tag for the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag tag = harbor_client.Tag() # Tag | The JSON object of tag. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create tag api_instance.create_tag(project_name, repository_name, reference, tag, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;create_tag: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag tag Tag The JSON object of tag. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_artifact Signature delete_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Delete the specific artifact Delete the artifact specified by the reference under the project and repository. The reference can be digest or tag Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific artifact api_instance.delete_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;delete_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_0","order":0,"tags":null,"title":"ArtifactApi"},{"category":"ArtifactApi","content":"repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_tag Signature delete_tag(project_name: str, repository_name: str, reference: str, tag_name: str, x_request_id: Optional[str])-\u0026gt; None Delete tag Delete the tag of the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag tag_name = \u0026#39;tag_name_example\u0026#39; # str | The name of the tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete tag api_instance.delete_tag(project_name, repository_name, reference, tag_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;delete_tag: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag tag_name str The name of the tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_addition Signature get_addition(project_name: str, repository_name: str, reference: str, addition: str, x_request_id: Optional[str])-\u0026gt; str Get the addition of the specific artifact Get the addition of the artifact specified by the reference under the project and repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag addition = \u0026#39;addition_example\u0026#39; # str | The type of addition. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the addition of the specific artifact api_response = api_instance.get_addition(project_name, repository_name, reference, addition, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_addition: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag addition str The type of addition. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_artifact Signature get_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], x_accept_vulnerabilities: Optional[str], with_tag: Optional[bool], with_label: Optional[bool], with_scan_overview: Optional[bool], with_accessory: Optional[bool], with_signature: Optional[bool], with_immutable_status: Optional[bool])-\u0026gt; Artifact Get the specific artifact Get the artifact specified by the reference under the project and repository. The reference can be digest or tag. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) with_tag = true # bool | Specify whether the tags are inclued inside the returning artifacts (optional) (default to true) with_label = false # bool | Specify whether the labels are inclued inside the returning artifacts (optional) (default to false) with_scan_overview = false # bool | Specify whether the scan overview is inclued inside the returning artifacts (optional) (default to false) with_accessory = false # bool | Specify whether the accessories are included of the returning artifacts. (optional) (default to false) with_signature = false # bool | Specify whether the signature is inclued inside the returning artifacts (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is inclued inside the tags of the returning artifacts. (optional) (default to false) try: # Get the specific artifact api_response = api_instance.get_artifact(project_name, repository_name, reference, x_request_id=x_request_id, page=page, page_size=page_size, x_accept_vulnerabilities=x_accept_vulnerabilities, with_tag=with_tag, with_label=with_label, with_scan_overview=with_scan_overview, with_accessory=with_accessory, with_signature=with_signature, with_immutable_status=with_immutable_status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] page int The page number","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_1","order":1,"tags":null,"title":"ArtifactApi"},{"category":"ArtifactApi","content":"[optional] [default to 1] page_size int The size of per page [optional] [default to 10] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] with_tag bool Specify whether the tags are inclued inside the returning artifacts [optional] [default to true] with_label bool Specify whether the labels are inclued inside the returning artifacts [optional] [default to false] with_scan_overview bool Specify whether the scan overview is inclued inside the returning artifacts [optional] [default to false] with_accessory bool Specify whether the accessories are included of the returning artifacts. [optional] [default to false] with_signature bool Specify whether the signature is inclued inside the returning artifacts [optional] [default to false] with_immutable_status bool Specify whether the immutable status is inclued inside the tags of the returning artifacts. [optional] [default to false] Return type Artifact Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_vulnerabilities_addition Signature get_vulnerabilities_addition(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], x_accept_vulnerabilities: Optional[str])-\u0026gt; str Get the vulnerabilities addition of the specific artifact Get the vulnerabilities addition of the artifact specified by the reference under the project and repository. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) try: # Get the vulnerabilities addition of the specific artifact api_response = api_instance.get_vulnerabilities_addition(project_name, repository_name, reference, x_request_id=x_request_id, x_accept_vulnerabilities=x_accept_vulnerabilities) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;get_vulnerabilities_addition: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_accessories Signature list_accessories(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Accessory] List accessories List accessories of the specific artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List accessories api_response = api_instance.list_accessories(project_name, repository_name, reference, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_accessories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Accessory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_artifacts Signature list_artifacts(project_name: str, repository_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int],","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_2","order":2,"tags":null,"title":"ArtifactApi"},{"category":"ArtifactApi","content":"page_size: Optional[int], x_accept_vulnerabilities: Optional[str], with_tag: Optional[bool], with_label: Optional[bool], with_scan_overview: Optional[bool], with_signature: Optional[bool], with_immutable_status: Optional[bool], with_accessory: Optional[bool])-\u0026gt; list[Artifact] List artifacts List artifacts under the specific project and repository. Except the basic properties, the other supported queries in \u0026quot;q\u0026quot; includes \u0026quot;tags=*\u0026quot; to list only tagged artifacts, \u0026quot;tags=nil\u0026quot; to list only untagged artifacts, \u0026quot;tags=~v\u0026quot; to list artifacts whose tag fuzzy matches \u0026quot;v\u0026quot;, \u0026quot;tags=v\u0026quot; to list artifact whose tag exactly matches \u0026quot;v\u0026quot;, \u0026quot;labels=(id1, id2)\u0026quot; to list artifacts that both labels with id1 and id2 are added to Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) x_accept_vulnerabilities = \u0026#39;application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; # str | 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 \u0026#39;application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0\u0026#39; and \u0026#39;application/vnd.security.vulnerability.report; version=1.1\u0026#39; (optional) (default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0) with_tag = true # bool | Specify whether the tags are included inside the returning artifacts (optional) (default to true) with_label = false # bool | Specify whether the labels are included inside the returning artifacts (optional) (default to false) with_scan_overview = false # bool | Specify whether the scan overview is included inside the returning artifacts (optional) (default to false) with_signature = false # bool | Specify whether the signature is included inside the tags of the returning artifacts. Only works when setting \\\u0026#34;with_tag=true\\\u0026#34; (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is included inside the tags of the returning artifacts. Only works when setting \\\u0026#34;with_immutable_status=true\\\u0026#34; (optional) (default to false) with_accessory = false # bool | Specify whether the accessories are included of the returning artifacts. Only works when setting \\\u0026#34;with_accessory=true\\\u0026#34; (optional) (default to false) try: # List artifacts api_response = api_instance.list_artifacts(project_name, repository_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, x_accept_vulnerabilities=x_accept_vulnerabilities, with_tag=with_tag, with_label=with_label, with_scan_overview=with_scan_overview, with_signature=with_signature, with_immutable_status=with_immutable_status, with_accessory=with_accessory) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_artifacts: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] x_accept_vulnerabilities str 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' [optional] [default to application/vnd.security.vulnerability.report; version=1.1, application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0] with_tag bool Specify whether the tags are included inside the returning artifacts [optional] [default to true] with_label bool Specify whether the labels are included inside the returning artifacts [optional] [default to false] with_scan_overview bool Specify whether the scan overview is included inside the returning artifacts [optional] [default to false] with_signature bool Specify whether the signature is included inside the tags of the returning artifacts. Only works when setting \u0026amp;quot;with_tag=true\u0026amp;quot; [optional] [default to false] with_immutable_status bool Specify whether the immutable status is included inside the tags of the returning artifacts. Only works when setting \u0026amp;quot;with_immutable_status=true\u0026amp;quot; [optional] [default to false] with_accessory bool Specify whether the accessories are included of the returning artifacts. Only works when setting \u0026amp;quot;with_accessory=true\u0026amp;quot; [optional] [default to false] Return type list[Artifact] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_tags Signature list_tags(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], with_signature: Optional[bool], with_immutable_status: Optional[bool])-\u0026gt; list[Tag] List tags List tags of the specific artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_3","order":3,"tags":null,"title":"ArtifactApi"},{"category":"ArtifactApi","content":"the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) with_signature = false # bool | Specify whether the signature is included inside the returning tags (optional) (default to false) with_immutable_status = false # bool | Specify whether the immutable status is included inside the returning tags (optional) (default to false) try: # List tags api_response = api_instance.list_tags(project_name, repository_name, reference, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, with_signature=with_signature, with_immutable_status=with_immutable_status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;list_tags: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] with_signature bool Specify whether the signature is included inside the returning tags [optional] [default to false] with_immutable_status bool Specify whether the immutable status is included inside the returning tags [optional] [default to false] Return type list[Tag] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] remove_label Signature remove_label(project_name: str, repository_name: str, reference: str, label_id: int, x_request_id: Optional[str])-\u0026gt; None Remove label from artifact Remove the label from the specified artiact. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ArtifactApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag label_id = 789 # int | The ID of the label that removed from the artifact. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Remove label from artifact api_instance.remove_label(project_name, repository_name, reference, label_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ArtifactApi-\u0026gt;remove_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag label_id int The ID of the label that removed from the artifact. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/artifactapi/","objectID":"3fe8358fece0b78c6a2d5d0861d0c3c6_4","order":4,"tags":null,"title":"ArtifactApi"},{"category":"AuditlogApi","content":"harbor_client.AuditlogApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description list_audit_logs GET /audit-logs Get recent logs of the projects which the user is a member of list_audit_logs Signature list_audit_logs(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[AuditLog] Get recent logs of the projects which the user is a member of This endpoint let user see the recent operation logs of the projects which he is member of Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.AuditlogApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get recent logs of the projects which the user is a member of api_response = api_instance.list_audit_logs(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling AuditlogApi-\u0026gt;list_audit_logs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[AuditLog] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/auditlogapi/","objectID":"267bdb54c4f0041ddf278883802474a8_0","order":0,"tags":null,"title":"AuditlogApi"},{"category":"ConfigureApi","content":"harbor_client.ConfigureApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_configurations GET /configurations Get system configurations. get_internalconfig GET /internalconfig Get internal configurations. update_configurations PUT /configurations Modify system configurations. get_configurations Signature get_configurations(x_request_id: Optional[str])-\u0026gt; ConfigurationsResponse Get system configurations. This endpoint is for retrieving system configurations that only provides for admin user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get system configurations. api_response = api_instance.get_configurations(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;get_configurations: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ConfigurationsResponse Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_internalconfig Signature get_internalconfig(x_request_id: Optional[str])-\u0026gt; InternalConfigurationsResponse Get internal configurations. This endpoint is for retrieving system configurations that only provides for internal api call. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get internal configurations. api_response = api_instance.get_internalconfig(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;get_internalconfig: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type InternalConfigurationsResponse Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_configurations Signature update_configurations(configurations: Configurations, x_request_id: Optional[str])-\u0026gt; None Modify system configurations. This endpoint is for modifying system configurations that only provides for admin user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ConfigureApi(harbor_client.ApiClient(configuration)) configurations = harbor_client.Configurations() # Configurations | The configuration map can contain a subset of the attributes of the schema, which are to be updated. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Modify system configurations. api_instance.update_configurations(configurations, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ConfigureApi-\u0026gt;update_configurations: %s\\n\u0026#34; % e) Parameters Name Type Description Notes configurations Configurations The configuration map can contain a subset of the attributes of the schema, which are to be updated. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/configureapi/","objectID":"02fab2b818fdf1807d1152605d97248e_0","order":0,"tags":null,"title":"ConfigureApi"},{"category":"GcApi","content":"harbor_client.GcApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_gc_schedule POST /system/gc/schedule Create a gc schedule. get_gc GET /system/gc/{gc_id} Get gc status. get_gc_history GET /system/gc Get gc results. get_gc_log GET /system/gc/{gc_id}/log Get gc job log. get_gc_schedule GET /system/gc/schedule Get gc's schedule. stop_gc PUT /system/gc/{gc_id} Stop the specific GC execution update_gc_schedule PUT /system/gc/schedule Update gc's schedule. create_gc_schedule Signature create_gc_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a gc schedule. This endpoint is for update gc schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates of gc\u0026#39;s schedule. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a gc schedule. api_instance.create_gc_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;create_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates of gc's schedule. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc Signature get_gc(gc_id: int, x_request_id: Optional[str])-\u0026gt; GCHistory Get gc status. This endpoint let user get gc status filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc status. api_response = api_instance.get_gc(gc_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type GCHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc_history Signature get_gc_history(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[GCHistory] Get gc results. This endpoint let user get gc execution history. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get gc results. api_response = api_instance.get_gc_history(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_history: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[GCHistory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_gc_log Signature get_gc_log(gc_id: int, x_request_id: Optional[str])-\u0026gt; str Get gc job log. This endpoint let user get gc job logs filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc job log. api_response = api_instance.get_gc_log(gc_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_gc_schedule Signature get_gc_schedule(x_request_id: Optional[str])-\u0026gt; GCHistory Get gc\u0026rsquo;s schedule. This endpoint is for get schedule of gc job. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get gc\u0026#39;s schedule. api_response = api_instance.get_gc_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;get_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type GCHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_gc Signature stop_gc(gc_id: int, x_request_id: Optional[str])-\u0026gt;","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/gcapi/","objectID":"fd2251680c4fbd99a652d2f0247e42a7_0","order":0,"tags":null,"title":"GcApi"},{"category":"GcApi","content":"None Stop the specific GC execution Stop the GC execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) gc_id = 789 # int | The ID of the gc log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific GC execution api_instance.stop_gc(gc_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;stop_gc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes gc_id int The ID of the gc log x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_gc_schedule Signature update_gc_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update gc\u0026rsquo;s schedule. This endpoint is for update gc schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.GcApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates of gc\u0026#39;s schedule. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update gc\u0026#39;s schedule. api_instance.update_gc_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling GcApi-\u0026gt;update_gc_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates of gc's schedule. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/gcapi/","objectID":"fd2251680c4fbd99a652d2f0247e42a7_1","order":1,"tags":null,"title":"GcApi"},{"category":"HealthApi","content":"harbor_client.HealthApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_health GET /health Check the status of Harbor components get_health Signature get_health(x_request_id: Optional[str])-\u0026gt; OverallHealthStatus Check the status of Harbor components Check the status of Harbor components Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.HealthApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check the status of Harbor components api_response = api_instance.get_health(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling HealthApi-\u0026gt;get_health: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type OverallHealthStatus Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/healthapi/","objectID":"2e72886ac549d93b8535f6f2c7e1240b_0","order":0,"tags":null,"title":"HealthApi"},{"category":"IconApi","content":"harbor_client.IconApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_icon GET /icons/{digest} Get artifact icon get_icon Signature get_icon(digest: str, x_request_id: Optional[str])-\u0026gt; Icon Get artifact icon Get the artifact icon with the specified digest. As the original icon image is resized and encoded before returning, the parameter \u0026quot;digest\u0026quot; in the path doesn\u0026rsquo;t match the hash of the returned content Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.IconApi(harbor_client.ApiClient(configuration)) digest = \u0026#39;digest_example\u0026#39; # str | The digest of the resource x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get artifact icon api_response = api_instance.get_icon(digest, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling IconApi-\u0026gt;get_icon: %s\\n\u0026#34; % e) Parameters Name Type Description Notes digest str The digest of the resource x_request_id str An unique ID for the request [optional] Return type Icon Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/iconapi/","objectID":"f7349b3dbfb37e45362dad2bad5ab448_0","order":0,"tags":null,"title":"IconApi"},{"category":"ImmutableApi","content":"harbor_client.ImmutableApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_immu_rule POST /projects/{project_name_or_id}/immutabletagrules Add an immutable tag rule to current project delete_immu_rule DELETE /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Delete the immutable tag rule. list_immu_rules GET /projects/{project_name_or_id}/immutabletagrules List all immutable tag rules of current project update_immu_rule PUT /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id} Update the immutable tag rule or enable or disable the rule create_immu_rule Signature create_immu_rule(project_name_or_id: str, immutable_rule: ImmutableRule, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Add an immutable tag rule to current project This endpoint add an immutable tag rule to the project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule = harbor_client.ImmutableRule() # ImmutableRule | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Add an immutable tag rule to current project api_instance.create_immu_rule(project_name_or_id, immutable_rule, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;create_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule ImmutableRule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_immu_rule Signature delete_immu_rule(project_name_or_id: str, immutable_rule_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete the immutable tag rule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule_id = 789 # int | The ID of the immutable rule x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete the immutable tag rule. api_instance.delete_immu_rule(project_name_or_id, immutable_rule_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;delete_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule_id int The ID of the immutable rule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_immu_rules Signature list_immu_rules(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[ImmutableRule] List all immutable tag rules of current project This endpoint returns the immutable tag rules of a project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List all immutable tag rules of current project api_response = api_instance.list_immu_rules(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;list_immu_rules: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool The flag to indicate whether the parameter which supports both name and id in the path is the name of the resource. When","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/immutableapi/","objectID":"012043812345d15e1c2f50ba6cc85c16_0","order":0,"tags":null,"title":"ImmutableApi"},{"category":"ImmutableApi","content":"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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[ImmutableRule] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_immu_rule Signature update_immu_rule(project_name_or_id: str, immutable_rule_id: int, immutable_rule: ImmutableRule, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update the immutable tag rule or enable or disable the rule Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ImmutableApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project immutable_rule_id = 789 # int | The ID of the immutable rule immutable_rule = harbor_client.ImmutableRule() # ImmutableRule | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update the immutable tag rule or enable or disable the rule api_instance.update_immu_rule(project_name_or_id, immutable_rule_id, immutable_rule, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ImmutableApi-\u0026gt;update_immu_rule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project immutable_rule_id int The ID of the immutable rule immutable_rule ImmutableRule x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/immutableapi/","objectID":"012043812345d15e1c2f50ba6cc85c16_1","order":1,"tags":null,"title":"ImmutableApi"},{"category":"JobserviceApi","content":"harbor_client.JobserviceApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description action_pending_jobs PUT /jobservice/queues/{job_type} stop and clean, pause, resume pending jobs in the queue get_worker_pools GET /jobservice/pools Get worker pools get_workers GET /jobservice/pools/{pool_id}/workers Get workers list_job_queues GET /jobservice/queues list job queues stop_running_job PUT /jobservice/jobs/{job_id} Stop running job action_pending_jobs Signature action_pending_jobs(job_type: str, action_request: ActionRequest, x_request_id: Optional[str])-\u0026gt; None stop and clean, pause, resume pending jobs in the queue stop and clean, pause, resume pending jobs in the queue Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) job_type = \u0026#39;job_type_example\u0026#39; # str | The type of the job. \u0026#39;all\u0026#39; stands for all job types action_request = harbor_client.ActionRequest() # ActionRequest | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # stop and clean, pause, resume pending jobs in the queue api_instance.action_pending_jobs(job_type, action_request, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;action_pending_jobs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_type str The type of the job. 'all' stands for all job types action_request ActionRequest x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_worker_pools Signature get_worker_pools(x_request_id: Optional[str])-\u0026gt; list[WorkerPool] Get worker pools Get worker pools Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get worker pools api_response = api_instance.get_worker_pools(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;get_worker_pools: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[WorkerPool] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_workers Signature get_workers(pool_id: str, x_request_id: Optional[str])-\u0026gt; list[Worker] Get workers Get workers in current pool Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) pool_id = \u0026#39;pool_id_example\u0026#39; # str | The name of the pool. \u0026#39;all\u0026#39; stands for all pools x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get workers api_response = api_instance.get_workers(pool_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;get_workers: %s\\n\u0026#34; % e) Parameters Name Type Description Notes pool_id str The name of the pool. 'all' stands for all pools x_request_id str An unique ID for the request [optional] Return type list[Worker] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_job_queues Signature list_job_queues(x_request_id: Optional[str])-\u0026gt; list[JobQueue] list job queues list job queue Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # list job queues api_response = api_instance.list_job_queues(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;list_job_queues: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[JobQueue] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_running_job Signature stop_running_job(job_id: str, x_request_id: Optional[str])-\u0026gt; None Stop running job Stop running job Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.JobserviceApi(harbor_client.ApiClient(configuration)) job_id = \u0026#39;job_id_example\u0026#39; # str | The id of the job. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop running job api_instance.stop_running_job(job_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling JobserviceApi-\u0026gt;stop_running_job: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_id str The id of the job. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/jobserviceapi/","objectID":"1aacaeb9e9fccded81066f8ca114371d_0","order":0,"tags":null,"title":"JobserviceApi"},{"category":"LabelApi","content":"harbor_client.LabelApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_label POST /labels Post creates a label delete_label DELETE /labels/{label_id} Delete the label specified by ID. get_label_by_id GET /labels/{label_id} Get the label specified by ID. list_labels GET /labels List labels according to the query strings. update_label PUT /labels/{label_id} Update the label properties. create_label Signature create_label(label: Label, x_request_id: Optional[str])-\u0026gt; None Post creates a label This endpoint let user creates a label. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label = harbor_client.Label() # Label | The json object of label. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Post creates a label api_instance.create_label(label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;create_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label Label The json object of label. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_label Signature delete_label(label_id: int, x_request_id: Optional[str])-\u0026gt; None Delete the label specified by ID. Delete the label specified by ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the label specified by ID. api_instance.delete_label(label_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;delete_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_label_by_id Signature get_label_by_id(label_id: int, x_request_id: Optional[str])-\u0026gt; Label Get the label specified by ID. This endpoint let user get the label by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the label specified by ID. api_response = api_instance.get_label_by_id(label_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;get_label_by_id: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID x_request_id str An unique ID for the request [optional] Return type Label Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_labels Signature list_labels(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str], scope: Optional[str], project_id: Optional[int])-\u0026gt; list[Label] List labels according to the query strings. This endpoint let user list labels by name, scope and project_id Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | The label name. (optional) scope = \u0026#39;scope_example\u0026#39; # str | The label scope. Valid values are g and p. g for global labels and p for project labels. (optional) project_id = 789 # int | Relevant project ID, required when scope is p. (optional) try: # List labels according to the query strings. api_response = api_instance.list_labels(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name, scope=scope, project_id=project_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;list_labels: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str The label name. [optional] scope str The label scope. Valid values are g and p. g for global labels and p for project labels. [optional] project_id int Relevant project ID, required when scope is p. [optional] Return type list[Label] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_label Signature update_label(label_id: int, label: Label, x_request_id: Optional[str])-\u0026gt; None Update the label properties. This endpoint let user update label properties. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/labelapi/","objectID":"c1ce35ef96f7609f9840392a46e09f84_0","order":0,"tags":null,"title":"LabelApi"},{"category":"LabelApi","content":"import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LabelApi(harbor_client.ApiClient(configuration)) label_id = 789 # int | Label ID label = harbor_client.Label() # Label | The updated label json object. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the label properties. api_instance.update_label(label_id, label, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LabelApi-\u0026gt;update_label: %s\\n\u0026#34; % e) Parameters Name Type Description Notes label_id int Label ID label Label The updated label json object. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/labelapi/","objectID":"c1ce35ef96f7609f9840392a46e09f84_1","order":1,"tags":null,"title":"LabelApi"},{"category":"LdapApi","content":"harbor_client.LdapApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description import_ldap_user POST /ldap/users/import Import selected available ldap users. ping_ldap POST /ldap/ping Ping available ldap service. search_ldap_group GET /ldap/groups/search Search available ldap groups. search_ldap_user GET /ldap/users/search Search available ldap users. import_ldap_user Signature import_ldap_user(uid_list: LdapImportUsers, x_request_id: Optional[str])-\u0026gt; None Import selected available ldap users. 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) uid_list = harbor_client.LdapImportUsers() # LdapImportUsers | The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Import selected available ldap users. api_instance.import_ldap_user(uid_list, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;import_ldap_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes uid_list LdapImportUsers The uid listed for importing. This list will check users validity of ldap service based on configuration from the system. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_ldap Signature ping_ldap(x_request_id: Optional[str], ldapconf: Optional[LdapConf])-\u0026gt; LdapPingResult Ping available ldap service. This endpoint ping the available ldap service for test related configuration parameters. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) ldapconf = harbor_client.LdapConf() # LdapConf | ldap configuration. support input ldap service configuration. If it is a empty request, will load current configuration from the system. (optional) try: # Ping available ldap service. api_response = api_instance.ping_ldap(x_request_id=x_request_id, ldapconf=ldapconf) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;ping_ldap: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] ldapconf LdapConf ldap configuration. support input ldap service configuration. If it is a empty request, will load current configuration from the system. [optional] Return type LdapPingResult Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_ldap_group Signature search_ldap_group(x_request_id: Optional[str], groupname: Optional[str], groupdn: Optional[str])-\u0026gt; list[UserGroup] Search available ldap groups. This endpoint searches the available ldap groups based on related configuration parameters. support to search by groupname or groupdn. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) groupname = \u0026#39;groupname_example\u0026#39; # str | Ldap group name (optional) groupdn = \u0026#39;groupdn_example\u0026#39; # str | The LDAP group DN (optional) try: # Search available ldap groups. api_response = api_instance.search_ldap_group(x_request_id=x_request_id, groupname=groupname, groupdn=groupdn) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;search_ldap_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] groupname str Ldap group name [optional] groupdn str The LDAP group DN [optional] Return type list[UserGroup] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_ldap_user Signature search_ldap_user(x_request_id: Optional[str], username: Optional[str])-\u0026gt; list[LdapUser] Search available ldap users. 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.LdapApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) username = \u0026#39;username_example\u0026#39; # str | Registered user ID (optional) try: # Search available ldap users. api_response = api_instance.search_ldap_user(x_request_id=x_request_id, username=username) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling LdapApi-\u0026gt;search_ldap_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] username str Registered user ID [optional] Return type list[LdapUser] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/ldapapi/","objectID":"6e6933296b3244d0b972716d521ced46_0","order":0,"tags":null,"title":"LdapApi"},{"category":"MemberApi","content":"harbor_client.MemberApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_project_member POST /projects/{project_name_or_id}/members Create project member delete_project_member DELETE /projects/{project_name_or_id}/members/{mid} Delete project member get_project_member GET /projects/{project_name_or_id}/members/{mid} Get the project member information list_project_members GET /projects/{project_name_or_id}/members Get all project member information update_project_member PUT /projects/{project_name_or_id}/members/{mid} Update project member create_project_member Signature create_project_member(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], project_member: Optional[ProjectMember])-\u0026gt; None Create project member 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\u0026rsquo;s id, If does not exist, it will SearchAndOnBoard the group. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) project_member = harbor_client.ProjectMember() # ProjectMember | (optional) try: # Create project member api_instance.create_project_member(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, project_member=project_member) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;create_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] project_member ProjectMember [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project_member Signature delete_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete project member Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | Member ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete project member api_instance.delete_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;delete_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int Member ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_member Signature get_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectMemberEntity Get the project member information Get the project member information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | The member ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the project member information api_response = api_instance.get_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;get_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int The member ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectMemberEntity Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_project_members Signature list_project_members(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], entityname: Optional[str])-\u0026gt; list[ProjectMemberEntity] Get all project member information Get all project member information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/memberapi/","objectID":"e768ad0036eb29bf3a703a3f16a3b72e_0","order":0,"tags":null,"title":"MemberApi"},{"category":"MemberApi","content":"= \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) entityname = \u0026#39;entityname_example\u0026#39; # str | The entity name to search. (optional) try: # Get all project member information api_response = api_instance.list_project_members(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, entityname=entityname) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;list_project_members: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] entityname str The entity name to search. [optional] Return type list[ProjectMemberEntity] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project_member Signature update_project_member(project_name_or_id: str, mid: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool], role: Optional[RoleRequest])-\u0026gt; None Update project member Update project member relationship Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.MemberApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project mid = 789 # int | Member ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) role = harbor_client.RoleRequest() # RoleRequest | (optional) try: # Update project member api_instance.update_project_member(project_name_or_id, mid, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, role=role) except ApiException as e: print(\u0026#34;Exception when calling MemberApi-\u0026gt;update_project_member: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project mid int Member ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] role RoleRequest [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/memberapi/","objectID":"e768ad0036eb29bf3a703a3f16a3b72e_1","order":1,"tags":null,"title":"MemberApi"},{"category":"OidcApi","content":"harbor_client.OidcApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description ping_oidc POST /system/oidc/ping Test the OIDC endpoint. ping_oidc Signature ping_oidc(endpoint: Endpoint, x_request_id: Optional[str])-\u0026gt; None Test the OIDC endpoint. Test the OIDC endpoint, the setting of the endpoint is provided in the request. This API can only be called by system admin. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.OidcApi(harbor_client.ApiClient(configuration)) endpoint = harbor_client.Endpoint() # Endpoint | Request body for OIDC endpoint to be tested. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Test the OIDC endpoint. api_instance.ping_oidc(endpoint, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling OidcApi-\u0026gt;ping_oidc: %s\\n\u0026#34; % e) Parameters Name Type Description Notes endpoint Endpoint Request body for OIDC endpoint to be tested. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/oidcapi/","objectID":"2c952976088fb644f7f8cf4935aadcd1_0","order":0,"tags":null,"title":"OidcApi"},{"category":"PingApi","content":"harbor_client.PingApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_ping GET /ping Ping Harbor to check if it's alive. get_ping Signature get_ping(x_request_id: Optional[str])-\u0026gt; str Ping Harbor to check if it\u0026rsquo;s alive. This API simply replies a pong to indicate the process to handle API is up, disregarding the health status of dependent components. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PingApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Ping Harbor to check if it\u0026#39;s alive. api_response = api_instance.get_ping(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PingApi-\u0026gt;get_ping: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/pingapi/","objectID":"766d43a9667acb792e795b8ad8e4a297_0","order":0,"tags":null,"title":"PingApi"},{"category":"PreheatApi","content":"harbor_client.PreheatApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_instance POST /p2p/preheat/instances Create p2p provider instances create_policy POST /projects/{project_name}/preheat/policies Create a preheat policy under a project delete_instance DELETE /p2p/preheat/instances/{preheat_instance_name} Delete the specified P2P provider instance delete_policy DELETE /projects/{project_name}/preheat/policies/{preheat_policy_name} Delete a preheat policy get_execution GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Get a execution detail by id get_instance GET /p2p/preheat/instances/{preheat_instance_name} Get a P2P provider instance get_policy GET /projects/{project_name}/preheat/policies/{preheat_policy_name} Get a preheat policy get_preheat_log GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs Get the log text stream of the specified task for the given execution list_executions GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions List executions for the given policy list_instances GET /p2p/preheat/instances List P2P provider instances list_policies GET /projects/{project_name}/preheat/policies List preheat policies list_providers GET /p2p/preheat/providers List P2P providers list_providers_under_project GET /projects/{project_name}/preheat/providers Get all providers at project level list_tasks GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks List all the related tasks for the given execution manual_preheat POST /projects/{project_name}/preheat/policies/{preheat_policy_name} Manual preheat ping_instances POST /p2p/preheat/instances/ping Ping status of a instance. stop_execution PATCH /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id} Stop a execution update_instance PUT /p2p/preheat/instances/{preheat_instance_name} Update the specified P2P provider instance update_policy PUT /projects/{project_name}/preheat/policies/{preheat_policy_name} Update preheat policy create_instance Signature create_instance(instance: Instance, x_request_id: Optional[str])-\u0026gt; None Create p2p provider instances Create p2p provider instances Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) instance = harbor_client.Instance() # Instance | The JSON object of instance. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create p2p provider instances api_instance.create_instance(instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;create_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes instance Instance The JSON object of instance. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] create_policy Signature create_policy(project_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Create a preheat policy under a project Create a preheat policy under a project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a preheat policy under a project api_instance.create_policy(project_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;create_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_instance Signature delete_instance(preheat_instance_name: str, x_request_id: Optional[str])-\u0026gt; None Delete the specified P2P provider instance Delete the specified P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specified P2P provider instance api_instance.delete_instance(preheat_instance_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;delete_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_policy Signature delete_policy(project_name: str, preheat_policy_name: str, x_request_id: Optional[str])-\u0026gt; None Delete a preheat policy Delete a preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a preheat policy api_instance.delete_policy(project_name, preheat_policy_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;delete_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_execution Signature get_execution(project_name: str, preheat_policy_name: str, execution_id: int, x_request_id: Optional[str])-\u0026gt; Execution Get a execution detail by id Get a execution detail by id Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a execution detail by id api_response = api_instance.get_execution(project_name, preheat_policy_name, execution_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID x_request_id str An unique ID for the request [optional] Return type Execution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_instance Signature get_instance(preheat_instance_name: str, x_request_id: Optional[str])-\u0026gt; Instance Get a P2P provider instance Get a P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; #","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_0","order":0,"tags":null,"title":"PreheatApi"},{"category":"PreheatApi","content":"create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a P2P provider instance api_response = api_instance.get_instance(preheat_instance_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name x_request_id str An unique ID for the request [optional] Return type Instance Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_policy Signature get_policy(project_name: str, preheat_policy_name: str, x_request_id: Optional[str])-\u0026gt; PreheatPolicy Get a preheat policy Get a preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a preheat policy api_response = api_instance.get_policy(project_name, preheat_policy_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] Return type PreheatPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_preheat_log Signature get_preheat_log(project_name: str, preheat_policy_name: str, execution_id: int, task_id: int, x_request_id: Optional[str])-\u0026gt; str Get the log text stream of the specified task for the given execution Get the log text stream of the specified task for the given execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID task_id = 56 # int | Task ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log text stream of the specified task for the given execution api_response = api_instance.get_preheat_log(project_name, preheat_policy_name, execution_id, task_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;get_preheat_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID task_id int Task ID x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] list_executions Signature list_executions(project_name: str, preheat_policy_name: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Execution] List executions for the given policy List executions for the given policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List executions for the given policy api_response = api_instance.list_executions(project_name, preheat_policy_name, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Execution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_instances Signature list_instances(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Instance] List P2P provider instances List P2P provider instances Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_1","order":1,"tags":null,"title":"PreheatApi"},{"category":"PreheatApi","content":"match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List P2P provider instances api_response = api_instance.list_instances(x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_instances: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Instance] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_policies Signature list_policies(project_name: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[PreheatPolicy] List preheat policies List preheat policies Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List preheat policies api_response = api_instance.list_policies(project_name, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_policies: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[PreheatPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_providers Signature list_providers(x_request_id: Optional[str])-\u0026gt; list[Metadata] List P2P providers List P2P providers Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List P2P providers api_response = api_instance.list_providers(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_providers: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[Metadata] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_providers_under_project Signature list_providers_under_project(project_name: str, x_request_id: Optional[str])-\u0026gt; list[ProviderUnderProject] Get all providers at project level Get all providers at project level Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get all providers at project level api_response = api_instance.list_providers_under_project(project_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_providers_under_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] Return type list[ProviderUnderProject] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_tasks Signature list_tasks(project_name: str, preheat_policy_name: str, execution_id: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Task] List all the related tasks for the given execution List all the related tasks for the given execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name =","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_2","order":2,"tags":null,"title":"PreheatApi"},{"category":"PreheatApi","content":"\u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # List all the related tasks for the given execution api_response = api_instance.list_tasks(project_name, preheat_policy_name, execution_id, x_request_id=x_request_id, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;list_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Task] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] manual_preheat Signature manual_preheat(project_name: str, preheat_policy_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Manual preheat Manual preheat Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Manual preheat api_instance.manual_preheat(project_name, preheat_policy_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;manual_preheat: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_instances Signature ping_instances(instance: Instance, x_request_id: Optional[str])-\u0026gt; None Ping status of a instance. This endpoint checks status of a instance, the instance can be given by ID or Endpoint URL (together with credential) Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) instance = harbor_client.Instance() # Instance | The JSON object of instance. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Ping status of a instance. api_instance.ping_instances(instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;ping_instances: %s\\n\u0026#34; % e) Parameters Name Type Description Notes instance Instance The JSON object of instance. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_execution Signature stop_execution(project_name: str, preheat_policy_name: str, execution_id: int, execution: Execution, x_request_id: Optional[str])-\u0026gt; None Stop a execution Stop a execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name execution_id = 56 # int | Execution ID execution = harbor_client.Execution() # Execution | The data of execution x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop a execution api_instance.stop_execution(project_name, preheat_policy_name, execution_id, execution, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;stop_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name execution_id int Execution ID execution Execution The data of execution x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_instance Signature update_instance(preheat_instance_name: str, instance: Instance, x_request_id: Optional[str])-\u0026gt; None Update the specified P2P provider instance Update the specified P2P provider instance Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) preheat_instance_name = \u0026#39;preheat_instance_name_example\u0026#39; # str | Instance Name instance = harbor_client.Instance() # Instance | The instance to update x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the specified P2P provider instance api_instance.update_instance(preheat_instance_name, instance, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;update_instance: %s\\n\u0026#34; % e) Parameters Name Type Description Notes preheat_instance_name str Instance Name instance Instance The instance to update x_request_id str","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_3","order":3,"tags":null,"title":"PreheatApi"},{"category":"PreheatApi","content":"An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_policy Signature update_policy(project_name: str, preheat_policy_name: str, policy: PreheatPolicy, x_request_id: Optional[str])-\u0026gt; None Update preheat policy Update preheat policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PreheatApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project preheat_policy_name = \u0026#39;preheat_policy_name_example\u0026#39; # str | Preheat Policy Name policy = harbor_client.PreheatPolicy() # PreheatPolicy | The policy schema info x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update preheat policy api_instance.update_policy(project_name, preheat_policy_name, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PreheatApi-\u0026gt;update_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project preheat_policy_name str Preheat Policy Name policy PreheatPolicy The policy schema info x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/preheatapi/","objectID":"6df6118d1c0668b021c6be492f0ee4c3_4","order":4,"tags":null,"title":"PreheatApi"},{"category":"ProjectApi","content":"harbor_client.ProjectApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_project POST /projects Create a new project. delete_project DELETE /projects/{project_name_or_id} Delete project by projectID get_logs GET /projects/{project_name}/logs Get recent logs of the projects get_project GET /projects/{project_name_or_id} Return specific project detail information get_project_deletable GET /projects/{project_name_or_id}/_deletable Get the deletable status of the project get_project_summary GET /projects/{project_name_or_id}/summary Get summary of the project. get_scanner_of_project GET /projects/{project_name_or_id}/scanner Get project level scanner head_project HEAD /projects Check if the project name user provided already exists. list_projects GET /projects List projects list_scanner_candidates_of_project GET /projects/{project_name_or_id}/scanner/candidates Get scanner registration candidates for configurating project level scanner set_scanner_of_project PUT /projects/{project_name_or_id}/scanner Configure scanner for the specified project update_project PUT /projects/{project_name_or_id} Update properties for a selected project. create_project Signature create_project(project: ProjectReq, x_request_id: Optional[str], x_resource_name_in_location: Optional[bool])-\u0026gt; None Create a new project. This endpoint is for user to create a new project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project = harbor_client.ProjectReq() # ProjectReq | New created project. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_resource_name_in_location = false # bool | 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. (optional) (default to false) try: # Create a new project. api_instance.create_project(project, x_request_id=x_request_id, x_resource_name_in_location=x_resource_name_in_location) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;create_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project ProjectReq New created project. x_request_id str An unique ID for the request [optional] x_resource_name_in_location bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project Signature delete_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete project by projectID This endpoint is aimed to delete project by project ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete project by projectID api_instance.delete_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;delete_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_logs Signature get_logs(project_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[AuditLog] Get recent logs of the projects Get recent logs of the projects Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get recent logs of the projects api_response = api_instance.get_logs(project_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_logs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[AuditLog] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_0","order":0,"tags":null,"title":"ProjectApi"},{"category":"ProjectApi","content":"get_project Signature get_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; Project Return specific project detail information This endpoint returns specific project information by project ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Return specific project detail information api_response = api_instance.get_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type Project Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_deletable Signature get_project_deletable(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectDeletable Get the deletable status of the project Get the deletable status of the project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the deletable status of the project api_response = api_instance.get_project_deletable(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project_deletable: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectDeletable Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_summary Signature get_project_summary(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ProjectSummary Get summary of the project. Get summary of the project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get summary of the project. api_response = api_instance.get_project_summary(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_project_summary: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ProjectSummary Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner_of_project Signature get_scanner_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; ScannerRegistration Get project level scanner 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project level scanner api_response = api_instance.get_scanner_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;get_scanner_of_project: %s\\n\u0026#34; % e) Parameters","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_1","order":1,"tags":null,"title":"ProjectApi"},{"category":"ProjectApi","content":"Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] head_project Signature head_project(project_name: str, x_request_id: Optional[str])-\u0026gt; None Check if the project name user provided already exists. This endpoint is used to check if the project name provided already exist. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | Project name for checking exists. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check if the project name user provided already exists. api_instance.head_project(project_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;head_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str Project name for checking exists. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_projects Signature list_projects(x_request_id: Optional[str], q: Optional[str], page: Optional[int], page_size: Optional[int], sort: Optional[str], name: Optional[str], public: Optional[bool], owner: Optional[str], with_detail: Optional[bool])-\u0026gt; list[Project] List projects This endpoint returns projects created by Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) name = \u0026#39;name_example\u0026#39; # str | The name of project. (optional) public = true # bool | The project is public or private. (optional) owner = \u0026#39;owner_example\u0026#39; # str | The name of project owner. (optional) with_detail = true # bool | Bool value indicating whether return detailed information of the project (optional) (default to true) try: # List projects api_response = api_instance.list_projects(x_request_id=x_request_id, q=q, page=page, page_size=page_size, sort=sort, name=name, public=public, owner=owner, with_detail=with_detail) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;list_projects: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] name str The name of project. [optional] public bool The project is public or private. [optional] owner str The name of project owner. [optional] with_detail bool Bool value indicating whether return detailed information of the project [optional] [default to true] Return type list[Project] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_scanner_candidates_of_project Signature list_scanner_candidates_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScannerRegistration] Get scanner registration candidates for configurating project level scanner Retrieve the system configured scanner registrations as candidates of setting project level scanner. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_2","order":2,"tags":null,"title":"ProjectApi"},{"category":"ProjectApi","content":"order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get scanner registration candidates for configurating project level scanner api_response = api_instance.list_scanner_candidates_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;list_scanner_candidates_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScannerRegistration] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_scanner_of_project Signature set_scanner_of_project(project_name_or_id: str, payload: ProjectScanner, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Configure scanner for the specified project Set one of the system configured scanner registration as the indepndent scanner of the specified project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project payload = harbor_client.ProjectScanner() # ProjectScanner | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Configure scanner for the specified project api_instance.set_scanner_of_project(project_name_or_id, payload, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;set_scanner_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project payload ProjectScanner x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project Signature update_project(project_name_or_id: str, project: ProjectReq, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update properties for a selected project. This endpoint is aimed to update the properties of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project project = harbor_client.ProjectReq() # ProjectReq | Updates of project. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update properties for a selected project. api_instance.update_project(project_name_or_id, project, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectApi-\u0026gt;update_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project project ProjectReq Updates of project. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectapi/","objectID":"1e91d8a54cc499930eea2f3d6c32109a_3","order":3,"tags":null,"title":"ProjectApi"},{"category":"ProjectMetadataApi","content":"harbor_client.ProjectMetadataApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description add_project_metadatas POST /projects/{project_name_or_id}/metadatas/ Add metadata for the specific project delete_project_metadata DELETE /projects/{project_name_or_id}/metadatas/{meta_name} Delete the specific metadata for the specific project get_project_metadata GET /projects/{project_name_or_id}/metadatas/{meta_name} Get the specific metadata of the specific project list_project_metadatas GET /projects/{project_name_or_id}/metadatas/ Get the metadata of the specific project update_project_metadata PUT /projects/{project_name_or_id}/metadatas/{meta_name} Update the specific metadata for the specific project add_project_metadatas Signature add_project_metadatas(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], metadata: Optional[object])-\u0026gt; None Add metadata for the specific project Add metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) metadata = NULL # object | (optional) try: # Add metadata for the specific project api_instance.add_project_metadatas(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, metadata=metadata) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;add_project_metadatas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] metadata object [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_project_metadata Signature delete_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete the specific metadata for the specific project Delete the specific metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete the specific metadata for the specific project api_instance.delete_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;delete_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_project_metadata Signature get_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; dict(str, str) Get the specific metadata of the specific project Get the specific metadata of the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the specific metadata of the specific project api_response = api_instance.get_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;get_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type dict(str, str) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_project_metadatas Signature list_project_metadatas(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; dict(str, str) Get the metadata of the specific project Get the metadata of the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectmetadataapi/","objectID":"573de4cfb0d9a3947e849e4ad60859bc_0","order":0,"tags":null,"title":"ProjectMetadataApi"},{"category":"ProjectMetadataApi","content":"= harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get the metadata of the specific project api_response = api_instance.list_project_metadatas(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;list_project_metadatas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type dict(str, str) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_project_metadata Signature update_project_metadata(project_name_or_id: str, meta_name: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], metadata: Optional[object])-\u0026gt; None Update the specific metadata for the specific project Update the specific metadata for the specific project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ProjectMetadataApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project meta_name = \u0026#39;meta_name_example\u0026#39; # str | The name of metadata. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) metadata = NULL # object | (optional) try: # Update the specific metadata for the specific project api_instance.update_project_metadata(project_name_or_id, meta_name, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, metadata=metadata) except ApiException as e: print(\u0026#34;Exception when calling ProjectMetadataApi-\u0026gt;update_project_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project meta_name str The name of metadata. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] metadata object [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/projectmetadataapi/","objectID":"573de4cfb0d9a3947e849e4ad60859bc_1","order":1,"tags":null,"title":"ProjectMetadataApi"},{"category":"PurgeApi","content":"harbor_client.PurgeApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_purge_schedule POST /system/purgeaudit/schedule Create a purge job schedule. get_purge_history GET /system/purgeaudit Get purge job results. get_purge_job GET /system/purgeaudit/{purge_id} Get purge job status. get_purge_job_log GET /system/purgeaudit/{purge_id}/log Get purge job log. get_purge_schedule GET /system/purgeaudit/schedule Get purge's schedule. stop_purge PUT /system/purgeaudit/{purge_id} Stop the specific purge audit log execution update_purge_schedule PUT /system/purgeaudit/schedule Update purge job's schedule. create_purge_schedule Signature create_purge_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a purge job schedule. This endpoint is for update purge job schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | The purge job\u0026#39;s schedule, it is a json object. | The sample format is | {\\\u0026#34;parameters\\\u0026#34;:{\\\u0026#34;audit_retention_hour\\\u0026#34;:168,\\\u0026#34;dry_run\\\u0026#34;:true, \\\u0026#34;include_operations\\\u0026#34;:\\\u0026#34;create,delete,pull\\\u0026#34;},\\\u0026#34;schedule\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:\\\u0026#34;Hourly\\\u0026#34;,\\\u0026#34;cron\\\u0026#34;:\\\u0026#34;0 0 * * * *\\\u0026#34;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a purge job schedule. api_instance.create_purge_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;create_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule The purge job's schedule, it is a json object. | The sample format is | {\u0026amp;quot;parameters\u0026amp;quot;:{\u0026amp;quot;audit_retention_hour\u0026amp;quot;:168,\u0026amp;quot;dry_run\u0026amp;quot;:true, \u0026amp;quot;include_operations\u0026amp;quot;:\u0026amp;quot;create,delete,pull\u0026amp;quot;},\u0026amp;quot;schedule\u0026amp;quot;:{\u0026amp;quot;type\u0026amp;quot;:\u0026amp;quot;Hourly\u0026amp;quot;,\u0026amp;quot;cron\u0026amp;quot;:\u0026amp;quot;0 0 * * * *\u0026amp;quot;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_history Signature get_purge_history(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ExecHistory] Get purge job results. get purge job execution history. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get purge job results. api_response = api_instance.get_purge_history(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_history: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ExecHistory] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_job Signature get_purge_job(purge_id: int, x_request_id: Optional[str])-\u0026gt; ExecHistory Get purge job status. This endpoint let user get purge job status filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge job status. api_response = api_instance.get_purge_job(purge_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_job: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type ExecHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_purge_job_log Signature get_purge_job_log(purge_id: int, x_request_id: Optional[str])-\u0026gt; str Get purge job log. This endpoint let user get purge job logs filtered by specific ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge job log. api_response = api_instance.get_purge_job_log(purge_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_job_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_purge_schedule Signature get_purge_schedule(x_request_id: Optional[str])-\u0026gt; ExecHistory Get purge\u0026rsquo;s schedule. This endpoint is for get schedule of purge job. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/purgeapi/","objectID":"4e5ab621c38261a2f1e72a77230837ee_0","order":0,"tags":null,"title":"PurgeApi"},{"category":"PurgeApi","content":"= harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get purge\u0026#39;s schedule. api_response = api_instance.get_purge_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;get_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ExecHistory Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_purge Signature stop_purge(purge_id: int, x_request_id: Optional[str])-\u0026gt; None Stop the specific purge audit log execution Stop the purge audit log execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) purge_id = 789 # int | The ID of the purge log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific purge audit log execution api_instance.stop_purge(purge_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;stop_purge: %s\\n\u0026#34; % e) Parameters Name Type Description Notes purge_id int The ID of the purge log x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_purge_schedule Signature update_purge_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update purge job\u0026rsquo;s schedule. This endpoint is for update purge job schedule. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.PurgeApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | The purge job\u0026#39;s schedule, it is a json object. | The sample format is | {\\\u0026#34;parameters\\\u0026#34;:{\\\u0026#34;audit_retention_hour\\\u0026#34;:168,\\\u0026#34;dry_run\\\u0026#34;:true, \\\u0026#34;include_operations\\\u0026#34;:\\\u0026#34;create,delete,pull\\\u0026#34;},\\\u0026#34;schedule\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:\\\u0026#34;Hourly\\\u0026#34;,\\\u0026#34;cron\\\u0026#34;:\\\u0026#34;0 0 * * * *\\\u0026#34;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update purge job\u0026#39;s schedule. api_instance.update_purge_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling PurgeApi-\u0026gt;update_purge_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule The purge job's schedule, it is a json object. | The sample format is | {\u0026amp;quot;parameters\u0026amp;quot;:{\u0026amp;quot;audit_retention_hour\u0026amp;quot;:168,\u0026amp;quot;dry_run\u0026amp;quot;:true, \u0026amp;quot;include_operations\u0026amp;quot;:\u0026amp;quot;create,delete,pull\u0026amp;quot;},\u0026amp;quot;schedule\u0026amp;quot;:{\u0026amp;quot;type\u0026amp;quot;:\u0026amp;quot;Hourly\u0026amp;quot;,\u0026amp;quot;cron\u0026amp;quot;:\u0026amp;quot;0 0 * * * *\u0026amp;quot;}} | the include_operation should be a comma separated string, e.g. create,delete,pull, if it is empty, no operation will be purged. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/purgeapi/","objectID":"4e5ab621c38261a2f1e72a77230837ee_1","order":1,"tags":null,"title":"PurgeApi"},{"category":"QuotaApi","content":"harbor_client.QuotaApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_quota GET /quotas/{id} Get the specified quota list_quotas GET /quotas List quotas update_quota PUT /quotas/{id} Update the specified quota get_quota Signature get_quota(id: int, x_request_id: Optional[str])-\u0026gt; Quota Get the specified quota Get the specified quota Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) id = 56 # int | Quota ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specified quota api_response = api_instance.get_quota(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;get_quota: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Quota ID x_request_id str An unique ID for the request [optional] Return type Quota Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_quotas Signature list_quotas(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], reference: Optional[str], reference_id: Optional[str], sort: Optional[str])-\u0026gt; list[Quota] List quotas List quotas Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) reference = \u0026#39;reference_example\u0026#39; # str | The reference type of quota. (optional) reference_id = \u0026#39;reference_id_example\u0026#39; # str | The reference id of quota. (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort method, valid values include: \u0026#39;hard.resource_name\u0026#39;, \u0026#39;-hard.resource_name\u0026#39;, \u0026#39;used.resource_name\u0026#39;, \u0026#39;-used.resource_name\u0026#39;. Here \u0026#39;-\u0026#39; stands for descending order, resource_name should be the real resource name of the quota. (optional) try: # List quotas api_response = api_instance.list_quotas(x_request_id=x_request_id, page=page, page_size=page_size, reference=reference, reference_id=reference_id, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;list_quotas: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] reference str The reference type of quota. [optional] reference_id str The reference id of quota. [optional] sort str 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. [optional] Return type list[Quota] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_quota Signature update_quota(id: int, hard: QuotaUpdateReq, x_request_id: Optional[str])-\u0026gt; None Update the specified quota Update hard limits of the specified quota Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.QuotaApi(harbor_client.ApiClient(configuration)) id = 56 # int | Quota ID hard = harbor_client.QuotaUpdateReq() # QuotaUpdateReq | The new hard limits for the quota x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the specified quota api_instance.update_quota(id, hard, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling QuotaApi-\u0026gt;update_quota: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Quota ID hard QuotaUpdateReq The new hard limits for the quota x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/quotaapi/","objectID":"4ed0496ef64c48f0e13cc34d07a7071f_0","order":0,"tags":null,"title":"QuotaApi"},{"category":"RegistryApi","content":"harbor_client.RegistryApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_registry POST /registries Create a registry delete_registry DELETE /registries/{id} Delete the specific registry get_registry GET /registries/{id} Get the specific registry get_registry_info GET /registries/{id}/info Get the registry info list_registries GET /registries List the registries list_registry_provider_infos GET /replication/adapterinfos List all registered registry provider information list_registry_provider_types GET /replication/adapters List registry adapters ping_registry POST /registries/ping Check status of a registry update_registry PUT /registries/{id} Update the registry create_registry Signature create_registry(registry: Registry, x_request_id: Optional[str])-\u0026gt; None Create a registry Create a registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) registry = harbor_client.Registry() # Registry | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a registry api_instance.create_registry(registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;create_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registry Registry The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_registry Signature delete_registry(id: int, x_request_id: Optional[str])-\u0026gt; None Delete the specific registry Delete the specific registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific registry api_instance.delete_registry(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;delete_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_registry Signature get_registry(id: int, x_request_id: Optional[str])-\u0026gt; Registry Get the specific registry Get the specific registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific registry api_response = api_instance.get_registry(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;get_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type Registry Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_registry_info Signature get_registry_info(id: int, x_request_id: Optional[str])-\u0026gt; RegistryInfo Get the registry info Get the registry info Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | Registry ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the registry info api_response = api_instance.get_registry_info(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;get_registry_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Registry ID x_request_id str An unique ID for the request [optional] Return type RegistryInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registries Signature list_registries(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str])-\u0026gt; list[Registry] List the registries List the registries Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | Deprecated, use `q` instead. (optional) try: # List the registries api_response = api_instance.list_registries(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registries: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str Deprecated, use `q` instead. [optional] Return type list[Registry] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registry_provider_infos","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/registryapi/","objectID":"f223008cab6fdffb0c56e8bd7095a0d3_0","order":0,"tags":null,"title":"RegistryApi"},{"category":"RegistryApi","content":"Signature list_registry_provider_infos(x_request_id: Optional[str])-\u0026gt; dict(str, RegistryProviderInfo) List all registered registry provider information List all registered registry provider information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List all registered registry provider information api_response = api_instance.list_registry_provider_infos(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registry_provider_infos: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type dict(str, RegistryProviderInfo) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_registry_provider_types Signature list_registry_provider_types(x_request_id: Optional[str])-\u0026gt; list[str] List registry adapters List registry adapters Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # List registry adapters api_response = api_instance.list_registry_provider_types(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;list_registry_provider_types: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type list[str] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_registry Signature ping_registry(registry: RegistryPing, x_request_id: Optional[str])-\u0026gt; None Check status of a registry Check status of a registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) registry = harbor_client.RegistryPing() # RegistryPing | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Check status of a registry api_instance.ping_registry(registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;ping_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registry RegistryPing The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_registry Signature update_registry(id: int, registry: RegistryUpdate, x_request_id: Optional[str])-\u0026gt; None Update the registry Update the registry Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RegistryApi(harbor_client.ApiClient(configuration)) id = 789 # int | The registry ID registry = harbor_client.RegistryUpdate() # RegistryUpdate | The registry x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the registry api_instance.update_registry(id, registry, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RegistryApi-\u0026gt;update_registry: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The registry ID registry RegistryUpdate The registry x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/registryapi/","objectID":"f223008cab6fdffb0c56e8bd7095a0d3_1","order":1,"tags":null,"title":"RegistryApi"},{"category":"ReplicationApi","content":"harbor_client.ReplicationApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_replication_policy POST /replication/policies Create a replication policy delete_replication_policy DELETE /replication/policies/{id} Delete the specific replication policy get_replication_execution GET /replication/executions/{id} Get the specific replication execution get_replication_log GET /replication/executions/{id}/tasks/{task_id}/log Get the log of the specific replication task get_replication_policy GET /replication/policies/{id} Get the specific replication policy list_replication_executions GET /replication/executions List replication executions list_replication_policies GET /replication/policies List replication policies list_replication_tasks GET /replication/executions/{id}/tasks List replication tasks for a specific execution start_replication POST /replication/executions Start one replication execution stop_replication PUT /replication/executions/{id} Stop the specific replication execution update_replication_policy PUT /replication/policies/{id} Update the replication policy create_replication_policy Signature create_replication_policy(policy: ReplicationPolicy, x_request_id: Optional[str])-\u0026gt; None Create a replication policy Create a replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) policy = harbor_client.ReplicationPolicy() # ReplicationPolicy | The replication policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a replication policy api_instance.create_replication_policy(policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;create_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes policy ReplicationPolicy The replication policy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_replication_policy Signature delete_replication_policy(id: int, x_request_id: Optional[str])-\u0026gt; None Delete the specific replication policy Delete the specific replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | Replication policy ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete the specific replication policy api_instance.delete_replication_policy(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;delete_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Replication policy ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_replication_execution Signature get_replication_execution(id: int, x_request_id: Optional[str])-\u0026gt; ReplicationExecution Get the specific replication execution Get the replication execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific replication execution api_response = api_instance.get_replication_execution(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution. x_request_id str An unique ID for the request [optional] Return type ReplicationExecution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_replication_log Signature get_replication_log(id: int, task_id: int, x_request_id: Optional[str])-\u0026gt; str Get the log of the specific replication task Get the log of the specific replication task Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution that the tasks belongs to. task_id = 789 # int | The ID of the task. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log of the specific replication task api_response = api_instance.get_replication_log(id, task_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution that the tasks belongs to. task_id int The ID of the task. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] get_replication_policy Signature get_replication_policy(id: int, x_request_id: Optional[str])-\u0026gt; ReplicationPolicy Get the specific replication policy Get the specific replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | Policy ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific replication policy api_response = api_instance.get_replication_policy(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;get_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Policy ID x_request_id str An unique ID for the request [optional] Return type ReplicationPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_executions Signature list_replication_executions(x_request_id: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], policy_id: Optional[int], status: Optional[str], trigger: Optional[str])-\u0026gt; list[ReplicationExecution] List replication executions List replication executions Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) policy_id = 56 # int | The ID of the policy that the executions belong to. (optional) status = \u0026#39;status_example\u0026#39; # str | The execution status.","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_0","order":0,"tags":null,"title":"ReplicationApi"},{"category":"ReplicationApi","content":"(optional) trigger = \u0026#39;trigger_example\u0026#39; # str | The trigger mode. (optional) try: # List replication executions api_response = api_instance.list_replication_executions(x_request_id=x_request_id, sort=sort, page=page, page_size=page_size, policy_id=policy_id, status=status, trigger=trigger) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] policy_id int The ID of the policy that the executions belong to. [optional] status str The execution status. [optional] trigger str The trigger mode. [optional] Return type list[ReplicationExecution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_policies Signature list_replication_policies(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], name: Optional[str])-\u0026gt; list[ReplicationPolicy] List replication policies List replication policies Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) name = \u0026#39;name_example\u0026#39; # str | Deprecated, use \\\u0026#34;query\\\u0026#34; instead. The policy name. (optional) try: # List replication policies api_response = api_instance.list_replication_policies(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size, name=name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_policies: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] name str Deprecated, use \u0026amp;quot;query\u0026amp;quot; instead. The policy name. [optional] Return type list[ReplicationPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_replication_tasks Signature list_replication_tasks(id: int, x_request_id: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], status: Optional[str], resource_type: Optional[str])-\u0026gt; list[ReplicationTask] List replication tasks for a specific execution List replication tasks for a specific execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution that the tasks belongs to. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) status = \u0026#39;status_example\u0026#39; # str | The task status. (optional) resource_type = \u0026#39;resource_type_example\u0026#39; # str | The resource type. (optional) try: # List replication tasks for a specific execution api_response = api_instance.list_replication_tasks(id, x_request_id=x_request_id, sort=sort, page=page, page_size=page_size, status=status, resource_type=resource_type) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;list_replication_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution that the tasks belongs to. x_request_id str An unique ID for the request [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] status str The task status. [optional] resource_type str The resource type. [optional] Return type list[ReplicationTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] start_replication Signature start_replication(execution: StartReplicationExecution, x_request_id: Optional[str])-\u0026gt; None Start one replication execution Start one replication execution according to the policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) execution = harbor_client.StartReplicationExecution() # StartReplicationExecution | The ID of policy that the execution belongs to x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Start one replication execution api_instance.start_replication(execution, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;start_replication: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution StartReplicationExecution The ID of policy that the execution belongs to x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_replication Signature","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_1","order":1,"tags":null,"title":"ReplicationApi"},{"category":"ReplicationApi","content":"stop_replication(id: int, x_request_id: Optional[str])-\u0026gt; None Stop the specific replication execution Stop the replication execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The ID of the execution. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop the specific replication execution api_instance.stop_replication(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;stop_replication: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The ID of the execution. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_replication_policy Signature update_replication_policy(id: int, policy: ReplicationPolicy, x_request_id: Optional[str])-\u0026gt; None Update the replication policy Update the replication policy Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ReplicationApi(harbor_client.ApiClient(configuration)) id = 789 # int | The policy ID policy = harbor_client.ReplicationPolicy() # ReplicationPolicy | The replication policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update the replication policy api_instance.update_replication_policy(id, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ReplicationApi-\u0026gt;update_replication_policy: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int The policy ID policy ReplicationPolicy The replication policy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/replicationapi/","objectID":"24ead4351aa8c29fd88ab7cf4759c890_2","order":2,"tags":null,"title":"ReplicationApi"},{"category":"RepositoryApi","content":"harbor_client.RepositoryApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description delete_repository DELETE /projects/{project_name}/repositories/{repository_name} Delete repository get_repository GET /projects/{project_name}/repositories/{repository_name} Get repository list_all_repositories GET /repositories List all authorized repositories list_repositories GET /projects/{project_name}/repositories List repositories update_repository PUT /projects/{project_name}/repositories/{repository_name} Update repository delete_repository Signature delete_repository(project_name: str, repository_name: str, x_request_id: Optional[str])-\u0026gt; None Delete repository Delete the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete repository api_instance.delete_repository(project_name, repository_name, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;delete_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_repository Signature get_repository(project_name: str, repository_name: str, x_request_id: Optional[str])-\u0026gt; Repository Get repository Get the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get repository api_response = api_instance.get_repository(project_name, repository_name, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;get_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb x_request_id str An unique ID for the request [optional] Return type Repository Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_all_repositories Signature list_all_repositories(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Repository] List all authorized repositories List all authorized repositories Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List all authorized repositories api_response = api_instance.list_all_repositories(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;list_all_repositories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Repository] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_repositories Signature list_repositories(project_name: str, x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Repository] List repositories List repositories of the specified project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional)","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/repositoryapi/","objectID":"4dff1d72caf4be4973c782fa6edf5f4f_0","order":0,"tags":null,"title":"RepositoryApi"},{"category":"RepositoryApi","content":"(default to 10) try: # List repositories api_response = api_instance.list_repositories(project_name, x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;list_repositories: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Repository] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_repository Signature update_repository(project_name: str, repository_name: str, repository: Repository, x_request_id: Optional[str])-\u0026gt; None Update repository Update the repository specified by name Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RepositoryApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb repository = harbor_client.Repository() # Repository | The JSON object of repository. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update repository api_instance.update_repository(project_name, repository_name, repository, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RepositoryApi-\u0026gt;update_repository: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb repository Repository The JSON object of repository. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/repositoryapi/","objectID":"4dff1d72caf4be4973c782fa6edf5f4f_1","order":1,"tags":null,"title":"RepositoryApi"},{"category":"RetentionApi","content":"harbor_client.RetentionApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_retention POST /retentions Create Retention Policy delete_retention DELETE /retentions/{id} Delete Retention Policy get_rentenition_metadata GET /retentions/metadatas Get Retention Metadatas get_retention GET /retentions/{id} Get Retention Policy get_retention_task_log GET /retentions/{id}/executions/{eid}/tasks/{tid} Get Retention job task log list_retention_executions GET /retentions/{id}/executions Get Retention executions list_retention_tasks GET /retentions/{id}/executions/{eid}/tasks Get Retention tasks operate_retention_execution PATCH /retentions/{id}/executions/{eid} Stop a Retention execution trigger_retention_execution POST /retentions/{id}/executions Trigger a Retention Execution update_retention PUT /retentions/{id} Update Retention Policy create_retention Signature create_retention(policy: RetentionPolicy, x_request_id: Optional[str])-\u0026gt; None Create Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) policy = harbor_client.RetentionPolicy() # RetentionPolicy | Create Retention Policy successfully. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create Retention Policy api_instance.create_retention(policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;create_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes policy RetentionPolicy Create Retention Policy successfully. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_retention Signature delete_retention(id: int, x_request_id: Optional[str])-\u0026gt; None Delete Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete Retention Policy api_instance.delete_retention(id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;delete_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_rentenition_metadata Signature get_rentenition_metadata(x_request_id: Optional[str])-\u0026gt; RetentionMetadata Get Retention Metadatas Get Retention Metadatas. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention Metadatas api_response = api_instance.get_rentenition_metadata(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_rentenition_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type RetentionMetadata Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_retention Signature get_retention(id: int, x_request_id: Optional[str])-\u0026gt; RetentionPolicy Get Retention Policy Get Retention Policy. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention Policy api_response = api_instance.get_retention(id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] Return type RetentionPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_retention_task_log Signature get_retention_task_log(id: int, eid: int, tid: int, x_request_id: Optional[str])-\u0026gt; str Get Retention job task log Get Retention job task log, tags ratain or deletion detail will be shown in a table. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. tid = 789 # int | Retention execution ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get Retention job task log api_response = api_instance.get_retention_task_log(id, eid, tid, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;get_retention_task_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. tid int Retention execution ID. x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] list_retention_executions Signature list_retention_executions(id: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[RetentionExecution] Get Retention executions Get Retention executions, execution status may be delayed before job service schedule it up. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 789 # int | The page number. (optional) page_size = 789 # int | The size of per page. (optional) try: # Get Retention executions api_response = api_instance.list_retention_executions(id, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;list_retention_executions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. x_request_id str An unique ID for the request [optional] page","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/retentionapi/","objectID":"0c26a8b253b3c80da70bfafe60c0d498_0","order":0,"tags":null,"title":"RetentionApi"},{"category":"RetentionApi","content":"int The page number. [optional] page_size int The size of per page. [optional] Return type list[RetentionExecution] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_retention_tasks Signature list_retention_tasks(id: int, eid: int, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[RetentionExecutionTask] Get Retention tasks Get Retention tasks, each repository as a task. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 789 # int | The page number. (optional) page_size = 789 # int | The size of per page. (optional) try: # Get Retention tasks api_response = api_instance.list_retention_tasks(id, eid, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;list_retention_tasks: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. x_request_id str An unique ID for the request [optional] page int The page number. [optional] page_size int The size of per page. [optional] Return type list[RetentionExecutionTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] operate_retention_execution Signature operate_retention_execution(id: int, eid: int, body: Body1, x_request_id: Optional[str])-\u0026gt; None Stop a Retention execution Stop a Retention execution, only support \u0026quot;stop\u0026quot; action now. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. eid = 789 # int | Retention execution ID. body = harbor_client.Body1() # Body1 | The action, only support \\\u0026#34;stop\\\u0026#34; now. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop a Retention execution api_instance.operate_retention_execution(id, eid, body, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;operate_retention_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. eid int Retention execution ID. body Body1 The action, only support \u0026amp;quot;stop\u0026amp;quot; now. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] trigger_retention_execution Signature trigger_retention_execution(id: int, body: Body, x_request_id: Optional[str])-\u0026gt; None Trigger a Retention Execution Trigger a Retention Execution, if dry_run is True, nothing would be deleted actually. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. body = harbor_client.Body() # Body | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Trigger a Retention Execution api_instance.trigger_retention_execution(id, body, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;trigger_retention_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. body Body x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] update_retention Signature update_retention(id: int, policy: RetentionPolicy, x_request_id: Optional[str])-\u0026gt; None Update Retention Policy 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RetentionApi(harbor_client.ApiClient(configuration)) id = 789 # int | Retention ID. policy = harbor_client.RetentionPolicy() # RetentionPolicy | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update Retention Policy api_instance.update_retention(id, policy, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RetentionApi-\u0026gt;update_retention: %s\\n\u0026#34; % e) Parameters Name Type Description Notes id int Retention ID. policy RetentionPolicy x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/retentionapi/","objectID":"0c26a8b253b3c80da70bfafe60c0d498_1","order":1,"tags":null,"title":"RetentionApi"},{"category":"RobotApi","content":"harbor_client.RobotApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_robot POST /robots Create a robot account delete_robot DELETE /robots/{robot_id} Delete a robot account get_robot_by_id GET /robots/{robot_id} Get a robot account list_robot GET /robots Get robot account refresh_sec PATCH /robots/{robot_id} Refresh the robot secret update_robot PUT /robots/{robot_id} Update a robot account create_robot Signature create_robot(robot: RobotCreate, x_request_id: Optional[str])-\u0026gt; RobotCreated Create a robot account Create a robot account Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot = harbor_client.RobotCreate() # RobotCreate | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a robot account api_response = api_instance.create_robot(robot, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;create_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot RobotCreate The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return type RobotCreated Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_robot Signature delete_robot(robot_id: int, x_request_id: Optional[str])-\u0026gt; None Delete a robot account This endpoint deletes specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a robot account api_instance.delete_robot(robot_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;delete_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_robot_by_id Signature get_robot_by_id(robot_id: int, x_request_id: Optional[str])-\u0026gt; Robot Get a robot account This endpoint returns specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a robot account api_response = api_instance.get_robot_by_id(robot_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;get_robot_by_id: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID x_request_id str An unique ID for the request [optional] Return type Robot Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_robot Signature list_robot(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[Robot] Get robot account List the robot accounts with the specified level and project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Get robot account api_response = api_instance.list_robot(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;list_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[Robot] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] refresh_sec Signature refresh_sec(robot_id: int, robot_sec: RobotSec, x_request_id: Optional[str])-\u0026gt; RobotSec Refresh the robot secret Refresh the robot secret Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID robot_sec = harbor_client.RobotSec() # RobotSec | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Refresh the robot secret api_response = api_instance.refresh_sec(robot_id, robot_sec, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;refresh_sec: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID robot_sec RobotSec The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotapi/","objectID":"b5e0c15338a748371b993d06b009a5d8_0","order":0,"tags":null,"title":"RobotApi"},{"category":"RobotApi","content":"type RobotSec Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_robot Signature update_robot(robot_id: int, robot: Robot, x_request_id: Optional[str])-\u0026gt; None Update a robot account This endpoint updates specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.RobotApi(harbor_client.ApiClient(configuration)) robot_id = 56 # int | Robot ID robot = harbor_client.Robot() # Robot | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a robot account api_instance.update_robot(robot_id, robot, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling RobotApi-\u0026gt;update_robot: %s\\n\u0026#34; % e) Parameters Name Type Description Notes robot_id int Robot ID robot Robot The JSON object of a robot account. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotapi/","objectID":"b5e0c15338a748371b993d06b009a5d8_1","order":1,"tags":null,"title":"RobotApi"},{"category":"Robotv1Api","content":"harbor_client.Robotv1Api All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_robot_v1 POST /projects/{project_name_or_id}/robots Create a robot account delete_robot_v1 DELETE /projects/{project_name_or_id}/robots/{robot_id} Delete a robot account get_robot_by_idv1 GET /projects/{project_name_or_id}/robots/{robot_id} Get a robot account list_robot_v1 GET /projects/{project_name_or_id}/robots Get all robot accounts of specified project update_robot_v1 PUT /projects/{project_name_or_id}/robots/{robot_id} Update status of robot account. create_robot_v1 Signature create_robot_v1(project_name_or_id: str, robot: RobotCreateV1, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; RobotCreated Create a robot account Create a robot account Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot = harbor_client.RobotCreateV1() # RobotCreateV1 | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Create a robot account api_response = api_instance.create_robot_v1(project_name_or_id, robot, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;create_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot RobotCreateV1 The JSON object of a robot account. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type RobotCreated Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_robot_v1 Signature delete_robot_v1(project_name_or_id: str, robot_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete a robot account This endpoint deletes specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete a robot account api_instance.delete_robot_v1(project_name_or_id, robot_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;delete_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_robot_by_idv1 Signature get_robot_by_idv1(project_name_or_id: str, robot_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; Robot Get a robot account This endpoint returns specific robot account information by robot ID. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get a robot account api_response = api_instance.get_robot_by_idv1(project_name_or_id, robot_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;get_robot_by_idv1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type Robot Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_robot_v1 Signature list_robot_v1(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], page: Optional[int], page_size: Optional[int], q: Optional[str], sort: Optional[str])-\u0026gt; list[Robot] Get all robot accounts of specified project Get all robot accounts of specified project Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotv1api/","objectID":"038b9d24d2f45ed8bd0fedac32ede518_0","order":0,"tags":null,"title":"Robotv1Api"},{"category":"Robotv1Api","content":"unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) try: # Get all robot accounts of specified project api_response = api_instance.list_robot_v1(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, page=page, page_size=page_size, q=q, sort=sort) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;list_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] Return type list[Robot] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_robot_v1 Signature update_robot_v1(project_name_or_id: str, robot_id: int, robot: Robot, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update status of robot account. Used to disable/enable a specified robot account. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.Robotv1Api(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project robot_id = 56 # int | Robot ID robot = harbor_client.Robot() # Robot | The JSON object of a robot account. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update status of robot account. api_instance.update_robot_v1(project_name_or_id, robot_id, robot, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling Robotv1Api-\u0026gt;update_robot_v1: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project robot_id int Robot ID robot Robot The JSON object of a robot account. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/robotv1api/","objectID":"038b9d24d2f45ed8bd0fedac32ede518_1","order":1,"tags":null,"title":"Robotv1Api"},{"category":"ScanAllApi","content":"harbor_client.ScanAllApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_scan_all_schedule POST /system/scanAll/schedule Create a schedule or a manual trigger for the scan all job. get_latest_scan_all_metrics GET /scans/all/metrics Get the metrics of the latest scan all process get_latest_scheduled_scan_all_metrics GET /scans/schedule/metrics Get the metrics of the latest scheduled scan all process get_scan_all_schedule GET /system/scanAll/schedule Get scan all's schedule. stop_scan_all POST /system/scanAll/stop Stop scanAll job execution update_scan_all_schedule PUT /system/scanAll/schedule Update scan all's schedule. create_scan_all_schedule Signature create_scan_all_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Create a schedule or a manual trigger for the scan all job. This endpoint is for creating a schedule or a manual trigger for the scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Create a schedule or a manual trigger for the scan all job. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a schedule or a manual trigger for the scan all job. api_instance.create_scan_all_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;create_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Create a schedule or a manual trigger for the scan all job. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_latest_scan_all_metrics Signature get_latest_scan_all_metrics(x_request_id: Optional[str])-\u0026gt; Stats Get the metrics of the latest scan all process Get the metrics of the latest scan all process Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metrics of the latest scan all process api_response = api_instance.get_latest_scan_all_metrics(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_latest_scan_all_metrics: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Stats Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_latest_scheduled_scan_all_metrics Signature get_latest_scheduled_scan_all_metrics(x_request_id: Optional[str])-\u0026gt; Stats Get the metrics of the latest scheduled scan all process Get the metrics of the latest scheduled scan all process Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metrics of the latest scheduled scan all process api_response = api_instance.get_latest_scheduled_scan_all_metrics(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_latest_scheduled_scan_all_metrics: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Stats Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_all_schedule Signature get_scan_all_schedule(x_request_id: Optional[str])-\u0026gt; Schedule Get scan all\u0026rsquo;s schedule. This endpoint is for getting a schedule for the scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get scan all\u0026#39;s schedule. api_response = api_instance.get_scan_all_schedule(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;get_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Schedule Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_scan_all Signature stop_scan_all(x_request_id: Optional[str])-\u0026gt; None Stop scanAll job execution Stop scanAll job execution Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Stop scanAll job execution api_instance.stop_scan_all(x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;stop_scan_all: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_scan_all_schedule Signature update_scan_all_schedule(schedule: Schedule, x_request_id: Optional[str])-\u0026gt; None Update scan all\u0026rsquo;s schedule. This endpoint is for updating the schedule of scan all job, which scans all of images in Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanAllApi(harbor_client.ApiClient(configuration)) schedule = harbor_client.Schedule() # Schedule | Updates the schedule of scan all job, which scans all of images in Harbor. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update scan all\u0026#39;s schedule. api_instance.update_scan_all_schedule(schedule, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanAllApi-\u0026gt;update_scan_all_schedule: %s\\n\u0026#34; % e) Parameters Name Type Description Notes schedule Schedule Updates the schedule of scan all job, which scans all of images in Harbor. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scanallapi/","objectID":"7376fc42bd1b6568d381bdf87a39b6c2_0","order":0,"tags":null,"title":"ScanAllApi"},{"category":"ScanApi","content":"harbor_client.ScanApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_report_log GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log Get the log of the scan report scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan Scan the artifact stop_scan_artifact POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/stop Cancelling a scan job for a particular artifact get_report_log Signature get_report_log(project_name: str, repository_name: str, reference: str, report_id: str, x_request_id: Optional[str])-\u0026gt; str Get the log of the scan report Get the log of the scan report Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag report_id = \u0026#39;report_id_example\u0026#39; # str | The report id to get the log x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the log of the scan report api_response = api_instance.get_report_log(project_name, repository_name, reference, report_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;get_report_log: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag report_id str The report id to get the log x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/plain [Back to top] scan_artifact Signature scan_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Scan the artifact Scan the specified artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Scan the artifact api_instance.scan_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;scan_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] stop_scan_artifact Signature stop_scan_artifact(project_name: str, repository_name: str, reference: str, x_request_id: Optional[str])-\u0026gt; None Cancelling a scan job for a particular artifact Cancelling a scan job for a particular artifact Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanApi(harbor_client.ApiClient(configuration)) project_name = \u0026#39;project_name_example\u0026#39; # str | The name of the project repository_name = \u0026#39;repository_name_example\u0026#39; # str | The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference = \u0026#39;reference_example\u0026#39; # str | The reference of the artifact, can be digest or tag x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Cancelling a scan job for a particular artifact api_instance.stop_scan_artifact(project_name, repository_name, reference, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScanApi-\u0026gt;stop_scan_artifact: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name str The name of the project repository_name str The name of the repository. If it contains slash, encode it with URL encoding. e.g. a/b -\u0026gt; a%252Fb reference str The reference of the artifact, can be digest or tag x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scanapi/","objectID":"3b5c03bec396094868b9821598eb2fdd_0","order":0,"tags":null,"title":"ScanApi"},{"category":"ScanDataExportApi","content":"harbor_client.ScanDataExportApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description download_scan_data GET /export/cve/download/{execution_id} Download the scan data export file export_scan_data POST /export/cve Export scan data for selected projects get_scan_data_export_execution GET /export/cve/execution/{execution_id} Get the specific scan data export execution get_scan_data_export_execution_list GET /export/cve/executions Get a list of specific scan data export execution jobs for a specified user download_scan_data Signature download_scan_data(execution_id: int, x_request_id: Optional[str], format: Optional[str])-\u0026gt; str Download the scan data export file Download the scan data report. Default format is CSV Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) format = \u0026#39;format_example\u0026#39; # str | The format of the data to be exported. e.g. CSV or PDF (optional) try: # Download the scan data export file api_response = api_instance.download_scan_data(execution_id, x_request_id=x_request_id, format=format) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;download_scan_data: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution_id int Execution ID x_request_id str An unique ID for the request [optional] format str The format of the data to be exported. e.g. CSV or PDF [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: text/csv [Back to top] export_scan_data Signature export_scan_data(x_scan_data_type: str, criteria: ScanDataExportRequest, x_request_id: Optional[str])-\u0026gt; ScanDataExportJob Export scan data for selected projects Export scan data for selected projects Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) x_scan_data_type = \u0026#39;x_scan_data_type_example\u0026#39; # str | The type of scan data to export criteria = harbor_client.ScanDataExportRequest() # ScanDataExportRequest | The criteria for the export x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Export scan data for selected projects api_response = api_instance.export_scan_data(x_scan_data_type, criteria, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;export_scan_data: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_scan_data_type str The type of scan data to export criteria ScanDataExportRequest The criteria for the export x_request_id str An unique ID for the request [optional] Return type ScanDataExportJob Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_data_export_execution Signature get_scan_data_export_execution(execution_id: int, x_request_id: Optional[str])-\u0026gt; ScanDataExportExecution Get the specific scan data export execution Get the scan data export execution specified by ID Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) execution_id = 56 # int | Execution ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the specific scan data export execution api_response = api_instance.get_scan_data_export_execution(execution_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;get_scan_data_export_execution: %s\\n\u0026#34; % e) Parameters Name Type Description Notes execution_id int Execution ID x_request_id str An unique ID for the request [optional] Return type ScanDataExportExecution Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scan_data_export_execution_list Signature get_scan_data_export_execution_list(x_request_id: Optional[str])-\u0026gt; ScanDataExportExecutionList Get a list of specific scan data export execution jobs for a specified user Get a list of specific scan data export execution jobs for a specified user Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScanDataExportApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a list of specific scan data export execution jobs for a specified user api_response = api_instance.get_scan_data_export_execution_list(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScanDataExportApi-\u0026gt;get_scan_data_export_execution_list: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type ScanDataExportExecutionList Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scandataexportapi/","objectID":"035f4fe171489331583cc10a52f5b88f_0","order":0,"tags":null,"title":"ScanDataExportApi"},{"category":"ScannerApi","content":"harbor_client.ScannerApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_scanner POST /scanners Create a scanner registration delete_scanner DELETE /scanners/{registration_id} Delete a scanner registration get_scanner GET /scanners/{registration_id} Get a scanner registration details get_scanner_metadata GET /scanners/{registration_id}/metadata Get the metadata of the specified scanner registration list_scanners GET /scanners List scanner registrations ping_scanner POST /scanners/ping Tests scanner registration settings set_scanner_as_default PATCH /scanners/{registration_id} Set system default scanner registration update_scanner PUT /scanners/{registration_id} Update a scanner registration create_scanner Signature create_scanner(registration: ScannerRegistrationReq, x_request_id: Optional[str])-\u0026gt; None Create a scanner registration Creats a new scanner registration with the given data. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration = harbor_client.ScannerRegistrationReq() # ScannerRegistrationReq | A scanner registration to be created. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a scanner registration api_instance.create_scanner(registration, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;create_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration ScannerRegistrationReq A scanner registration to be created. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_scanner Signature delete_scanner(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerRegistration Delete a scanner registration Deletes the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete a scanner registration api_response = api_instance.delete_scanner(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;delete_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. x_request_id str An unique ID for the request [optional] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner Signature get_scanner(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerRegistration Get a scanner registration details Retruns the details of the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifer. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a scanner registration details api_response = api_instance.get_scanner(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;get_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifer. x_request_id str An unique ID for the request [optional] Return type ScannerRegistration Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_scanner_metadata Signature get_scanner_metadata(registration_id: str, x_request_id: Optional[str])-\u0026gt; ScannerAdapterMetadata Get the metadata of the specified scanner registration Get the metadata of the specified scanner registration, including the capabilities and customized properties. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the metadata of the specified scanner registration api_response = api_instance.get_scanner_metadata(registration_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;get_scanner_metadata: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. x_request_id str An unique ID for the request [optional] Return type ScannerAdapterMetadata Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_scanners Signature list_scanners(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScannerRegistration] List scanner registrations Returns a list of currently configured scanner registrations. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List scanner registrations api_response = api_instance.list_scanners(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;list_scanners: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scannerapi/","objectID":"94acf49b0e80f2d11ec38f1ef690326a_0","order":0,"tags":null,"title":"ScannerApi"},{"category":"ScannerApi","content":"page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScannerRegistration] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] ping_scanner Signature ping_scanner(settings: ScannerRegistrationSettings, x_request_id: Optional[str])-\u0026gt; None Tests scanner registration settings Pings scanner adapter to test endpoint URL and authorization settings. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) settings = harbor_client.ScannerRegistrationSettings() # ScannerRegistrationSettings | A scanner registration settings to be tested. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Tests scanner registration settings api_instance.ping_scanner(settings, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;ping_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes settings ScannerRegistrationSettings A scanner registration settings to be tested. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_scanner_as_default Signature set_scanner_as_default(registration_id: str, payload: IsDefault, x_request_id: Optional[str])-\u0026gt; None Set system default scanner registration Set the specified scanner registration as the system default one. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. payload = harbor_client.IsDefault() # IsDefault | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Set system default scanner registration api_instance.set_scanner_as_default(registration_id, payload, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;set_scanner_as_default: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. payload IsDefault x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_scanner Signature update_scanner(registration_id: str, registration: ScannerRegistrationReq, x_request_id: Optional[str])-\u0026gt; None Update a scanner registration Updates the specified scanner registration. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScannerApi(harbor_client.ApiClient(configuration)) registration_id = \u0026#39;registration_id_example\u0026#39; # str | The scanner registration identifier. registration = harbor_client.ScannerRegistrationReq() # ScannerRegistrationReq | A scanner registraiton to be updated. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a scanner registration api_instance.update_scanner(registration_id, registration, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling ScannerApi-\u0026gt;update_scanner: %s\\n\u0026#34; % e) Parameters Name Type Description Notes registration_id str The scanner registration identifier. registration ScannerRegistrationReq A scanner registraiton to be updated. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scannerapi/","objectID":"94acf49b0e80f2d11ec38f1ef690326a_1","order":1,"tags":null,"title":"ScannerApi"},{"category":"ScheduleApi","content":"harbor_client.ScheduleApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_schedule_paused GET /schedules/{job_type}/paused list_schedules GET /schedules get_schedule_paused Signature get_schedule_paused(job_type: str, x_request_id: Optional[str])-\u0026gt; SchedulerStatus Get scheduler paused status Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScheduleApi(harbor_client.ApiClient(configuration)) job_type = \u0026#39;job_type_example\u0026#39; # str | The type of the job. \u0026#39;all\u0026#39; stands for all job types, current only support query with all x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: api_response = api_instance.get_schedule_paused(job_type, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScheduleApi-\u0026gt;get_schedule_paused: %s\\n\u0026#34; % e) Parameters Name Type Description Notes job_type str The type of the job. 'all' stands for all job types, current only support query with all x_request_id str An unique ID for the request [optional] Return type SchedulerStatus Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_schedules Signature list_schedules(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[ScheduleTask] List schedules Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.ScheduleApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: api_response = api_instance.list_schedules(x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling ScheduleApi-\u0026gt;list_schedules: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[ScheduleTask] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/scheduleapi/","objectID":"3c0ce344cccf28bff61ac8700abae464_0","order":0,"tags":null,"title":"ScheduleApi"},{"category":"SearchApi","content":"harbor_client.SearchApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description search GET /search Search for projects, repositories and helm charts search Signature search(q: str, x_request_id: Optional[str])-\u0026gt; Search Search for projects, repositories and helm charts The Search endpoint returns information about the projects, repositories and helm charts offered at public status or related to the current logged in user. The response includes the project, repository list and charts in a proper display order. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SearchApi(harbor_client.ApiClient(configuration)) q = \u0026#39;q_example\u0026#39; # str | Search parameter for project and repository name. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Search for projects, repositories and helm charts api_response = api_instance.search(q, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SearchApi-\u0026gt;search: %s\\n\u0026#34; % e) Parameters Name Type Description Notes q str Search parameter for project and repository name. x_request_id str An unique ID for the request [optional] Return type Search Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/searchapi/","objectID":"2993d2e926c1e56e1c3576e457fb210d_0","order":0,"tags":null,"title":"SearchApi"},{"category":"StatisticApi","content":"harbor_client.StatisticApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_statistic GET /statistics Get the statistic information about the projects and repositories get_statistic Signature get_statistic(x_request_id: Optional[str])-\u0026gt; Statistic Get the statistic information about the projects and repositories Get the statistic information about the projects and repositories Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.StatisticApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the statistic information about the projects and repositories api_response = api_instance.get_statistic(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling StatisticApi-\u0026gt;get_statistic: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type Statistic Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/statisticapi/","objectID":"8e92e379ec08df30c94af38eb503613e_0","order":0,"tags":null,"title":"StatisticApi"},{"category":"SystemCVEAllowlistApi","content":"harbor_client.SystemCVEAllowlistApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_system_cve_allowlist GET /system/CVEAllowlist Get the system level allowlist of CVE. put_system_cve_allowlist PUT /system/CVEAllowlist Update the system level allowlist of CVE. get_system_cve_allowlist Signature get_system_cve_allowlist(x_request_id: Optional[str])-\u0026gt; CVEAllowlist Get the system level allowlist of CVE. Get the system level allowlist of CVE. This API can be called by all authenticated users. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SystemCVEAllowlistApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get the system level allowlist of CVE. api_response = api_instance.get_system_cve_allowlist(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SystemCVEAllowlistApi-\u0026gt;get_system_cve_allowlist: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type CVEAllowlist Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] put_system_cve_allowlist Signature put_system_cve_allowlist(x_request_id: Optional[str], allowlist: Optional[CVEAllowlist])-\u0026gt; None Update the system level allowlist of CVE. This API overwrites the system level allowlist of CVE with the list in request body. Only system Admin has permission to call this API. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SystemCVEAllowlistApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) allowlist = harbor_client.CVEAllowlist() # CVEAllowlist | The allowlist with new content (optional) try: # Update the system level allowlist of CVE. api_instance.put_system_cve_allowlist(x_request_id=x_request_id, allowlist=allowlist) except ApiException as e: print(\u0026#34;Exception when calling SystemCVEAllowlistApi-\u0026gt;put_system_cve_allowlist: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] allowlist CVEAllowlist The allowlist with new content [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/systemcveallowlistapi/","objectID":"515d1c7d805ff4f9a29133f059494407_0","order":0,"tags":null,"title":"SystemCVEAllowlistApi"},{"category":"SysteminfoApi","content":"harbor_client.SysteminfoApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description get_cert GET /systeminfo/getcert Get default root certificate. get_system_info GET /systeminfo Get general system info get_volumes GET /systeminfo/volumes Get system volume info (total/free size). get_cert Signature get_cert(x_request_id: Optional[str])-\u0026gt; str Get default root certificate. This endpoint is for downloading a default root certificate. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get default root certificate. api_response = api_instance.get_cert(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_cert: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type str Authorization basic HTTP request headers Content-Type: application/json Accept: application/octet-stream [Back to top] get_system_info Signature get_system_info(x_request_id: Optional[str])-\u0026gt; GeneralInfo Get general system info 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get general system info api_response = api_instance.get_system_info(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_system_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type GeneralInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_volumes Signature get_volumes(x_request_id: Optional[str])-\u0026gt; SystemInfo Get system volume info (total/free size). 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. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.SysteminfoApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get system volume info (total/free size). api_response = api_instance.get_volumes(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling SysteminfoApi-\u0026gt;get_volumes: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type SystemInfo Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/systeminfoapi/","objectID":"171ff8c70b127da8de98570acd9ed888_0","order":0,"tags":null,"title":"SysteminfoApi"},{"category":"UserApi","content":"harbor_client.UserApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_user POST /users Create a local user. delete_user DELETE /users/{user_id} Mark a registered user as be removed. get_current_user_info GET /users/current Get current user info. get_current_user_permissions GET /users/current/permissions Get current user permissions. get_user GET /users/{user_id} Get a user's profile. list_users GET /users List users search_users GET /users/search Search users by username set_cli_secret PUT /users/{user_id}/cli_secret Set CLI secret for a user. set_user_sys_admin PUT /users/{user_id}/sysadmin Update a registered user to change to be an administrator of Harbor. update_user_password PUT /users/{user_id}/password Change the password on a user that already exists. update_user_profile PUT /users/{user_id} Update user's profile. create_user Signature create_user(user_req: UserCreationReq, x_request_id: Optional[str])-\u0026gt; None Create a local user. This API can be used only when the authentication mode is for local DB. When self registration is disabled. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_req = harbor_client.UserCreationReq() # UserCreationReq | The new user x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Create a local user. api_instance.create_user(user_req, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;create_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_req UserCreationReq The new user x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_user Signature delete_user(user_id: int, x_request_id: Optional[str])-\u0026gt; None Mark a registered user as be removed. This endpoint let administrator of Harbor mark a registered user as removed.It actually won\u0026rsquo;t be deleted from DB. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | User ID for marking as to be removed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Mark a registered user as be removed. api_instance.delete_user(user_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;delete_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int User ID for marking as to be removed. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_current_user_info Signature get_current_user_info(x_request_id: Optional[str])-\u0026gt; UserResp Get current user info. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get current user info. api_response = api_instance.get_current_user_info(x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_current_user_info: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] Return type UserResp Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_current_user_permissions Signature get_current_user_permissions(x_request_id: Optional[str], scope: Optional[str], relative: Optional[bool])-\u0026gt; list[Permission] Get current user permissions. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) scope = \u0026#39;scope_example\u0026#39; # str | The scope for the permission (optional) relative = true # bool | If true, the resources in the response are relative to the scope, eg for resource \u0026#39;/project/1/repository\u0026#39; if relative is \u0026#39;true\u0026#39; then the resource in response will be \u0026#39;repository\u0026#39;. (optional) try: # Get current user permissions. api_response = api_instance.get_current_user_permissions(x_request_id=x_request_id, scope=scope, relative=relative) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_current_user_permissions: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] scope str The scope for the permission [optional] relative bool 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'. [optional] Return type list[Permission] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_user Signature get_user(user_id: int, x_request_id: Optional[str])-\u0026gt; UserResp Get a user\u0026rsquo;s profile. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get a user\u0026#39;s profile. api_response = api_instance.get_user(user_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;get_user: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int x_request_id str An unique ID for the request [optional] Return type UserResp Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_users Signature list_users(x_request_id: Optional[str], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserResp] List users Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_0","order":0,"tags":null,"title":"UserApi"},{"category":"UserApi","content":"the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List users api_response = api_instance.list_users(x_request_id=x_request_id, q=q, sort=sort, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;list_users: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserResp] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_users Signature search_users(username: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserSearchRespItem] Search users by username This endpoint is to search the users by username. It\u0026rsquo;s open for all authenticated requests. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) username = \u0026#39;username_example\u0026#39; # str | Username for filtering results. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Search users by username api_response = api_instance.search_users(username, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;search_users: %s\\n\u0026#34; % e) Parameters Name Type Description Notes username str Username for filtering results. x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserSearchRespItem] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_cli_secret Signature set_cli_secret(user_id: int, secret: OIDCCliSecretReq, x_request_id: Optional[str])-\u0026gt; None Set CLI secret for a user. This endpoint let user generate a new CLI secret for himself. This API only works when auth mode is set to \u0026lsquo;OIDC\u0026rsquo;. Once this API returns with successful status, the old secret will be invalid, as there will be only one CLI secret for a user. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | User ID secret = harbor_client.OIDCCliSecretReq() # OIDCCliSecretReq | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Set CLI secret for a user. api_instance.set_cli_secret(user_id, secret, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;set_cli_secret: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int User ID secret OIDCCliSecretReq x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] set_user_sys_admin Signature set_user_sys_admin(user_id: int, sysadmin_flag: UserSysAdminFlag, x_request_id: Optional[str])-\u0026gt; None Update a registered user to change to be an administrator of Harbor. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | sysadmin_flag = harbor_client.UserSysAdminFlag() # UserSysAdminFlag | Toggle a user to admin or not. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update a registered user to change to be an administrator of Harbor. api_instance.set_user_sys_admin(user_id, sysadmin_flag, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;set_user_sys_admin: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int sysadmin_flag UserSysAdminFlag Toggle a user to admin or not. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_user_password Signature update_user_password(user_id: int, password: PasswordReq, x_request_id: Optional[str])-\u0026gt; None Change the password on a user that already exists. This endpoint is for user to update password. Users with the admin role can change any user\u0026rsquo;s password. Regular users can change only their own password. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | password = harbor_client.PasswordReq() # PasswordReq | Password to be updated, the attribute \u0026#39;old_password\u0026#39; is optional when the API is called by the system administrator. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Change the password on a user that already exists. api_instance.update_user_password(user_id, password, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;update_user_password: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int password PasswordReq Password to be updated, the attribute 'old_password' is optional when the API is called by the system administrator. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_1","order":1,"tags":null,"title":"UserApi"},{"category":"UserApi","content":"Accept: application/json [Back to top] update_user_profile Signature update_user_profile(user_id: int, profile: UserProfile, x_request_id: Optional[str])-\u0026gt; None Update user\u0026rsquo;s profile. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UserApi(harbor_client.ApiClient(configuration)) user_id = 56 # int | Registered user ID profile = harbor_client.UserProfile() # UserProfile | Only email, realname and comment can be modified. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Update user\u0026#39;s profile. api_instance.update_user_profile(user_id, profile, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UserApi-\u0026gt;update_user_profile: %s\\n\u0026#34; % e) Parameters Name Type Description Notes user_id int Registered user ID profile UserProfile Only email, realname and comment can be modified. x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/userapi/","objectID":"7c31bc7a8458f8ca3eb0dcd5e1995057_2","order":2,"tags":null,"title":"UserApi"},{"category":"UsergroupApi","content":"harbor_client.UsergroupApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_user_group POST /usergroups Create user group delete_user_group DELETE /usergroups/{group_id} Delete user group get_user_group GET /usergroups/{group_id} Get user group information list_user_groups GET /usergroups Get all user groups information search_user_groups GET /usergroups/search Search groups by groupname update_user_group PUT /usergroups/{group_id} Update group information create_user_group Signature create_user_group(x_request_id: Optional[str], usergroup: Optional[UserGroup])-\u0026gt; None Create user group Create user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) usergroup = harbor_client.UserGroup() # UserGroup | (optional) try: # Create user group api_instance.create_user_group(x_request_id=x_request_id, usergroup=usergroup) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;create_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] usergroup UserGroup [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_user_group Signature delete_user_group(group_id: int, x_request_id: Optional[str])-\u0026gt; None Delete user group Delete user group Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 56 # int | x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Delete user group api_instance.delete_user_group(group_id, x_request_id=x_request_id) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;delete_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int x_request_id str An unique ID for the request [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_user_group Signature get_user_group(group_id: int, x_request_id: Optional[str])-\u0026gt; UserGroup Get user group information Get user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 789 # int | Group ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) try: # Get user group information api_response = api_instance.get_user_group(group_id, x_request_id=x_request_id) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;get_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int Group ID x_request_id str An unique ID for the request [optional] Return type UserGroup Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_user_groups Signature list_user_groups(x_request_id: Optional[str], page: Optional[int], page_size: Optional[int], ldap_group_dn: Optional[str], group_name: Optional[str])-\u0026gt; list[UserGroup] Get all user groups information Get all user groups information, it is open for system admin Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) ldap_group_dn = \u0026#39;ldap_group_dn_example\u0026#39; # str | search with ldap group DN (optional) group_name = \u0026#39;group_name_example\u0026#39; # str | group name need to search, fuzzy matches (optional) try: # Get all user groups information api_response = api_instance.list_user_groups(x_request_id=x_request_id, page=page, page_size=page_size, ldap_group_dn=ldap_group_dn, group_name=group_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;list_user_groups: %s\\n\u0026#34; % e) Parameters Name Type Description Notes x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] ldap_group_dn str search with ldap group DN [optional] group_name str group name need to search, fuzzy matches [optional] Return type list[UserGroup] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] search_user_groups Signature search_user_groups(groupname: str, x_request_id: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[UserGroupSearchItem] Search groups by groupname This endpoint is to search groups by group name. It\u0026rsquo;s open for all authenticated requests. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) groupname = \u0026#39;groupname_example\u0026#39; # str | Group name for filtering results. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # Search groups by groupname api_response = api_instance.search_user_groups(groupname, x_request_id=x_request_id, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;search_user_groups: %s\\n\u0026#34; % e) Parameters Name Type Description Notes groupname str Group name for filtering results. x_request_id str An unique ID for the request [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] Return type list[UserGroupSearchItem] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_user_group Signature update_user_group(group_id: int, x_request_id: Optional[str], usergroup: Optional[UserGroup])-\u0026gt; None Update group information Update user group information Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.UsergroupApi(harbor_client.ApiClient(configuration)) group_id = 789 # int | Group ID x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) usergroup = harbor_client.UserGroup() # UserGroup | (optional) try: # Update group information api_instance.update_user_group(group_id, x_request_id=x_request_id, usergroup=usergroup) except ApiException as e: print(\u0026#34;Exception when calling UsergroupApi-\u0026gt;update_user_group: %s\\n\u0026#34; % e) Parameters Name Type Description Notes group_id int Group ID x_request_id str An unique ID for","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/usergroupapi/","objectID":"3fc5113e8f60fc0622d9b9df79ae3ec7_0","order":0,"tags":null,"title":"UsergroupApi"},{"category":"UsergroupApi","content":"the request [optional] usergroup UserGroup [optional] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/usergroupapi/","objectID":"3fc5113e8f60fc0622d9b9df79ae3ec7_1","order":1,"tags":null,"title":"UsergroupApi"},{"category":"WebhookApi","content":"harbor_client.WebhookApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description create_webhook_policy_of_project POST /projects/{project_name_or_id}/webhook/policies Create project webhook policy. delete_webhook_policy_of_project DELETE /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Delete webhook policy of a project get_supported_event_types GET /projects/{project_name_or_id}/webhook/events Get supported event types and notify types. get_webhook_policy_of_project GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Get project webhook policy last_trigger GET /projects/{project_name_or_id}/webhook/lasttrigger Get project webhook policy last trigger info list_webhook_policies_of_project GET /projects/{project_name_or_id}/webhook/policies List project webhook policies. update_webhook_policy_of_project PUT /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id} Update webhook policy of a project. create_webhook_policy_of_project Signature create_webhook_policy_of_project(project_name_or_id: str, policy: WebhookPolicy, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Create project webhook policy. This endpoint create a webhook policy if the project does not have one. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project policy = harbor_client.WebhookPolicy() # WebhookPolicy | Properties \\\u0026#34;targets\\\u0026#34; and \\\u0026#34;event_types\\\u0026#34; needed. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Create project webhook policy. api_instance.create_webhook_policy_of_project(project_name_or_id, policy, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;create_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project policy WebhookPolicy Properties \u0026amp;quot;targets\u0026amp;quot; and \u0026amp;quot;event_types\u0026amp;quot; needed. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] delete_webhook_policy_of_project Signature delete_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Delete webhook policy of a project This endpoint is aimed to delete webhookpolicy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Delete webhook policy of a project api_instance.delete_webhook_policy_of_project(project_name_or_id, webhook_policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;delete_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_supported_event_types Signature get_supported_event_types(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; SupportedWebhookEventTypes Get supported event types and notify types. Get supportted event types and notify types. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get supported event types and notify types. api_response = api_instance.get_supported_event_types(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;get_supported_event_types: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type SupportedWebhookEventTypes Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] get_webhook_policy_of_project Signature get_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; WebhookPolicy Get project webhook policy This endpoint returns specified webhook policy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id =","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_0","order":0,"tags":null,"title":"WebhookApi"},{"category":"WebhookApi","content":"\u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project webhook policy api_response = api_instance.get_webhook_policy_of_project(project_name_or_id, webhook_policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;get_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type WebhookPolicy Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] last_trigger Signature last_trigger(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; list[WebhookLastTrigger] Get project webhook policy last trigger info This endpoint returns last trigger information of project webhook policy. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Get project webhook policy last trigger info api_response = api_instance.last_trigger(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;last_trigger: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type list[WebhookLastTrigger] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] list_webhook_policies_of_project Signature list_webhook_policies_of_project(project_name_or_id: str, x_request_id: Optional[str], x_is_resource_name: Optional[bool], sort: Optional[str], q: Optional[str], page: Optional[int], page_size: Optional[int])-\u0026gt; list[WebhookPolicy] List project webhook policies. This endpoint returns webhook policies of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) try: # List project webhook policies. api_response = api_instance.list_webhook_policies_of_project(project_name_or_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, sort=sort, q=q, page=page, page_size=page_size) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;list_webhook_policies_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] page int The page number [optional] [default to 1] page_size int The size of per","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_1","order":1,"tags":null,"title":"WebhookApi"},{"category":"WebhookApi","content":"page [optional] [default to 10] Return type list[WebhookPolicy] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top] update_webhook_policy_of_project Signature update_webhook_policy_of_project(project_name_or_id: str, webhook_policy_id: int, policy: WebhookPolicy, x_request_id: Optional[str], x_is_resource_name: Optional[bool])-\u0026gt; None Update webhook policy of a project. This endpoint is aimed to update the webhook policy of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project webhook_policy_id = 789 # int | The ID of the webhook policy policy = harbor_client.WebhookPolicy() # WebhookPolicy | All properties needed except \\\u0026#34;id\\\u0026#34;, \\\u0026#34;project_id\\\u0026#34;, \\\u0026#34;creation_time\\\u0026#34;, \\\u0026#34;update_time\\\u0026#34;. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) try: # Update webhook policy of a project. api_instance.update_webhook_policy_of_project(project_name_or_id, webhook_policy_id, policy, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name) except ApiException as e: print(\u0026#34;Exception when calling WebhookApi-\u0026gt;update_webhook_policy_of_project: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project webhook_policy_id int The ID of the webhook policy policy WebhookPolicy All properties needed except \u0026amp;quot;id\u0026amp;quot;, \u0026amp;quot;project_id\u0026amp;quot;, \u0026amp;quot;creation_time\u0026amp;quot;, \u0026amp;quot;update_time\u0026amp;quot;. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] Return type void (empty response body) Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookapi/","objectID":"5133977f845fafb4120deadf2d2031d4_2","order":2,"tags":null,"title":"WebhookApi"},{"category":"WebhookjobApi","content":"harbor_client.WebhookjobApi All URIs are relative to http://localhost/api/v2.0 Method HTTP request Description list_webhook_jobs GET /projects/{project_name_or_id}/webhook/jobs List project webhook jobs list_webhook_jobs Signature list_webhook_jobs(project_name_or_id: str, policy_id: int, x_request_id: Optional[str], x_is_resource_name: Optional[bool], q: Optional[str], sort: Optional[str], page: Optional[int], page_size: Optional[int], status: Optional[list[str]])-\u0026gt; list[WebhookJob] List project webhook jobs This endpoint returns webhook jobs of a project. Example from __future__ import print_function import time import harbor_client from harbor_client.rest import ApiException from pprint import pprint # Configure HTTP basic authorization: basic configuration = harbor_client.Configuration() configuration.username = \u0026#39;YOUR_USERNAME\u0026#39; configuration.password = \u0026#39;YOUR_PASSWORD\u0026#39; # create an instance of the API class api_instance = harbor_client.WebhookjobApi(harbor_client.ApiClient(configuration)) project_name_or_id = \u0026#39;project_name_or_id_example\u0026#39; # str | The name or id of the project policy_id = 789 # int | The policy ID. x_request_id = \u0026#39;x_request_id_example\u0026#39; # str | An unique ID for the request (optional) x_is_resource_name = false # bool | 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. (optional) (default to false) q = \u0026#39;q_example\u0026#39; # str | Query string to query resources. Supported query patterns are \\\u0026#34;exact match(k=v)\\\u0026#34;, \\\u0026#34;fuzzy match(k=~v)\\\u0026#34;, \\\u0026#34;range(k=[min~max])\\\u0026#34;, \\\u0026#34;list with union releationship(k={v1 v2 v3})\\\u0026#34; and \\\u0026#34;list with intersetion relationship(k=(v1 v2 v3))\\\u0026#34;. The value of range and list can be string(enclosed by \\\u0026#34; or \u0026#39;), integer or time(in format \\\u0026#34;2020-04-09 02:36:00\\\u0026#34;). All of these query patterns should be put in the query string \\\u0026#34;q=xxx\\\u0026#34; and splitted by \\\u0026#34;,\\\u0026#34;. e.g. q=k1=v1,k2=~v2,k3=[min~max] (optional) sort = \u0026#39;sort_example\u0026#39; # str | Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \\\u0026#34;sort=field1,-field2\\\u0026#34; (optional) page = 1 # int | The page number (optional) (default to 1) page_size = 10 # int | The size of per page (optional) (default to 10) status = [\u0026#39;status_example\u0026#39;] # list[str] | The status of webhook job. (optional) try: # List project webhook jobs api_response = api_instance.list_webhook_jobs(project_name_or_id, policy_id, x_request_id=x_request_id, x_is_resource_name=x_is_resource_name, q=q, sort=sort, page=page, page_size=page_size, status=status) pprint(api_response) except ApiException as e: print(\u0026#34;Exception when calling WebhookjobApi-\u0026gt;list_webhook_jobs: %s\\n\u0026#34; % e) Parameters Name Type Description Notes project_name_or_id str The name or id of the project policy_id int The policy ID. x_request_id str An unique ID for the request [optional] x_is_resource_name bool 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. [optional] [default to false] q str Query string to query resources. Supported query patterns are \u0026amp;quot;exact match(k=v)\u0026amp;quot;, \u0026amp;quot;fuzzy match(k=~v)\u0026amp;quot;, \u0026amp;quot;range(k=[min~max])\u0026amp;quot;, \u0026amp;quot;list with union releationship(k={v1 v2 v3})\u0026amp;quot; and \u0026amp;quot;list with intersetion relationship(k=(v1 v2 v3))\u0026amp;quot;. The value of range and list can be string(enclosed by \u0026amp;quot; or '), integer or time(in format \u0026amp;quot;2020-04-09 02:36:00\u0026amp;quot;). All of these query patterns should be put in the query string \u0026amp;quot;q=xxx\u0026amp;quot; and splitted by \u0026amp;quot;,\u0026amp;quot;. e.g. q=k1=v1,k2=~v2,k3=[min~max] [optional] sort str Sort the resource list in ascending or descending order. e.g. sort by field1 in ascending orderr and field2 in descending order with \u0026amp;quot;sort=field1,-field2\u0026amp;quot; [optional] page int The page number [optional] [default to 1] page_size int The size of per page [optional] [default to 10] status list[str] The status of webhook job. [optional] Return type list[WebhookJob] Authorization basic HTTP request headers Content-Type: application/json Accept: application/json [Back to top]","date":"0001-01-01T00:00:00Z","description":"","href":"https://container-registry.com/docs/harbor-api-client/api/webhookjobapi/","objectID":"6cd373094223010061a0c03837ec1d0e_0","order":0,"tags":null,"title":"WebhookjobApi"}] \ No newline at end of file diff --git a/authors/indika-kodagoda/index.html b/authors/indika-kodagoda/index.html index 619d1636..bbdd4485 100644 --- a/authors/indika-kodagoda/index.html +++ b/authors/indika-kodagoda/index.html @@ -1,5 +1,6 @@ Indika Kodagoda - Container Registry -

Indika

DevOps Engineer. Writer.


Passionate about continually evolving cloud computing tech. +

Indika

DevOps Engineer. Writer.


Passionate about continually evolving cloud computing tech. Loves to learn by doing things. Writes on Cloud and DevOps to share knowledge and insights.

Author posts:

How to automate Flask development workflow with Container Registry and GitHub Actions

How to automate Flask development workflow with Container Registry and GitHub Actions

The goal of this tutorial is to develop an automated workflow to build a containerized Flask application. We will run the workflow with GitHub Actions and use 8gears Container Registry as our image repository… Read on

Categories:
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/best-practice/index.xml b/blog/categories/best-practice/index.xml index 2f07f864..e3c90190 100644 --- a/blog/categories/best-practice/index.xml +++ b/blog/categories/best-practice/index.xml @@ -1 +1 @@ -Best Practice on Container Registryhttps://container-registry.com/blog/categories/best-practice/Recent content in Best Practice on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Best Practice on Container Registryhttps://container-registry.com/blog/categories/best-practice/Recent content in Best Practice on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/blog/categories/commercial-container-image-distribution/index.html b/blog/categories/commercial-container-image-distribution/index.html index 067b9d7b..9bb12dd0 100644 --- a/blog/categories/commercial-container-image-distribution/index.html +++ b/blog/categories/commercial-container-image-distribution/index.html @@ -1,9 +1,9 @@ Commercial Container Image Distribution - Container Registry

Commercial Container Image Distribution

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/commercial-container-image-distribution/index.xml b/blog/categories/commercial-container-image-distribution/index.xml index a23e89c7..430229d4 100644 --- a/blog/categories/commercial-container-image-distribution/index.xml +++ b/blog/categories/commercial-container-image-distribution/index.xml @@ -1 +1 @@ -Commercial Container Image Distribution on Container Registryhttps://container-registry.com/blog/categories/commercial-container-image-distribution/Recent content in Commercial Container Image Distribution on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +Commercial Container Image Distribution on Container Registryhttps://container-registry.com/blog/categories/commercial-container-image-distribution/Recent content in Commercial Container Image Distribution on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/categories/container-registry/index.html b/blog/categories/container-registry/index.html index e0fa7a64..e139497e 100644 --- a/blog/categories/container-registry/index.html +++ b/blog/categories/container-registry/index.html @@ -1,13 +1,13 @@ Container Registry - Container Registry

Container Registry

Getting Started with Container Registry

Getting Started with Container Registry

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories: +

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories:
Read More
3 Ways to overcome the Docker Hub pull rate limit

3 Ways to overcome the Docker Hub pull rate limit

The newly introduced Docker Hub pull rate limit affects everyone working with containers and can cause service disruption. In this post, we look at situations when the download rate limit can catch you off-guard if you are not prepared. We also outline 3 ways to overcome the Docker Hub pull rate limit while also improving security and governance.… Read on

Categories:
Read More
\ No newline at end of file +Security
Read More
\ No newline at end of file diff --git a/blog/categories/container-registry/index.xml b/blog/categories/container-registry/index.xml index 92acb5a6..94c7c604 100644 --- a/blog/categories/container-registry/index.xml +++ b/blog/categories/container-registry/index.xml @@ -1,4 +1,4 @@ -Container Registryhttps://container-registry.com/blog/categories/container-registry/Recent content on Container RegistryHugo -- gohugo.ioen-usFri, 09 Apr 2021 00:00:00 +0000Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p>3 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> +Container Registryhttps://container-registry.com/blog/categories/container-registry/Recent content on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +0100Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p>3 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> <ul> <li>You came across the new Docker Hub pull rate limit;</li> <li>You encountered the error message <code>You have reached your pull rate limit</code> diff --git a/blog/categories/containerization/index.html b/blog/categories/containerization/index.html index db613a74..ef9119ea 100644 --- a/blog/categories/containerization/index.html +++ b/blog/categories/containerization/index.html @@ -1,7 +1,7 @@ Containerization - Container Registry

Containerization

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories: +

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/containerization/index.xml b/blog/categories/containerization/index.xml index 11f33b10..8d8451b9 100644 --- a/blog/categories/containerization/index.xml +++ b/blog/categories/containerization/index.xml @@ -1,4 +1,4 @@ -Containerization on Container Registryhttps://container-registry.com/blog/categories/containerization/Recent content in Containerization on Container RegistryHugo -- gohugo.ioen-usFri, 17 Mar 2023 00:00:00 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model +Containerization on Container Registryhttps://container-registry.com/blog/categories/containerization/Recent content in Containerization on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.</p> \ No newline at end of file diff --git a/blog/categories/developer/index.html b/blog/categories/developer/index.html index d67ebdc6..be7e4167 100644 --- a/blog/categories/developer/index.html +++ b/blog/categories/developer/index.html @@ -1,13 +1,13 @@ Developer - Container Registry

Developer

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/categories/developer/index.xml b/blog/categories/developer/index.xml index 3ea75c66..1d0738fe 100644 --- a/blog/categories/developer/index.xml +++ b/blog/categories/developer/index.xml @@ -1,2 +1,2 @@ -Developer on Container Registryhttps://container-registry.com/blog/categories/developer/Recent content in Developer on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Developer on Container Registryhttps://container-registry.com/blog/categories/developer/Recent content in Developer on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/categories/experience/index.html b/blog/categories/experience/index.html index 41e23143..0c27e4c3 100644 --- a/blog/categories/experience/index.html +++ b/blog/categories/experience/index.html @@ -4,4 +4,4 @@
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/experience/index.xml b/blog/categories/experience/index.xml index e11af152..a8234615 100644 --- a/blog/categories/experience/index.xml +++ b/blog/categories/experience/index.xml @@ -1,4 +1,4 @@ -Experience on Container Registryhttps://container-registry.com/blog/categories/experience/Recent content in Experience on Container RegistryHugo -- gohugo.ioen-usTue, 28 Nov 2023 00:00:00 +0000KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a +Experience on Container Registryhttps://container-registry.com/blog/categories/experience/Recent content in Experience on Container RegistryHugo -- gohugo.ioen-usFri, 01 Dec 2023 17:55:22 +0100KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a beautiful city. As someone who only experienced the United States through movies, it felt a bit surreal at first, because around each corner or location I felt like I had seen this exact scene in a movie.</p> \ No newline at end of file diff --git a/blog/categories/harbor/index.html b/blog/categories/harbor/index.html index b2ce9f20..d5b26332 100644 --- a/blog/categories/harbor/index.html +++ b/blog/categories/harbor/index.html @@ -1,19 +1,19 @@ Harbor - Container Registry

Harbor

What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/harbor/index.xml b/blog/categories/harbor/index.xml index 361ee241..d883f57d 100644 --- a/blog/categories/harbor/index.xml +++ b/blog/categories/harbor/index.xml @@ -1,4 +1,4 @@ -Harbor on Container Registryhttps://container-registry.com/blog/categories/harbor/Recent content in Harbor on Container RegistryHugo -- gohugo.ioen-usFri, 19 Aug 2022 00:00:00 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +Harbor on Container Registryhttps://container-registry.com/blog/categories/harbor/Recent content in Harbor on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.</p>Harbor Release 2.2.0https://container-registry.com/posts/harbor-2.2.0-new-features-explained/Tue, 09 Mar 2021 00:00:00 +0000https://container-registry.com/posts/harbor-2.2.0-new-features-explained/<p>Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.</p> \ No newline at end of file diff --git a/blog/categories/isv/index.html b/blog/categories/isv/index.html index f1e83662..30b7b825 100644 --- a/blog/categories/isv/index.html +++ b/blog/categories/isv/index.html @@ -1,9 +1,9 @@ ISV - Container Registry

ISV

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/isv/index.xml b/blog/categories/isv/index.xml index da21736f..4ffa41a7 100644 --- a/blog/categories/isv/index.xml +++ b/blog/categories/isv/index.xml @@ -1 +1 @@ -ISV on Container Registryhttps://container-registry.com/blog/categories/isv/Recent content in ISV on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +ISV on Container Registryhttps://container-registry.com/blog/categories/isv/Recent content in ISV on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/categories/kubernetes/index.html b/blog/categories/kubernetes/index.html index 54f89b48..9e545ee4 100644 --- a/blog/categories/kubernetes/index.html +++ b/blog/categories/kubernetes/index.html @@ -1,13 +1,13 @@ Kubernetes - Container Registry

Kubernetes

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/categories/kubernetes/index.xml b/blog/categories/kubernetes/index.xml index ead3de22..d18c8502 100644 --- a/blog/categories/kubernetes/index.xml +++ b/blog/categories/kubernetes/index.xml @@ -1,2 +1,2 @@ -Kubernetes on Container Registryhttps://container-registry.com/blog/categories/kubernetes/Recent content in Kubernetes on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Kubernetes on Container Registryhttps://container-registry.com/blog/categories/kubernetes/Recent content in Kubernetes on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/categories/productivity/index.html b/blog/categories/productivity/index.html index d031435b..d4bc6a4c 100644 --- a/blog/categories/productivity/index.html +++ b/blog/categories/productivity/index.html @@ -1,13 +1,13 @@ Productivity - Container Registry

Productivity

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/categories/productivity/index.xml b/blog/categories/productivity/index.xml index 4d7c98b5..3965ab94 100644 --- a/blog/categories/productivity/index.xml +++ b/blog/categories/productivity/index.xml @@ -1,2 +1,2 @@ -Productivity on Container Registryhttps://container-registry.com/blog/categories/productivity/Recent content in Productivity on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Productivity on Container Registryhttps://container-registry.com/blog/categories/productivity/Recent content in Productivity on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index 66e3f844..a6c32f51 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -1,19 +1,19 @@ -Release notes - Container Registry -

Release notes

What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +Release Notes - Container Registry +

Release Notes

What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/release-notes/index.xml b/blog/categories/release-notes/index.xml index dc1048eb..f26e1c24 100644 --- a/blog/categories/release-notes/index.xml +++ b/blog/categories/release-notes/index.xml @@ -1,4 +1,4 @@ -Release notes on Container Registryhttps://container-registry.com/blog/categories/release-notes/Recent content in Release notes on Container RegistryHugo -- gohugo.ioen-usFri, 19 Aug 2022 00:00:00 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +Release Notes on Container Registryhttps://container-registry.com/blog/categories/release-notes/Recent content in Release Notes on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.</p>Harbor Release 2.2.0https://container-registry.com/posts/harbor-2.2.0-new-features-explained/Tue, 09 Mar 2021 00:00:00 +0000https://container-registry.com/posts/harbor-2.2.0-new-features-explained/<p>Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.</p> \ No newline at end of file diff --git a/blog/categories/software-vendors/index.html b/blog/categories/software-vendors/index.html index 2170c6a9..d47dd090 100644 --- a/blog/categories/software-vendors/index.html +++ b/blog/categories/software-vendors/index.html @@ -1,9 +1,9 @@ Software-Vendors - Container Registry

Software-Vendors

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/software-vendors/index.xml b/blog/categories/software-vendors/index.xml index 2e65dbb4..70212538 100644 --- a/blog/categories/software-vendors/index.xml +++ b/blog/categories/software-vendors/index.xml @@ -1 +1 @@ -Software-Vendors on Container Registryhttps://container-registry.com/blog/categories/software-vendors/Recent content in Software-Vendors on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +Software-Vendors on Container Registryhttps://container-registry.com/blog/categories/software-vendors/Recent content in Software-Vendors on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/categories/tutorial/index.html b/blog/categories/tutorial/index.html index 3ccb469e..43f04654 100644 --- a/blog/categories/tutorial/index.html +++ b/blog/categories/tutorial/index.html @@ -2,4 +2,4 @@ \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/categories/tutorial/index.xml b/blog/categories/tutorial/index.xml index 67265b77..d74d2335 100644 --- a/blog/categories/tutorial/index.xml +++ b/blog/categories/tutorial/index.xml @@ -1,3 +1,3 @@ -Tutorial on Container Registryhttps://container-registry.com/blog/categories/tutorial/Recent content in Tutorial on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 00:00:00 +0000How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. +Tutorial on Container Registryhttps://container-registry.com/blog/categories/tutorial/Recent content in Tutorial on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 22:49:44 +0100How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. This workflow will build a new container image every time a new commit is pushed to our GitHub repository. We will be using a simple Flask application for this tutorial. But you can use this workflow to build a Flask application of any complexity. We will run the workflow with GitHub Actions and use 8gears Container Registry as our image repository. \ No newline at end of file diff --git a/blog/tags/automation/index.html b/blog/tags/automation/index.html index 4dca1e95..d102f715 100644 --- a/blog/tags/automation/index.html +++ b/blog/tags/automation/index.html @@ -2,4 +2,4 @@ \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/automation/index.xml b/blog/tags/automation/index.xml index e70242fd..17a45945 100644 --- a/blog/tags/automation/index.xml +++ b/blog/tags/automation/index.xml @@ -1,3 +1,3 @@ -Automation on Container Registryhttps://container-registry.com/blog/tags/automation/Recent content in Automation on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 00:00:00 +0000How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. +Automation on Container Registryhttps://container-registry.com/blog/tags/automation/Recent content in Automation on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 22:49:44 +0100How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. This workflow will build a new container image every time a new commit is pushed to our GitHub repository. We will be using a simple Flask application for this tutorial. But you can use this workflow to build a Flask application of any complexity. We will run the workflow with GitHub Actions and use 8gears Container Registry as our image repository. \ No newline at end of file diff --git a/blog/tags/beginner/index.html b/blog/tags/beginner/index.html index 03b2275d..991307f0 100644 --- a/blog/tags/beginner/index.html +++ b/blog/tags/beginner/index.html @@ -1,7 +1,7 @@ Beginner - Container Registry \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/beginner/index.xml b/blog/tags/beginner/index.xml index a48913cf..a7790387 100644 --- a/blog/tags/beginner/index.xml +++ b/blog/tags/beginner/index.xml @@ -1 +1 @@ -Beginner on Container Registryhttps://container-registry.com/blog/tags/beginner/Recent content in Beginner on Container RegistryHugo -- gohugo.ioen-usFri, 09 Apr 2021 00:00:00 +0000Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p> \ No newline at end of file +Beginner on Container Registryhttps://container-registry.com/blog/tags/beginner/Recent content in Beginner on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p> \ No newline at end of file diff --git a/blog/tags/best-practices/index.html b/blog/tags/best-practices/index.html index f0664924..416135a5 100644 --- a/blog/tags/best-practices/index.html +++ b/blog/tags/best-practices/index.html @@ -1,8 +1,8 @@ -Best practices - Container Registry -

Best practices

Container Image Versioning

Container Image Versioning

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories: +Best Practices - Container Registry + \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/best-practices/index.xml b/blog/tags/best-practices/index.xml index e7d3c94c..4c5bb047 100644 --- a/blog/tags/best-practices/index.xml +++ b/blog/tags/best-practices/index.xml @@ -1 +1 @@ -Best practices on Container Registryhttps://container-registry.com/blog/tags/best-practices/Recent content in Best practices on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Best Practices on Container Registryhttps://container-registry.com/blog/tags/best-practices/Recent content in Best Practices on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/blog/tags/buildkit/index.html b/blog/tags/buildkit/index.html index 19c501e8..84b636f8 100644 --- a/blog/tags/buildkit/index.html +++ b/blog/tags/buildkit/index.html @@ -1,13 +1,13 @@ BuildKit - Container Registry

BuildKit

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/buildkit/index.xml b/blog/tags/buildkit/index.xml index 334d502e..aa0cdc1a 100644 --- a/blog/tags/buildkit/index.xml +++ b/blog/tags/buildkit/index.xml @@ -1,2 +1,2 @@ -BuildKit on Container Registryhttps://container-registry.com/blog/tags/buildkit/Recent content in BuildKit on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +BuildKit on Container Registryhttps://container-registry.com/blog/tags/buildkit/Recent content in BuildKit on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/changelog/index.html b/blog/tags/changelog/index.html index 76994c52..cbca4e44 100644 --- a/blog/tags/changelog/index.html +++ b/blog/tags/changelog/index.html @@ -1,19 +1,19 @@ Changelog - Container Registry

Changelog

What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/changelog/index.xml b/blog/tags/changelog/index.xml index 8a4baca1..0bef9ad7 100644 --- a/blog/tags/changelog/index.xml +++ b/blog/tags/changelog/index.xml @@ -1,4 +1,4 @@ -Changelog on Container Registryhttps://container-registry.com/blog/tags/changelog/Recent content in Changelog on Container RegistryHugo -- gohugo.ioen-usFri, 19 Aug 2022 00:00:00 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +Changelog on Container Registryhttps://container-registry.com/blog/tags/changelog/Recent content in Changelog on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.</p>Harbor Release 2.2.0https://container-registry.com/posts/harbor-2.2.0-new-features-explained/Tue, 09 Mar 2021 00:00:00 +0000https://container-registry.com/posts/harbor-2.2.0-new-features-explained/<p>Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.</p> \ No newline at end of file diff --git a/blog/tags/commercial-container-image-distribution/index.html b/blog/tags/commercial-container-image-distribution/index.html index 067b9d7b..9bb12dd0 100644 --- a/blog/tags/commercial-container-image-distribution/index.html +++ b/blog/tags/commercial-container-image-distribution/index.html @@ -1,9 +1,9 @@ Commercial Container Image Distribution - Container Registry

Commercial Container Image Distribution

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/commercial-container-image-distribution/index.xml b/blog/tags/commercial-container-image-distribution/index.xml index c8fdd543..1010b0d5 100644 --- a/blog/tags/commercial-container-image-distribution/index.xml +++ b/blog/tags/commercial-container-image-distribution/index.xml @@ -1 +1 @@ -Commercial Container Image Distribution on Container Registryhttps://container-registry.com/blog/tags/commercial-container-image-distribution/Recent content in Commercial Container Image Distribution on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +Commercial Container Image Distribution on Container Registryhttps://container-registry.com/blog/tags/commercial-container-image-distribution/Recent content in Commercial Container Image Distribution on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/tags/compliance/index.html b/blog/tags/compliance/index.html index 9ea9bb5a..e1feb0b1 100644 --- a/blog/tags/compliance/index.html +++ b/blog/tags/compliance/index.html @@ -2,7 +2,7 @@ \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/compliance/index.xml b/blog/tags/compliance/index.xml index 52e73d44..262d1a54 100644 --- a/blog/tags/compliance/index.xml +++ b/blog/tags/compliance/index.xml @@ -1,4 +1,4 @@ -Compliance on Container Registryhttps://container-registry.com/blog/tags/compliance/Recent content in Compliance on Container RegistryHugo -- gohugo.ioen-usMon, 02 Nov 2020 00:00:00 +00003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> +Compliance on Container Registryhttps://container-registry.com/blog/tags/compliance/Recent content in Compliance on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +01003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> <ul> <li>You came across the new Docker Hub pull rate limit;</li> <li>You encountered the error message <code>You have reached your pull rate limit</code> diff --git a/blog/tags/container-registry/index.html b/blog/tags/container-registry/index.html index 36afcb0b..42a324e5 100644 --- a/blog/tags/container-registry/index.html +++ b/blog/tags/container-registry/index.html @@ -3,8 +3,8 @@
Read More
Getting Started with Container Registry

Getting Started with Container Registry

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories: +

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/container-registry/index.xml b/blog/tags/container-registry/index.xml index ae46fa4f..9aab8734 100644 --- a/blog/tags/container-registry/index.xml +++ b/blog/tags/container-registry/index.xml @@ -1,3 +1,3 @@ -Container Registryhttps://container-registry.com/blog/tags/container-registry/Recent content on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 00:00:00 +0000How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. +Container Registryhttps://container-registry.com/blog/tags/container-registry/Recent content on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 22:49:44 +0100How to automate Flask development workflow with Container Registry and GitHub Actionshttps://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/posts/how-to-automate-flask-development-workflow-with-container-registry-and-github-actions/In this tutorial, we will develop an automated workflow to build a containerized Flask application. This workflow will build a new container image every time a new commit is pushed to our GitHub repository. We will be using a simple Flask application for this tutorial. But you can use this workflow to build a Flask application of any complexity. We will run the workflow with GitHub Actions and use 8gears Container Registry as our image repository.Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p> \ No newline at end of file diff --git a/blog/tags/container/index.html b/blog/tags/container/index.html index 1e05b785..5b689af4 100644 --- a/blog/tags/container/index.html +++ b/blog/tags/container/index.html @@ -1,18 +1,18 @@ Container - Container Registry

Container

Getting Started with Container Registry

Getting Started with Container Registry

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories: +

How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.… Read on

Categories:
Read More
Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/container/index.xml b/blog/tags/container/index.xml index d3994753..b32a48be 100644 --- a/blog/tags/container/index.xml +++ b/blog/tags/container/index.xml @@ -1,2 +1,2 @@ -Container on Container Registryhttps://container-registry.com/blog/tags/container/Recent content in Container on Container RegistryHugo -- gohugo.ioen-usFri, 09 Apr 2021 00:00:00 +0000Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p>Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Container on Container Registryhttps://container-registry.com/blog/tags/container/Recent content in Container on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Getting Started with Container Registryhttps://container-registry.com/posts/getting-started-with-harbor-container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/posts/getting-started-with-harbor-container-registry/<p>Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry.</p>Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/docker-build/index.html b/blog/tags/docker-build/index.html index cf98f8b3..b12c2215 100644 --- a/blog/tags/docker-build/index.html +++ b/blog/tags/docker-build/index.html @@ -1,13 +1,13 @@ -docker build - Container Registry -

docker build

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +Docker Build - Container Registry +

Docker Build

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/docker-build/index.xml b/blog/tags/docker-build/index.xml index 0ea935da..5e5d8880 100644 --- a/blog/tags/docker-build/index.xml +++ b/blog/tags/docker-build/index.xml @@ -1,2 +1,2 @@ -docker build on Container Registryhttps://container-registry.com/blog/tags/docker-build/Recent content in docker build on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Docker Build on Container Registryhttps://container-registry.com/blog/tags/docker-build/Recent content in Docker Build on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/docker-hub/index.html b/blog/tags/docker-hub/index.html index 23acb740..baf8a754 100644 --- a/blog/tags/docker-hub/index.html +++ b/blog/tags/docker-hub/index.html @@ -1,7 +1,7 @@ Docker Hub - Container Registry

Docker Hub

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories: +

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/docker-hub/index.xml b/blog/tags/docker-hub/index.xml index 6b767c6b..ae7a18e4 100644 --- a/blog/tags/docker-hub/index.xml +++ b/blog/tags/docker-hub/index.xml @@ -1,4 +1,4 @@ -Docker Hub on Container Registryhttps://container-registry.com/blog/tags/docker-hub/Recent content in Docker Hub on Container RegistryHugo -- gohugo.ioen-usFri, 17 Mar 2023 00:00:00 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model +Docker Hub on Container Registryhttps://container-registry.com/blog/tags/docker-hub/Recent content in Docker Hub on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.</p> \ No newline at end of file diff --git a/blog/tags/docker/index.html b/blog/tags/docker/index.html index 3cdd4029..5488a2b6 100644 --- a/blog/tags/docker/index.html +++ b/blog/tags/docker/index.html @@ -1,18 +1,18 @@ Docker - Container Registry

Docker

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories: +

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories:
Read More
Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +
Read More
Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/docker/index.xml b/blog/tags/docker/index.xml index 0dc50210..9b15436c 100644 --- a/blog/tags/docker/index.xml +++ b/blog/tags/docker/index.xml @@ -1,4 +1,4 @@ -Docker on Container Registryhttps://container-registry.com/blog/tags/docker/Recent content in Docker on Container RegistryHugo -- gohugo.ioen-usFri, 17 Mar 2023 00:00:00 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model +Docker on Container Registryhttps://container-registry.com/blog/tags/docker/Recent content in Docker on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.</p>Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> diff --git a/blog/tags/features/index.html b/blog/tags/features/index.html index fd79f7f4..00c16336 100644 --- a/blog/tags/features/index.html +++ b/blog/tags/features/index.html @@ -1,19 +1,19 @@ Features - Container Registry

Features

What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/features/index.xml b/blog/tags/features/index.xml index 6180dfdc..9594ac97 100644 --- a/blog/tags/features/index.xml +++ b/blog/tags/features/index.xml @@ -1,4 +1,4 @@ -Features on Container Registryhttps://container-registry.com/blog/tags/features/Recent content in Features on Container RegistryHugo -- gohugo.ioen-usFri, 19 Aug 2022 00:00:00 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +Features on Container Registryhttps://container-registry.com/blog/tags/features/Recent content in Features on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.</p>Harbor Release 2.2.0https://container-registry.com/posts/harbor-2.2.0-new-features-explained/Tue, 09 Mar 2021 00:00:00 +0000https://container-registry.com/posts/harbor-2.2.0-new-features-explained/<p>Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.</p> \ No newline at end of file diff --git a/blog/tags/governance/index.html b/blog/tags/governance/index.html index da8e1b64..f7543ead 100644 --- a/blog/tags/governance/index.html +++ b/blog/tags/governance/index.html @@ -2,7 +2,7 @@ \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/governance/index.xml b/blog/tags/governance/index.xml index 0e7e6638..349f9c06 100644 --- a/blog/tags/governance/index.xml +++ b/blog/tags/governance/index.xml @@ -1,4 +1,4 @@ -Governance on Container Registryhttps://container-registry.com/blog/tags/governance/Recent content in Governance on Container RegistryHugo -- gohugo.ioen-usMon, 02 Nov 2020 00:00:00 +00003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> +Governance on Container Registryhttps://container-registry.com/blog/tags/governance/Recent content in Governance on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +01003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> <ul> <li>You came across the new Docker Hub pull rate limit;</li> <li>You encountered the error message <code>You have reached your pull rate limit</code> diff --git a/blog/tags/harbor/index.html b/blog/tags/harbor/index.html index d3709355..36b27b27 100644 --- a/blog/tags/harbor/index.html +++ b/blog/tags/harbor/index.html @@ -5,20 +5,20 @@
Read More
What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/harbor/index.xml b/blog/tags/harbor/index.xml index ea385f6f..bf56c7dd 100644 --- a/blog/tags/harbor/index.xml +++ b/blog/tags/harbor/index.xml @@ -1,4 +1,4 @@ -Harbor on Container Registryhttps://container-registry.com/blog/tags/harbor/Recent content in Harbor on Container RegistryHugo -- gohugo.ioen-usTue, 28 Nov 2023 00:00:00 +0000KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a +Harbor on Container Registryhttps://container-registry.com/blog/tags/harbor/Recent content in Harbor on Container RegistryHugo -- gohugo.ioen-usFri, 01 Dec 2023 17:55:22 +0100KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a beautiful city. As someone who only experienced the United States through movies, it felt a bit surreal at first, because around each corner or location I felt like I had seen this exact scene in a movie.</p>What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. diff --git a/blog/tags/image-tags/index.html b/blog/tags/image-tags/index.html index f989517b..05969c06 100644 --- a/blog/tags/image-tags/index.html +++ b/blog/tags/image-tags/index.html @@ -1,8 +1,8 @@ Image Tags - Container Registry

Image Tags

Container Image Versioning

Container Image Versioning

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories: +

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/image-tags/index.xml b/blog/tags/image-tags/index.xml index d801b31f..bf65ba8f 100644 --- a/blog/tags/image-tags/index.xml +++ b/blog/tags/image-tags/index.xml @@ -1 +1 @@ -Image Tags on Container Registryhttps://container-registry.com/blog/tags/image-tags/Recent content in Image Tags on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Image Tags on Container Registryhttps://container-registry.com/blog/tags/image-tags/Recent content in Image Tags on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/blog/tags/image-versioning/index.html b/blog/tags/image-versioning/index.html index 910c1b59..e0aade97 100644 --- a/blog/tags/image-versioning/index.html +++ b/blog/tags/image-versioning/index.html @@ -1,8 +1,8 @@ Image Versioning - Container Registry

Image Versioning

Container Image Versioning

Container Image Versioning

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories: +

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/image-versioning/index.xml b/blog/tags/image-versioning/index.xml index 9721e3c2..d728f5cc 100644 --- a/blog/tags/image-versioning/index.xml +++ b/blog/tags/image-versioning/index.xml @@ -1 +1 @@ -Image Versioning on Container Registryhttps://container-registry.com/blog/tags/image-versioning/Recent content in Image Versioning on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Image Versioning on Container Registryhttps://container-registry.com/blog/tags/image-versioning/Recent content in Image Versioning on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/blog/tags/inner-loop/index.html b/blog/tags/inner-loop/index.html index 71a324b8..95616659 100644 --- a/blog/tags/inner-loop/index.html +++ b/blog/tags/inner-loop/index.html @@ -1,13 +1,13 @@ -Inner-loop - Container Registry -

Inner-loop

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +Inner-Loop - Container Registry +

Inner-Loop

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/inner-loop/index.xml b/blog/tags/inner-loop/index.xml index e553632d..ee2a0016 100644 --- a/blog/tags/inner-loop/index.xml +++ b/blog/tags/inner-loop/index.xml @@ -1,2 +1,2 @@ -Inner-loop on Container Registryhttps://container-registry.com/blog/tags/inner-loop/Recent content in Inner-loop on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Inner-Loop on Container Registryhttps://container-registry.com/blog/tags/inner-loop/Recent content in Inner-Loop on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/kubecon/index.html b/blog/tags/kubecon/index.html index 7eb2d900..2f241201 100644 --- a/blog/tags/kubecon/index.html +++ b/blog/tags/kubecon/index.html @@ -4,4 +4,4 @@
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/kubecon/index.xml b/blog/tags/kubecon/index.xml index 1292b4df..ee5478e2 100644 --- a/blog/tags/kubecon/index.xml +++ b/blog/tags/kubecon/index.xml @@ -1,4 +1,4 @@ -KubeCon on Container Registryhttps://container-registry.com/blog/tags/kubecon/Recent content in KubeCon on Container RegistryHugo -- gohugo.ioen-usTue, 28 Nov 2023 00:00:00 +0000KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a +KubeCon on Container Registryhttps://container-registry.com/blog/tags/kubecon/Recent content in KubeCon on Container RegistryHugo -- gohugo.ioen-usFri, 01 Dec 2023 17:55:22 +0100KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a beautiful city. As someone who only experienced the United States through movies, it felt a bit surreal at first, because around each corner or location I felt like I had seen this exact scene in a movie.</p> \ No newline at end of file diff --git a/blog/tags/kubectl/index.html b/blog/tags/kubectl/index.html index f3afa65c..6ca62f75 100644 --- a/blog/tags/kubectl/index.html +++ b/blog/tags/kubectl/index.html @@ -1,13 +1,13 @@ -kubectl - Container Registry -

kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +Kubectl - Container Registry +

Kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/kubectl/index.xml b/blog/tags/kubectl/index.xml index b91bb138..ddb33912 100644 --- a/blog/tags/kubectl/index.xml +++ b/blog/tags/kubectl/index.xml @@ -1,2 +1,2 @@ -kubectl on Container Registryhttps://container-registry.com/blog/tags/kubectl/Recent content in kubectl on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Kubectl on Container Registryhttps://container-registry.com/blog/tags/kubectl/Recent content in Kubectl on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/kubernetes/index.html b/blog/tags/kubernetes/index.html index 54f89b48..9e545ee4 100644 --- a/blog/tags/kubernetes/index.html +++ b/blog/tags/kubernetes/index.html @@ -1,13 +1,13 @@ Kubernetes - Container Registry

Kubernetes

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Lifting Developers’ Productivity with BuildKit CLI for kubectl

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories: +

Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.

What if there was some magical tool that you could simply feed instructions like: “Build this Dockerfile here and replace any existing image on that Kubernetes cluster with the results!” ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.

… Read on

Categories:
Read More
\ No newline at end of file + +
Read More
\ No newline at end of file diff --git a/blog/tags/kubernetes/index.xml b/blog/tags/kubernetes/index.xml index 5dd4a6ca..870da2b2 100644 --- a/blog/tags/kubernetes/index.xml +++ b/blog/tags/kubernetes/index.xml @@ -1,2 +1,2 @@ -Kubernetes on Container Registryhttps://container-registry.com/blog/tags/kubernetes/Recent content in Kubernetes on Container RegistryHugo -- gohugo.ioen-usThu, 07 Jan 2021 00:00:00 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> +Kubernetes on Container Registryhttps://container-registry.com/blog/tags/kubernetes/Recent content in Kubernetes on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Lifting Developers’ Productivity with BuildKit CLI for kubectlhttps://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/posts/productivity-lift-buildkit-cli-for-kubectl/<p>Developing and testing software on Kubernetes usually means building and moving container images from the developer workstation to a container registry, and ultimately, Kubernetes. When considering all the moving parts, the complexity and context switches break the development flow. Gone are the days where developers just hit a command and a few seconds later the newly built software is ready for testing.</p> <p>What if there was some magical tool that you could simply feed instructions like: &ldquo;Build this Dockerfile <em>here</em> and replace any existing image on <em>that</em> Kubernetes cluster with the results!&rdquo; ASAP. Spoiler Alert! That is exactly what BuildKit CLI for kubectl is there to do.</p> \ No newline at end of file diff --git a/blog/tags/rate-limit/index.html b/blog/tags/rate-limit/index.html index 94fa8ea4..eaca7fff 100644 --- a/blog/tags/rate-limit/index.html +++ b/blog/tags/rate-limit/index.html @@ -1,13 +1,13 @@ -Rate-Limit - Container Registry -

Rate-Limit

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories: +Rate Limit - Container Registry +

Rate Limit

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

How Does Dockers Decision of Sunsetting Free Team Organizations Impacts You

Even if you don’t have a team organization and what you can do about it. Docker Inc. continues on its course of eliminating free offerings: Now the "Docker Free Team" model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.… Read on

Categories:
Read More
3 Ways to overcome the Docker Hub pull rate limit

3 Ways to overcome the Docker Hub pull rate limit

3 Ways to overcome the Docker Hub pull rate limit

3 Ways to overcome the Docker Hub pull rate limit

The newly introduced Docker Hub pull rate limit affects everyone working with containers and can cause service disruption. In this post, we look at situations when the download rate limit can catch you off-guard if you are not prepared. We also outline 3 ways to overcome the Docker Hub pull rate limit while also improving security and governance.… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/rate-limit/index.xml b/blog/tags/rate-limit/index.xml index abb4a20b..9ad2fe53 100644 --- a/blog/tags/rate-limit/index.xml +++ b/blog/tags/rate-limit/index.xml @@ -1,4 +1,4 @@ -Rate-Limit on Container Registryhttps://container-registry.com/blog/tags/rate-limit/Recent content in Rate-Limit on Container RegistryHugo -- gohugo.ioen-usFri, 17 Mar 2023 00:00:00 +0000How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model +Rate Limit on Container Registryhttps://container-registry.com/blog/tags/rate-limit/Recent content in Rate Limit on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +0100How Does Dockers Decision of Sunsetting Free Team Organizations Impacts Youhttps://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/posts/how-does-dockers-decision-of-sunsetting-free-team-organizations-impacts-you/<p>Docker Inc. continues on its course of eliminating free offerings: Now the &ldquo;Docker Free Team&rdquo; model has to take its turn. With the «Free Team Organizations» offering, it was possible to publish public container images for free in Docker Hub. Many open-source projects have taken advantage of the offer; however, the impact is affecting everyone.</p>3 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> diff --git a/blog/tags/security/index.html b/blog/tags/security/index.html index 3b6a5b2e..0322d52f 100644 --- a/blog/tags/security/index.html +++ b/blog/tags/security/index.html @@ -2,7 +2,7 @@ \ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/security/index.xml b/blog/tags/security/index.xml index fea6195d..6e2dc488 100644 --- a/blog/tags/security/index.xml +++ b/blog/tags/security/index.xml @@ -1,4 +1,4 @@ -Security on Container Registryhttps://container-registry.com/blog/tags/security/Recent content in Security on Container RegistryHugo -- gohugo.ioen-usMon, 02 Nov 2020 00:00:00 +00003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> +Security on Container Registryhttps://container-registry.com/blog/tags/security/Recent content in Security on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +01003 Ways to overcome the Docker Hub pull rate limithttps://container-registry.com/posts/overcome-docker-hub-rate-limit/Mon, 02 Nov 2020 00:00:00 +0000https://container-registry.com/posts/overcome-docker-hub-rate-limit/<p>As someone who is working with Docker Container images, you are here for one of the following reasons:</p> <ul> <li>You came across the new Docker Hub pull rate limit;</li> <li>You encountered the error message <code>You have reached your pull rate limit</code> diff --git a/blog/tags/sell-container-images/index.html b/blog/tags/sell-container-images/index.html index 7396c07a..dab7492d 100644 --- a/blog/tags/sell-container-images/index.html +++ b/blog/tags/sell-container-images/index.html @@ -1,9 +1,9 @@ Sell Container Images - Container Registry

Sell Container Images

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/sell-container-images/index.xml b/blog/tags/sell-container-images/index.xml index 1bb7c9a8..a400b6a0 100644 --- a/blog/tags/sell-container-images/index.xml +++ b/blog/tags/sell-container-images/index.xml @@ -1 +1 @@ -Sell Container Images on Container Registryhttps://container-registry.com/blog/tags/sell-container-images/Recent content in Sell Container Images on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +Sell Container Images on Container Registryhttps://container-registry.com/blog/tags/sell-container-images/Recent content in Sell Container Images on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/tags/semantic-versioning/index.html b/blog/tags/semantic-versioning/index.html index 040fc55c..014b2f79 100644 --- a/blog/tags/semantic-versioning/index.html +++ b/blog/tags/semantic-versioning/index.html @@ -1,8 +1,8 @@ Semantic Versioning - Container Registry

Semantic Versioning

Container Image Versioning

Container Image Versioning

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories: +

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/semantic-versioning/index.xml b/blog/tags/semantic-versioning/index.xml index 47aefb72..0fcaae0d 100644 --- a/blog/tags/semantic-versioning/index.xml +++ b/blog/tags/semantic-versioning/index.xml @@ -1 +1 @@ -Semantic Versioning on Container Registryhttps://container-registry.com/blog/tags/semantic-versioning/Recent content in Semantic Versioning on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Semantic Versioning on Container Registryhttps://container-registry.com/blog/tags/semantic-versioning/Recent content in Semantic Versioning on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/blog/tags/stripe/index.html b/blog/tags/stripe/index.html index ada5cf1d..5f1142de 100644 --- a/blog/tags/stripe/index.html +++ b/blog/tags/stripe/index.html @@ -1,9 +1,9 @@ Stripe - Container Registry

Stripe

Distributing Commercial Software Through Container Images

Distributing Commercial Software Through Container Images

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories: +

When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today’s mainstream products. Choosing the right container registry that meets ISVs requirements is crucial to satisfy vendors and meet client expectations.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/stripe/index.xml b/blog/tags/stripe/index.xml index e24ea4b8..59bdf19a 100644 --- a/blog/tags/stripe/index.xml +++ b/blog/tags/stripe/index.xml @@ -1 +1 @@ -Stripe on Container Registryhttps://container-registry.com/blog/tags/stripe/Recent content in Stripe on Container RegistryHugo -- gohugo.ioen-usSun, 07 Feb 2021 00:00:00 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file +Stripe on Container Registryhttps://container-registry.com/blog/tags/stripe/Recent content in Stripe on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Distributing Commercial Software Through Container Imageshttps://container-registry.com/posts/distributing-commercial-software-through-container-images/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/posts/distributing-commercial-software-through-container-images/<p>When delivering software to clients, many independent software vendors (ISVs) still rely on methods involving traditional software packaging methods such as downloadable binaries, ZIPs, or other type of compressed delivery. These distribution approaches are often OS specific. As a result, developers are forced to spend precious time on tailoring software delivery rather than innovation. Containerization is already simplifying software delivery for many of today&rsquo;s mainstream products. Choosing the right <a href="https://container-registry.com">container registry that meets ISVs requirements</a> is crucial to satisfy vendors and meet client expectations.</p> \ No newline at end of file diff --git a/blog/tags/updates/index.html b/blog/tags/updates/index.html index fed35d3b..e83578aa 100644 --- a/blog/tags/updates/index.html +++ b/blog/tags/updates/index.html @@ -5,20 +5,20 @@
Read More
What's new in Harbor 2.6

What's new in Harbor 2.6

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. +

Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. With over 150 enhancements and bug fixes, this release further improves stability and reliability. The deprecation hits Notary and ChartMuseum, which was used in Harbor to store Helm Chart Repositories.

… Read on

Categories: -
Read More
Harbor Release 2.2.0

Harbor Release 2.2.0

Harbor 2.2.0 was just released and comes with some very interesting features. +

Harbor 2.2.0 was just released and comes with some very interesting features. This post walks you through the newly added features and changes explaining the capabilities. Since the last release of v2.1.0 in September 2020, eleven contributors made 41 changes and resolved 189 issues.

… Read on

Categories: -
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/updates/index.xml b/blog/tags/updates/index.xml index 093c9c8f..2e5c2197 100644 --- a/blog/tags/updates/index.xml +++ b/blog/tags/updates/index.xml @@ -1,4 +1,4 @@ -Updates on Container Registryhttps://container-registry.com/blog/tags/updates/Recent content in Updates on Container RegistryHugo -- gohugo.ioen-usTue, 28 Nov 2023 00:00:00 +0000KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a +Updates on Container Registryhttps://container-registry.com/blog/tags/updates/Recent content in Updates on Container RegistryHugo -- gohugo.ioen-usFri, 01 Dec 2023 17:55:22 +0100KubeCon North America 2023 – The Takeawayshttps://container-registry.com/posts/2023-kubecon-chicago-takeaways/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/posts/2023-kubecon-chicago-takeaways/<p>This year&rsquo;s North America edition of the KubeCon took place in Chicago. What a beautiful city. As someone who only experienced the United States through movies, it felt a bit surreal at first, because around each corner or location I felt like I had seen this exact scene in a movie.</p>What's new in Harbor 2.6https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/posts/whats-new-in-harbor-version-2.6.0/<p>Harbor 2.6 is about to land in the next days containing some long-awaited functionalities and two important deprecations. diff --git a/blog/tags/versioning-strategy/index.html b/blog/tags/versioning-strategy/index.html index 031af1b5..0d59b5b2 100644 --- a/blog/tags/versioning-strategy/index.html +++ b/blog/tags/versioning-strategy/index.html @@ -1,8 +1,8 @@ Versioning Strategy - Container Registry

Versioning Strategy

Container Image Versioning

Container Image Versioning

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories: +

Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.

… Read on

Categories:
Read More
\ No newline at end of file +
Read More
\ No newline at end of file diff --git a/blog/tags/versioning-strategy/index.xml b/blog/tags/versioning-strategy/index.xml index 67643ae2..d54a0ffc 100644 --- a/blog/tags/versioning-strategy/index.xml +++ b/blog/tags/versioning-strategy/index.xml @@ -1 +1 @@ -Versioning Strategy on Container Registryhttps://container-registry.com/blog/tags/versioning-strategy/Recent content in Versioning Strategy on Container RegistryHugo -- gohugo.ioen-usThu, 09 Sep 2021 00:00:00 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file +Versioning Strategy on Container Registryhttps://container-registry.com/blog/tags/versioning-strategy/Recent content in Versioning Strategy on Container RegistryHugo -- gohugo.ioen-usThu, 30 Mar 2023 01:07:02 +0000Container Image Versioninghttps://container-registry.com/posts/container-image-versioning/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/posts/container-image-versioning/<p>Containers have simplified how we develop and deploy software. The way in which container images are managed is a critical component of a smooth CI/CD process. Container Registries act as trusted intermediaries between development and runtime environments for containerized applications.</p> \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index faadcf23..0b3f81d8 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,7 @@ Categories - Container Registry -

Categories

- - + \ No newline at end of file +
\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml index 97a3e5eb..2a7371d5 100644 --- a/categories/index.xml +++ b/categories/index.xml @@ -1 +1 @@ -Categories on Container Registryhttps://container-registry.com/categories/Recent content in Categories on Container RegistryHugo -- gohugo.ioen-usSun, 10 Dec 2023 00:00:00 +0000Tutorialhttps://container-registry.com/blog/categories/tutorial/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/blog/categories/tutorial/Experiencehttps://container-registry.com/blog/categories/experience/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/blog/categories/experience/Containerizationhttps://container-registry.com/blog/categories/containerization/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/blog/categories/containerization/Harborhttps://container-registry.com/blog/categories/harbor/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/blog/categories/harbor/Release noteshttps://container-registry.com/blog/categories/release-notes/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/blog/categories/release-notes/Best Practicehttps://container-registry.com/blog/categories/best-practice/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/blog/categories/best-practice/Container Registryhttps://container-registry.com/blog/categories/container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/blog/categories/container-registry/Commercial Container Image Distributionhttps://container-registry.com/blog/categories/commercial-container-image-distribution/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/commercial-container-image-distribution/ISVhttps://container-registry.com/blog/categories/isv/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/isv/Software-Vendorshttps://container-registry.com/blog/categories/software-vendors/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/software-vendors/Developerhttps://container-registry.com/blog/categories/developer/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/developer/Kuberneteshttps://container-registry.com/blog/categories/kubernetes/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/kubernetes/Productivityhttps://container-registry.com/blog/categories/productivity/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/productivity/ \ No newline at end of file +Categories on Container Registryhttps://container-registry.com/categories/Recent content in Categories on Container RegistryHugo -- gohugo.ioen-usWed, 13 Dec 2023 10:59:32 +0100Tutorialhttps://container-registry.com/blog/categories/tutorial/Sun, 10 Dec 2023 00:00:00 +0000https://container-registry.com/blog/categories/tutorial/Experiencehttps://container-registry.com/blog/categories/experience/Tue, 28 Nov 2023 00:00:00 +0000https://container-registry.com/blog/categories/experience/Containerizationhttps://container-registry.com/blog/categories/containerization/Fri, 17 Mar 2023 00:00:00 +0000https://container-registry.com/blog/categories/containerization/Harborhttps://container-registry.com/blog/categories/harbor/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/blog/categories/harbor/Release Noteshttps://container-registry.com/blog/categories/release-notes/Fri, 19 Aug 2022 00:00:00 +0000https://container-registry.com/blog/categories/release-notes/Best Practicehttps://container-registry.com/blog/categories/best-practice/Thu, 09 Sep 2021 00:00:00 +0000https://container-registry.com/blog/categories/best-practice/Container Registryhttps://container-registry.com/blog/categories/container-registry/Fri, 09 Apr 2021 00:00:00 +0000https://container-registry.com/blog/categories/container-registry/Commercial Container Image Distributionhttps://container-registry.com/blog/categories/commercial-container-image-distribution/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/commercial-container-image-distribution/ISVhttps://container-registry.com/blog/categories/isv/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/isv/Software-Vendorshttps://container-registry.com/blog/categories/software-vendors/Sun, 07 Feb 2021 00:00:00 +0000https://container-registry.com/blog/categories/software-vendors/Developerhttps://container-registry.com/blog/categories/developer/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/developer/Kuberneteshttps://container-registry.com/blog/categories/kubernetes/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/kubernetes/Productivityhttps://container-registry.com/blog/categories/productivity/Thu, 07 Jan 2021 00:00:00 +0000https://container-registry.com/blog/categories/productivity/ \ No newline at end of file diff --git a/contact/index.xml b/contact/index.xml index b3480cfc..67b564a2 100644 --- a/contact/index.xml +++ b/contact/index.xml @@ -1 +1 @@ -Contact Us on Container Registryhttps://container-registry.com/contact/Recent content in Contact Us on Container RegistryHugo -- gohugo.ioen-usThu, 22 Feb 2018 17:01:34 +0700Meet with Vadim from Container Registryhttps://container-registry.com/contact/vadim/Sun, 12 Jun 2022 00:00:00 +0000https://container-registry.com/contact/vadim/Improve your containerized workflowhttps://container-registry.com/contact/containerized-workflow-improvement/Mon, 01 Jan 0001 00:00:00 +0000https://container-registry.com/contact/containerized-workflow-improvement/Improve Your Containerized Image Management Meet our experts for a free and individual session on how to improve your containerized workflow.Technical Supporthttps://container-registry.com/contact/support/Mon, 01 Jan 0001 00:00:00 +0000https://container-registry.com/contact/support/Technical Support Get in touch with our live technical support. \ No newline at end of file +Contact Us on Container Registryhttps://container-registry.com/contact/Recent content in Contact Us on Container RegistryHugo -- gohugo.ioen-usTue, 19 Sep 2023 10:36:41 +0200Meet with Vadim from Container Registryhttps://container-registry.com/contact/vadim/Sun, 12 Jun 2022 00:00:00 +0000https://container-registry.com/contact/vadim/Improve your containerized workflowhttps://container-registry.com/contact/containerized-workflow-improvement/Mon, 01 Jan 0001 00:00:00 +0000https://container-registry.com/contact/containerized-workflow-improvement/Improve Your Containerized Image Management Meet our experts for a free and individual session on how to improve your containerized workflow.Technical Supporthttps://container-registry.com/contact/support/Mon, 01 Jan 0001 00:00:00 +0000https://container-registry.com/contact/support/Technical Support Get in touch with our live technical support. \ No newline at end of file diff --git a/docs/administration-manual/authentication/database-authentication/index.html b/docs/administration-manual/authentication/database-authentication/index.html index ad166c14..77dd7001 100644 --- a/docs/administration-manual/authentication/database-authentication/index.html +++ b/docs/administration-manual/authentication/database-authentication/index.html @@ -4,7 +4,7 @@

This guide assumes that you are familiar with ChartMuseum and Helm Charts.

Logging Into to Your Registry

To install, push or pull Helm Charts in and from your private registry, you need to log in to it first.

TIP

For quick local testing, you can use your username and password or in the case of OIDC the CLI secret, for production and CI/CD environments; we strongly recommended the use of robot @@ -45,5 +47,5 @@ with much effort. The commands are similar and there are fewer steps needed to install charts

Additional Recommendations for OCI Helm Chart Users

Migration from ChartMuseum to OCI based Helm Charts can be done without much effort and even adds some advantages. We recommend using OCI based Helm Charts for new projects and migrating existing projects to OCI based Helm Charts.

To ease the migration, there are a few tools available.

docker run -ti --rm 8gears.container-registry.com/library/chartmuseum2oci --url $HARBOR_URL --username $HARBOR_USER --password $HARBOR_PASSWORD
-

In cases when you depend on third party Helm Chart that are ChartMuseum based, +

In cases when you depend on third-party Helm Chart that are ChartMuseum based, you can transparently proxy those Charts as OCI artifacts using the Helm Chart OCI Proxy.

\ No newline at end of file diff --git a/docs/harbor-api-client/api/artifactapi/index.html b/docs/harbor-api-client/api/artifactapi/index.html index fbd28f55..d1ea6b28 100644 --- a/docs/harbor-api-client/api/artifactapi/index.html +++ b/docs/harbor-api-client/api/artifactapi/index.html @@ -4,7 +4,7 @@