更新时间:2024-04-12 GMT+08:00
分享

查询swr镜像仓库镜像列表

功能介绍

查询swr镜像仓库镜像列表,如果需要从swr同步最新镜像,需要先调用“从swr同步镜像”接口

调用方法

请参见如何调用API

URI

GET /v5/{project_id}/image/swr-repository

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目ID

最小长度:1

最大长度:256

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

租户企业项目ID,查询所有企业项目时填写:all_granted_eps

缺省值:0

最小长度:1

最大长度:256

namespace

String

组织名称

最小长度:1

最大长度:256

image_name

String

镜像名称 id

最小长度:1

最大长度:128

image_version

String

镜像版本

最小长度:1

最大长度:64

latest_version

Boolean

仅关注最新版本镜像

缺省值:false

offset

Integer

偏移量:指定返回记录的开始位置,必须为数字,取值范围为大于或等于0,默认0

最小值:0

最大值:2000000

缺省值:0

limit

Integer

每页显示个数

最小值:10

最大值:200

缺省值:10

image_type

String

镜像类型,包含如下:

  • private_image : 私有镜像仓库

  • shared_image : 共享镜像仓库

  • local_image : 本地镜像

  • instance_image : 企业镜像

最小长度:1

最大长度:32

scan_status

String

扫描状态,包含如下:

  • unscan : 未扫描

  • success : 扫描完成

  • scanning : 扫描中

  • failed : 扫描失败

  • waiting_for_scan : 等待扫描

最小长度:0

最大长度:32

instance_name

String

企业镜像实例名称

最小长度:0

最大长度:128

image_size

Long

镜像大小

最小值:0

最大值:2147483547

缺省值:0

start_latest_update_time

Long

创建时间开始日期,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

缺省值:0

end_latest_update_time

Long

创建时间结束日期,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

缺省值:0

start_latest_scan_time

Long

最近一次扫描完成时间开始日期,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

缺省值:0

end_latest_scan_time

Long

最近一次扫描完成时间结束日期,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

缺省值:0

has_malicious_file

Boolean

是否存在恶意文件

has_unsafe_setting

Boolean

是否存在基线检查

has_vul

Boolean

是否存在软件漏洞

instance_id

String

企业仓库实例ID,swr共享版无需使用该参数

最小长度:0

最大长度:128

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)

最小长度:1

最大长度:32768

region

String

Region ID

最小长度:0

最大长度:128

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

total_num

Integer

总数

最小值:0

最大值:2147483547

data_list

Array of PrivateImageRepositoryInfo objects

查询swr镜像仓库镜像列表

数组长度:0 - 200

表5 PrivateImageRepositoryInfo

参数

参数类型

描述

id

Long

id

最小值:0

最大值:2147483547

namespace

String

命名空间

最小长度:0

最大长度:64

image_name

String

镜像名称

最小长度:0

最大长度:128

image_id

String

镜像id

最小长度:0

最大长度:64

image_digest

String

镜像digest

最小长度:0

最大长度:128

image_version

String

镜像版本

最小长度:0

最大长度:64

image_type

String

镜像类型,包含如下2种。

  • private_image :私有镜像。

  • shared_image :共享镜像。

最小长度:0

最大长度:64

latest_version

Boolean

是否是最新版本

scan_status

String

扫描状态,包含如下2种。

  • unscan :未扫描。

  • success :扫描完成。

  • scanning :正在扫描。

  • failed :扫描失败。

  • download_failed :下载失败。

  • image_oversized :镜像超大。

  • waiting_for_scan :等待扫描。

最小长度:0

最大长度:64

scan_failed_desc

String

扫描失败原因,包含如下14种。

  • "unknown_error" :未知错误

  • "authentication_failed":认证失败

  • "download_failed":镜像下载失败

  • "image_over_sized":镜像大小超限

  • "image_oversized":镜像超大

  • "failed_to_scan_vulnerability":漏洞扫描失败

  • "failed_to_scan_file":文件扫描失败

  • "failed_to_scan_software":软件扫描失败

  • "failed_to_check_sensitive_information":敏感信息核查失败

  • "failed_to_check_baseline":基线检查失败

  • "failed_to_check_software_compliance":软件合规检查失败

  • "failed_to_query_basic_image_information":基础镜像信息查询失败

  • "response_timed_out":响应超时

  • "database_error" : 数据库错误

  • "failed_to_send_the_scan_request" : 发送扫描请求失败

