更新时间:2024-11-11 GMT+08:00

查询企业项目绑定的资源列表

功能介绍

查询企业项目下绑定的资源详情。

调用方法

请参见如何调用API

URI

POST /v1.0/enterprise-projects/{enterprise_project_id}/resources/filter

表1 路径参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

企业项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。说明:由于EPS是全局服务,因此调用IAM服务获取用户Token接口时需要注意作用域即scope字段应该设置为domain。响应消息头中X-Subject-Token的值即为用户Token。

X-Security-Token

String

如果正在使用临时安全凭据,则此header是必需的,该值是临时安全凭据的安全令牌(会话令牌)。

表3 请求Body参数

参数

是否必选

参数类型

描述

projects

Array of strings

项目ID列表。resource_types中包含region级别服务时为必选项。

resource_types

Array of strings

资源类型列表, 此参数为可输入的值(区分大小写)。例如:ecs,scaling_group, images, disk, vpcs,security-groups, shared_bandwidth,eip, cdn等,具体请参见“附录-企业项目支持的资源类型”章节。

offset

Integer

索引位置, 从offset指定的下一条数据开始查询,必须为数字,不能为负数,默认为0。

limit

Integer

查询记录数,不传默认为1000,limit最多为1000, 最小值为1。

matches

Array of Match objects

搜索字段,key为要匹配的字段,固定为resource_name,value为匹配的值,不传则表示无匹配条件。

表4 Match

参数

是否必选

参数类型

描述

key

String

键。有matches参数时,该字段为必填,固定为resource_name。

value

String

值。即资源名称,有matches参数时,该字段为必填,且默认为模糊搜索,如”message.com”。每个值最大长度255个字符。

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

resources

Array of Resources objects

资源列表

errors

Array of Errors objects

查询失败的企业项目下的资源

total_count

Integer

企业项目下的资源总数

表6 Resources

参数

参数类型

描述

enterprise_project_id

String

企业项目ID

project_id

String

ProjectID

project_name

String

Project名称

resource_detail

Object

资源详情

resource_id

String

资源ID

resource_name

String

资源名称

resource_type

String

资源类型

表7 Errors

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

project_id

String

ProjectID

resource_type

String

资源类型

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表9 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表10 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表11 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 402

表12 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表13 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 403

表14 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表15 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 404

表16 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表17 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 405

表18 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表19 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 406

表20 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表21 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 407

表22 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表23 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 408

表24 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表25 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 409

表26 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表27 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表28 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表29 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 501

表30 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表31 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 502

表32 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表33 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 503

表34 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表35 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 504

表36 响应Body参数

参数

参数类型

描述

error

RespErrorMessage object

错误请求信息

表37 RespErrorMessage

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

查询企业项目的资源

POST https://{Endpoint}/v1.0/enterprise-projects/{enterprise_project_id}/resources/filter

{
  "projects" : [ "e1eb7c40cbea4c8389cde527594a306d", "2345d321da864d6faf2e762647e19f96" ],
  "resource_types" : [ "disk" ],
  "offset" : 0,
  "limit" : 10,
  "matches" : [ {
    "key" : "resource_name",
    "value" : "lhj"
  } ]
}

响应示例

状态码: 200

OK

{
  "resources" : [ {
    "project_id" : "e1eb7c40cbea4c8389cde527594a306d",
    "project_name" : "XXXX",
    "resource_type" : "disk",
    "resource_id" : "b621f5ae-b5c1-49d7-a660-752c445434b4",
    "resource_name" : "lhj1-volume-0001",
    "resource_detail" : null,
    "enterprise_project_id" : "0"
  }, {
    "project_id" : "e1eb7c40cbea4c8389cde527594a306d",
    "project_name" : "XXXX",
    "resource_type" : "disk",
    "resource_id" : "87c9edc9-f66c-48b8-a22f-372b2e22d579",
    "resource_name" : "lhj2-volume-0002",
    "resource_detail" : null,
    "enterprise_project_id" : "0"
  } ],
  "errors" : [ ],
  "total_count" : 2
}

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
65
66
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.GlobalCredentials;
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.eps.v1.region.EpsRegion;
import com.huaweicloud.sdk.eps.v1.*;
import com.huaweicloud.sdk.eps.v1.model.*;

import java.util.List;
import java.util.ArrayList;

public class ShowResourceBindEnterpriseProjectSolution {

    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 GlobalCredentials()
                .withAk(ak)
                .withSk(sk);

        EpsClient client = EpsClient.newBuilder()
                .withCredential(auth)
                .withRegion(EpsRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowResourceBindEnterpriseProjectRequest request = new ShowResourceBindEnterpriseProjectRequest();
        request.withEnterpriseProjectId("{enterprise_project_id}");
        ResqEpResouce body = new ResqEpResouce();
        List<Match> listbodyMatches = new ArrayList<>();
        listbodyMatches.add(
            new Match()
                .withKey("resource_name")
                .withValue("lhj")
        );
        List<String> listbodyResourceTypes = new ArrayList<>();
        listbodyResourceTypes.add("disk");
        List<String> listbodyProjects = new ArrayList<>();
        listbodyProjects.add("e1eb7c40cbea4c8389cde527594a306d");
        listbodyProjects.add("2345d321da864d6faf2e762647e19f96");
        body.withMatches(listbodyMatches);
        body.withLimit(10);
        body.withOffset(0);
        body.withResourceTypes(listbodyResourceTypes);
        body.withProjects(listbodyProjects);
        request.withBody(body);
        try {
            ShowResourceBindEnterpriseProjectResponse response = client.showResourceBindEnterpriseProject(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
49
50
51
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import GlobalCredentials
from huaweicloudsdkeps.v1.region.eps_region import EpsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkeps.v1 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"]

    credentials = GlobalCredentials(ak, sk)

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

    try:
        request = ShowResourceBindEnterpriseProjectRequest()
        request.enterprise_project_id = "{enterprise_project_id}"
        listMatchesbody = [
            Match(
                key="resource_name",
                value="lhj"
            )
        ]
        listResourceTypesbody = [
            "disk"
        ]
        listProjectsbody = [
            "e1eb7c40cbea4c8389cde527594a306d",
            "2345d321da864d6faf2e762647e19f96"
        ]
        request.body = ResqEpResouce(
            matches=listMatchesbody,
            limit=10,
            offset=0,
            resource_types=listResourceTypesbody,
            projects=listProjectsbody
        )
        response = client.show_resource_bind_enterprise_project(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
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global"
    eps "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eps/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eps/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eps/v1/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 := global.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := eps.NewEpsClient(
        eps.EpsClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowResourceBindEnterpriseProjectRequest{}
	request.EnterpriseProjectId = "{enterprise_project_id}"
	var listMatchesbody = []model.Match{
        {
            Key: "resource_name",
            Value: "lhj",
        },
    }
	var listResourceTypesbody = []string{
        "disk",
    }
	var listProjectsbody = []string{
        "e1eb7c40cbea4c8389cde527594a306d",
	    "2345d321da864d6faf2e762647e19f96",
    }
	limitResqEpResouce:= int32(10)
	offsetResqEpResouce:= int32(0)
	request.Body = &model.ResqEpResouce{
		Matches: &listMatchesbody,
		Limit: &limitResqEpResouce,
		Offset: &offsetResqEpResouce,
		ResourceTypes: listResourceTypesbody,
		Projects: &listProjectsbody,
	}
	response, err := client.ShowResourceBindEnterpriseProject(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

状态码

状态码

描述

200

OK

400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found

405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Timeout

409

Conflict

500

Internal Server Error

501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

错误码

请参见错误码