Updated on 2025-09-30 GMT+08:00

Editing Image Repository Access Information

Function

This API is used to edit image repository access information.

Calling Method

For details, see Calling APIs.

URI

PUT /v5/{project_id}/image/registries/{id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition

Project ID, which is used to specify the project that an asset belongs to. After the project ID is configured, you can query assets in the project using the project ID. For details about how to obtain it, see Obtaining a Project ID.

Constraints

N/A

Range

The value can contain 1 to 256 characters.

Default Value

N/A

id

Yes

String

Definition

Repository ID.

Constraints

N/A

Range

Length: 1 to 64 characters

Default Value

N/A

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

enterprise_project_id

No

String

Definition

Enterprise project ID, which is used to filter assets in different enterprise projects. For details, see Obtaining an Enterprise Project ID.

To query assets in all enterprise projects, set this parameter to all_granted_eps.

Constraints

You need to set this parameter only after the enterprise project function is enabled.

Range

The value can contain 1 to 256 characters.

Default Value

0: default enterprise project.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition

User token, which contains user identity and permissions. The token can be used for identity authentication when an API is called. For details about how to obtain the token, see Obtaining a User Token.

Constraints

N/A

Range

The value can contain 1 to 32,768 characters.

Default Value

N/A

Table 4 Request body parameters

Parameter

Mandatory

Type

Description

api_version

No

String

Definition

Image repository API version.

Constraints

N/A

Range

  • V1: V1 version

  • V2: V2 version

Default Value

N/A

protocol

No

String

Definition

Protocol type.

Constraints

N/A

Range

  • http: HTTP protocol

  • https: HTTPS protocol

Default Value

N/A

registry_addr

No

String

Definition

Image Repository Address

Constraints

URL or IP:Port. Example: myharbor.com

Range

Length: 1 to 256 characters

Default Value

N/A

registry_username

No

String

Definition

Username for logging in to the image repository.

Constraints

N/A

Range

Length: 1 to 128 characters

Default Value

N/A

registry_password

No

String

Definition

Password for logging in to the image repository. The image repository password is used only to access the image repository. HSS does not store your image repository password.

Constraints

N/A

Range

Length: 1 to 128 characters

Default Value

N/A

namespace

No

String

Definition

Image repository project, which is used to specify the image repository directory that the scan component is to be uploaded to. This parameter is mandatory if get_scan_image_channel is set to Other.

Constraints

N/A

Range

Length: 1 to 128 characters

Default Value

N/A

connect_cluster_id

No

String

Definition

Jumper cluster ID. Select a cluster that has been connected to HSS as the jumper cluster. The image synchronization component and scan component will run on the cluster as tasks to help HSS obtain your image information and scan for image security risks.

Constraints

N/A

Range

Length: 1 to 64 characters

Default Value

N/A

get_scan_image_channel

No

String

Definition

Method of obtaining the scan component.

Constraints

N/A

Range

  • Swr: Access SWR to obtain the scan component.

  • Other: Manually upload the scan component to the jumper cluster. If you select this mode, you need to call the /v5/{project_id}/image/registries/image-upload-command API to obtain the image upload command of the scan component.

Default Value

N/A

Response Parameters

Status code: 200

Request succeeded.

None

Example Requests

Edit the access information of the third-party image repository.

PUT https://{endpoint}/v5/{project_id}/image/registries/ea325892-xxxx-4e2c-bca4-409b8853556b?enterprise_project_id=all_granted_eps

{
  "registry_username" : "me",
  "registry_password" : 123456
}

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

Edit the access information of the third-party image repository.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.hss.v5.region.HssRegion;
import com.huaweicloud.sdk.hss.v5.*;
import com.huaweicloud.sdk.hss.v5.model.*;


public class UpdateRegistrySolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdateRegistryRequest request = new UpdateRegistryRequest();
        request.withId("{id}");
        UpdateRegistryRequestBody body = new UpdateRegistryRequestBody();
        body.withRegistryPassword("123456");
        body.withRegistryUsername("me");
        request.withBody(body);
        try {
            UpdateRegistryResponse response = client.updateRegistry(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Edit the access information of the third-party image repository.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkhss.v5.region.hss_region import HssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkhss.v5 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = HssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(HssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpdateRegistryRequest()
        request.id = "{id}"
        request.body = UpdateRegistryRequestBody(
            registry_password="123456",
            registry_username="me"
        )
        response = client.update_registry(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Edit the access information of the third-party image repository.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := hss.NewHssClient(
        hss.HssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdateRegistryRequest{}
	request.Id = "{id}"
	registryPasswordUpdateRegistryRequestBody:= "123456"
	registryUsernameUpdateRegistryRequestBody:= "me"
	request.Body = &model.UpdateRegistryRequestBody{
		RegistryPassword: &registryPasswordUpdateRegistryRequestBody,
		RegistryUsername: &registryUsernameUpdateRegistryRequestBody,
	}
	response, err := client.UpdateRegistry(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Request succeeded.

Error Codes

See Error Codes.