最小长度:0

最大长度:64

image_size

Long

镜像大小

最小值:0

最大值:2147483547

latest_update_time

Long

镜像版本最后更新时间,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

latest_scan_time

Long

最近扫描时间,时间单位 毫秒(ms)

最小值:0

最大值:4070880000000

vul_num

Integer

漏洞个数

最小值:0

最大值:2147483647

unsafe_setting_num

Integer

基线扫描未通过数

最小值:0

最大值:2147483647

malicious_file_num

Integer

恶意文件数

最小值:0

最大值:2147483647

domain_name

String

拥有者(共享镜像参数)

最小长度:0

最大长度:128

shared_status

String

共享镜像状态,包含如下2种。

  • expired :已过期。

  • effective :有效。

最小长度:1

最大长度:32

scannable

Boolean

是否可扫描

instance_name

String

企业版镜像实例名称

最小长度:0

最大长度:128

instance_id

String

企业版镜像实例ID

最小长度:0

最大长度:64

instance_url

String

企业版镜像实例URL

最小长度:0

最大长度:256

association_images

Array of AssociateImages objects

多架构关联镜像信息

数组长度:0 - 200

表6 AssociateImages

参数

参数类型

描述

image_name

String

镜像名称

最小长度:0

最大长度:128

image_version

String

镜像版本

最小长度:0

最大长度:64

image_type

String

镜像类型

最小长度:0

最大长度:64

namespace

String

命名空间

最小长度:0

最大长度:64

image_digest

String

镜像digest

最小长度:0

最大长度:128

scan_status

String

扫描状态,包含如下2种。

  • unscan :未扫描。

  • success :扫描完成。

  • scanning :正在扫描。

  • failed :扫描失败。

  • download_failed :下载失败。

  • image_oversized :镜像超大。

  • waiting_for_scan :等待扫描。

最小长度:0

最大长度:32

请求示例

查询镜像类型为私有镜像的swr镜像仓库镜像列表。

GET https://{endpoint}/v5/{project_id}/image/swr-repository?offset=0&limit=50&image_type=private_image&latest_version=false&enterprise_project_id=all_granted_eps

响应示例

状态码: 200

查询swr镜像仓库镜像列表,包括私有镜像列表和共享镜像列表(通过传参image_type控制)

{
  "total_num" : 3,
  "data_list" : [ {
    "id" : "111(私有镜像举例)",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "centos7",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "private_image",
    "image_version" : "common",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "success",
    "scannable" : true,
    "unsafe_setting_num" : 1,
    "vul_num" : 111,
    "instance_name" : "",
    "instance_id" : "",
    "instance_url" : ""
  }, {
    "id" : "222(共享镜像举例)",
    "domain_name" : "scc_cgs_XXX",
    "shared_status" : "effective",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "mysql",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "shared_image",
    "image_version" : "5.5",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "success",
    "scannable" : true,
    "unsafe_setting_num" : 1,
    "vul_num" : 111,
    "instance_name" : "",
    "instance_id" : "",
    "instance_url" : ""
  }, {
    "id" : "333(企业镜像举例)",
    "domain_name" : "scc_cgs_XXX",
    "shared_status" : "effective",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "mysql",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "shared_image",
    "image_version" : "5.5",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "success",
    "scannable" : true,
    "unsafe_setting_num" : 1,
    "vul_num" : 111,
    "instance_name" : "企业实例名称",
    "instance_id" : "",
    "instance_url" : ""
  } ]
}

SDK代码示例

SDK代码示例如下。

 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
53
54
55
56
57
58
59
60
61
62
63
64
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 ListSwrImageRepositorySolution {

    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");

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

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        ListSwrImageRepositoryRequest request = new ListSwrImageRepositoryRequest();
        request.withEnterpriseProjectId("<enterprise_project_id>");
        request.withNamespace("<namespace>");
        request.withImageName("<image_name>");
        request.withImageVersion("<image_version>");
        request.withLatestVersion(<latest_version>);
        request.withOffset(<offset>);
        request.withLimit(<limit>);
        request.withImageType("<image_type>");
        request.withScanStatus("<scan_status>");
        request.withInstanceName("<instance_name>");
        request.withImageSize(<image_size>L);
        request.withStartLatestUpdateTime(<start_latest_update_time>L);
        request.withEndLatestUpdateTime(<end_latest_update_time>L);
        request.withStartLatestScanTime(<start_latest_scan_time>L);
        request.withEndLatestScanTime(<end_latest_scan_time>L);
        request.withHasMaliciousFile(<has_malicious_file>);
        request.withHasUnsafeSetting(<has_unsafe_setting>);
        request.withHasVul(<has_vul>);
        request.withInstanceId("<instance_id>");
        try {
            ListSwrImageRepositoryResponse response = client.listSwrImageRepository(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());
        }
    }
}
 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
# coding: utf-8

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 = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

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

    try:
        request = ListSwrImageRepositoryRequest()
        request.enterprise_project_id = "<enterprise_project_id>"
        request.namespace = "<namespace>"
        request.image_name = "<image_name>"
        request.image_version = "<image_version>"
        request.latest_version = <LatestVersion>
        request.offset = <offset>
        request.limit = <limit>
        request.image_type = "<image_type>"
        request.scan_status = "<scan_status>"
        request.instance_name = "<instance_name>"
        request.image_size = <image_size>
        request.start_latest_update_time = <start_latest_update_time>
        request.end_latest_update_time = <end_latest_update_time>
        request.start_latest_scan_time = <start_latest_scan_time>
        request.end_latest_scan_time = <end_latest_scan_time>
        request.has_malicious_file = <HasMaliciousFile>
        request.has_unsafe_setting = <HasUnsafeSetting>
        request.has_vul = <HasVul>
        request.instance_id = "<instance_id>"
        response = client.list_swr_image_repository(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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")

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

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

    request := &model.ListSwrImageRepositoryRequest{}
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	namespaceRequest:= "<namespace>"
	request.Namespace = &namespaceRequest
	imageNameRequest:= "<image_name>"
	request.ImageName = &imageNameRequest
	imageVersionRequest:= "<image_version>"
	request.ImageVersion = &imageVersionRequest
	latestVersionRequest:= <latest_version>
	request.LatestVersion = &latestVersionRequest
	offsetRequest:= int32(<offset>)
	request.Offset = &offsetRequest
	limitRequest:= int32(<limit>)
	request.Limit = &limitRequest
	request.ImageType = "<image_type>"
	scanStatusRequest:= "<scan_status>"
	request.ScanStatus = &scanStatusRequest
	instanceNameRequest:= "<instance_name>"
	request.InstanceName = &instanceNameRequest
	imageSizeRequest:= int64(<image_size>)
	request.ImageSize = &imageSizeRequest
	startLatestUpdateTimeRequest:= int64(<start_latest_update_time>)
	request.StartLatestUpdateTime = &startLatestUpdateTimeRequest
	endLatestUpdateTimeRequest:= int64(<end_latest_update_time>)
	request.EndLatestUpdateTime = &endLatestUpdateTimeRequest
	startLatestScanTimeRequest:= int64(<start_latest_scan_time>)
	request.StartLatestScanTime = &startLatestScanTimeRequest
	endLatestScanTimeRequest:= int64(<end_latest_scan_time>)
	request.EndLatestScanTime = &endLatestScanTimeRequest
	hasMaliciousFileRequest:= <has_malicious_file>
	request.HasMaliciousFile = &hasMaliciousFileRequest
	hasUnsafeSettingRequest:= <has_unsafe_setting>
	request.HasUnsafeSetting = &hasUnsafeSettingRequest
	hasVulRequest:= <has_vul>
	request.HasVul = &hasVulRequest
	instanceIdRequest:= "<instance_id>"
	request.InstanceId = &instanceIdRequest
	response, err := client.ListSwrImageRepository(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

查询swr镜像仓库镜像列表,包括私有镜像列表和共享镜像列表(通过传参image_type控制)

错误码

请参见错误码

分享:

    相关文档

    相关产品