华为云用户手册

  • 响应示例 状态码: 200 OK { "resources" : [ { "project_id" : "e1eb7c40cbea4c8389cde527594a306d", "project_name" : "XXXX", "resource_type" : "disk", "resource_id" : "b621f5ae-b5c1-49d7-a660-752c445434b4", "resource_name" : "lhj1-volume-0001", "tags" : [ { "key" : "ENV", "value" : "dev" } ] }, { "project_id" : "e1eb7c40cbea4c8389cde527594a306d", "project_name" : "XXXX", "resource_type" : "disk", "resource_id" : "87c9edc9-f66c-48b8-a22f-372b2e22d579", "resource_name" : "lhj2-volume-0002", "tags" : [ { "key" : "prod", "value" : "disk" } ] } ], "errors" : [ { "project_id" : "e1eb7c40cbea4c8389cde527594a306d", "resource_type" : "disk", "error_code" : "TMS.0002", "error_msg" : "Bad request" } ], "total_count" : 2 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 resources Array of Resources objects 资源列表 errors Array of Errors objects 查询标签下的资源 total_count Integer 标签下的资源总数 表5 Resources 参数 参数类型 描述 project_id String ProjectID project_name String Project名称 resource_detail Object 资源详情 resource_id String 资源ID resource_name String 资源名称 resource_type String 资源类型 tags Array of FilterTagResponse objects 资源标签 表6 FilterTagResponse 参数 参数类型 描述 key String 键。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 value String 值。 最大长度43个字符,可以为空字符串。 字符集:A-Z,a-z ,0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 表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 错误信息
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。说明:由于TMS是全局服务,因此调用IAM服务获取用户Token接口时需要注意作用域即scope字段应该设置为domain。响应消息头中X-Subject-Token的值即为用户Token。 表2 请求Body参数 参数 是否必选 参数类型 描述 project_id 否 String 项目ID,resource_type为region级别服务时为必选项。 resource_types 是 Array of strings 资源类型, 此参数为可输入的值(区分大小写)。例如:ecs,scaling_group, images, disk,vpcs,security-groups, shared_bandwidth,eip, cdn等,具体请参见“附录-标签支持的资源类型”章节。 tags 是 Array of Tag objects 标签列表 without_any_tag 否 Boolean 是否仅查询未带标签的资源。该字段为true时查询不带标签的资源。 offset 否 Integer 索引位置, 从offset指定的下一条数据开始查询,必须为数字,不能为负数,默认为0。 limit 否 Integer 查询记录数,不传默认为200,limit最多为200, 最小值为1。 表3 Tag 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 values 是 Array of strings 值列表。每个值最大长度43个字符,可以为空字符串。 字符集:A-Z,a-z , 0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。
  • 标签管理服务API授权列表项 表1 TMS授权项列表 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询预定义标签 GET /v1.0/predefine_tags tms:predefineTags:list 支持 不支持 创建预定义标签 POST /v1.0/predefine_tags/action tms:predefineTags:create 支持 不支持 删除预定义标签 POST /v1.0/predefine_tags/action tms:predefineTags:delete 支持 不支持 修改预定义标签 PUT /v1.0/predefine_tags tms:predefineTags:update 支持 不支持 批量创建标签 POST /v1.0/resource-tags/batch-create tms:resourceTags:create 支持 不支持 批量删除标签 POST /v1.0/resource-tags/batch-delete tms:resourceTags:delete 支持 不支持 查询标签键列表 GET /v1.0/tag-keys tms:tagKeys:list 支持 不支持 查询标签值列表 GET /v1.0/tag-values tms:tagValues:list 支持 不支持 查询资源标签 GET /v2.0/resources/{resource_id}/tags tms:resourceTags:list 支持 不支持 根据标签过滤资源 POST /v1.0/resource-instances/filter tms:resources:list 支持 不支持 查询标签配额 GET /v1.0/tms/quotas 无细粒度授权项,但依赖Tenant Guest权限。 不支持 不支持 查询标签管理支持的服务 GET /v1.0/tms/providers 无细粒度授权项,但依赖Tenant Guest权限。 不支持 不支持 父主题: 权限策略与授权项
  • 具体步骤 Token认证,具体操作请参考认证鉴权。 发送“POST https://TMS的Endpoint/v1.0/predefine_tags/action”。 在Request Header中增加“Content-Type”和“X-Auth-Token”。 在Request Body中传入参数如下: { "action" : "create", //操作(必填,String) "tags" : [ { "key" : "ENV1", //键(必填,String) "value" : "DEV1" //值(必填,String) }, { "key" : "ENV2", "value" : "DEV2" } ] } 请求消息发送后,返回状态码204,响应体为空。 响应消息包括成功和失败两类情况,本文以响应成功为例进行介绍。 若请求消息响应失败则会返回错误码及对应的错误信息说明,详细错误码信息请参见错误码。 响应消息的要素说明及返回值请参考“创建预定义标签”章节。
  • Go 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 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" tms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/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 := tms.NewTmsClient( tms.TmsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.ShowTagQuotaRequest{} response, err := client.ShowTagQuota(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • Python 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 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdktms.v1.region.tms_region import TmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdktms.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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = GlobalCredentials(ak, sk) \ client = TmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(TmsRegion.value_of("cn-north-4")) \ .build() try: request = ShowTagQuotaRequest() response = client.show_tag_quota(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 状态码 状态码 描述 200 OK 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 409 Conflict 410 Gone 412 Precondition Failed 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 503 Service Unavailable
  • Java 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 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.tms.v1.region.TmsRegion; import com.huaweicloud.sdk.tms.v1.*; import com.huaweicloud.sdk.tms.v1.model.*; public class ShowTagQuotaSolution { 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); TmsClient client = TmsClient.newBuilder() .withCredential(auth) .withRegion(TmsRegion.valueOf("cn-north-4")) .build(); ShowTagQuotaRequest request = new ShowTagQuotaRequest(); try { ShowTagQuotaResponse response = client.showTagQuota(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()); } } }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 quotas Array of TagQuota objects 配额列表 表3 TagQuota 参数 参数类型 描述 quota_key String 配额key quota_limit Integer 配额值 used Integer 已使用 unit String 单位 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表5 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表7 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表9 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表11 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表12 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表13 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表14 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表15 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表16 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表17 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 410 表18 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表19 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 412 表20 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表21 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 429 表22 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表23 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表24 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表25 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表26 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表27 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表28 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表29 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • Go 给资源批量添加标签。 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 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" tms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/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 := tms.NewTmsClient( tms.TmsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.CreateResourceTagRequest{} var listTagsbody = []model.CreateTagRequest{ { Key: "ENV", Value: "dev", }, { Key: "DEPT", Value: "pdd", }, } var listResourcesbody = []model.ResourceTagBody{ { ResourceId: "a28531fa-a8d5-468e-8417-86a80962ee5e", ResourceType: "disk", }, { ResourceId: "a28531fa-a8d5-468e-8417-86a8096ddddd", ResourceType: "vpc", }, } projectIdReqCreateTag:= "xxxdcffffffff" request.Body = &model.ReqCreateTag{ Tags: listTagsbody, Resources: listResourcesbody, ProjectId: &projectIdReqCreateTag, } response, err := client.CreateResourceTag(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 状态码 状态码 描述 200 Success 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 409 Conflict 410 Gone 412 Precondition Failed 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 503 Service Unavailable
  • 请求示例 给资源批量添加标签。 POST https://{Endpoint}/v1.0/resource-tags/batch-create { "project_id" : "xxxdcffffffff", "resources" : [ { "resource_id" : "a28531fa-a8d5-468e-8417-86a80962ee5e", "resource_type" : "disk" }, { "resource_id" : "a28531fa-a8d5-468e-8417-86a8096ddddd", "resource_type" : "vpc" } ], "tags" : [ { "key" : "ENV", "value" : "dev" }, { "key" : "DEPT", "value" : "pdd" } ] }
  • Python 给资源批量添加标签。 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 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdktms.v1.region.tms_region import TmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdktms.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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = GlobalCredentials(ak, sk) \ client = TmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(TmsRegion.value_of("cn-north-4")) \ .build() try: request = CreateResourceTagRequest() listTagsbody = [ CreateTagRequest( key="ENV", value="dev" ), CreateTagRequest( key="DEPT", value="pdd" ) ] listResourcesbody = [ ResourceTagBody( resource_id="a28531fa-a8d5-468e-8417-86a80962ee5e", resource_type="disk" ), ResourceTagBody( resource_id="a28531fa-a8d5-468e-8417-86a8096ddddd", resource_type="vpc" ) ] request.body = ReqCreateTag( tags=listTagsbody, resources=listResourcesbody, project_id="xxxdcffffffff" ) response = client.create_resource_tag(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 响应示例 状态码: 200 Success { "failed_resources" : [ { "resource_id" : "e1eb7c40cbea4c8389cde527594a306d", "resource_type" : "disk", "error_code" : "TMS.0002", "error_msg" : "Bad request" } ] }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 failed_resources Array of TagCreateResponseItem objects 添加标签失败的资源信息 表6 TagCreateResponseItem 参数 参数类型 描述 resource_id String 资源ID resource_type String 资源类型 error_code String 错误码 error_msg String 错误描述 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表8 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表10 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 403 表11 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表12 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表13 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表14 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表15 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表16 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表17 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表18 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表19 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表20 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 410 表21 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表22 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 412 表23 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表24 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 429 表25 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表26 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表27 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表28 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表29 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表30 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表31 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表32 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。说明:由于TMS是全局服务,因此调用IAM服务获取用户Token接口时需要注意作用域即scope字段应该设置为domain。响应消息头中X-Subject-Token的值即为用户Token。 表2 请求Body参数 参数 是否必选 参数类型 描述 project_id 否 String 项目ID,resource_type为region级别服务时为必选项。 resources 是 Array of ResourceTagBody objects 资源列表 tags 是 Array of CreateTagRequest objects 标签列表 表3 ResourceTagBody 参数 是否必选 参数类型 描述 resource_id 是 String 资源ID resource_type 是 String 资源类型 表4 CreateTagRequest 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 value 是 String 值。每个值最大长度43个字符,可以为空字符串。 字符集:A-Z,a-z , 0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。
  • 状态码 状态码 描述 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
  • 响应示例 状态码: 200 OK { "providers" : [ { "provider" : "evs", "provider_i18n_display_name" : "Elastic Volume Service", "resource_types" : { "resource_type_i18n_display_name" : "EVS-Disk", "global" : false, "resource_type" : "disk", "regions" : [ "regionId1" ] } } ], "total_count" : 1 }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 providers Array of ProviderResponseBody objects 云服务列表 total_count Integer 当前支持的云服务总数 表4 ProviderResponseBody 参数 参数类型 描述 provider String 云服务名称 provider_i18n_display_name String 服务显示名称,可以通过参数中“locale”设置语言。 resource_types Array of ResourceTypeBody objects 资源类型列表 表5 ResourceTypeBody 参数 参数类型 描述 resource_type String 资源类型 resource_type_i18n_display_name String 资源类型显示名称,可以通过参数中“locale”设置语言。 regions Array of strings 支持的region列表 global Boolean 是否是全局类型的资源 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表7 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表9 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 402 表10 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表11 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 403 表12 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表13 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表14 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表15 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表16 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表17 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表18 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表19 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 407 表20 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表21 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 408 表22 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表23 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表24 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表25 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表26 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表27 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表28 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表29 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 502 表30 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表31 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表32 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表33 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 504 表34 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表35 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • URI GET /v1.0/tms/providers 表1 Query参数 参数 是否必选 参数类型 描述 locale 否 String 指定显示语言 缺省值:zh-cn limit 否 Integer 查询记录数默认为10,limit最多为200,最小值为1。 offset 否 Integer 索引位置,从offset指定的下一条数据开始查询,必须为数字,不能为负数,默认为0。 provider 否 String 云服务名称
  • Go 创建预定义标签 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 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" tms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/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 := tms.NewTmsClient( tms.TmsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.CreatePredefineTagsRequest{} var listTagsbody = []model.PredefineTagRequest{ { Key: "ENV1", Value: "DEV1", }, { Key: "ENV2", Value: "DEV2", }, } request.Body = &model.ReqCreatePredefineTag{ Tags: listTagsbody, Action: model.GetReqCreatePredefineTagActionEnum().CREATE, } response, err := client.CreatePredefineTags(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 状态码 状态码 描述 204 No Content 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 409 Conflict 410 Gone 412 Precondition Failed 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 503 Service Unavailable
  • 请求示例 创建预定义标签 POST https://{Endpoint}/v1.0/predefine_tags/action { "action" : "create", "tags" : [ { "key" : "ENV1", "value" : "DEV1" }, { "key" : "ENV2", "value" : "DEV2" } ] }
  • Python 创建预定义标签 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 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdktms.v1.region.tms_region import TmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdktms.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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = GlobalCredentials(ak, sk) \ client = TmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(TmsRegion.value_of("cn-north-4")) \ .build() try: request = CreatePredefineTagsRequest() listTagsbody = [ PredefineTagRequest( key="ENV1", value="DEV1" ), PredefineTagRequest( key="ENV2", value="DEV2" ) ] request.body = ReqCreatePredefineTag( tags=listTagsbody, action="create" ) response = client.create_predefine_tags(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表5 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表7 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表9 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表11 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表12 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表13 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表14 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表15 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表16 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表17 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 410 表18 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表19 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 412 表20 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表21 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 429 表22 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表23 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表24 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表25 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表26 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表27 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表28 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表29 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。说明:由于TMS是全局服务,因此调用IAM服务获取用户Token接口时需要注意作用域即scope字段应该设置为domain。响应消息头中X-Subject-Token的值即为用户Token。 表2 请求Body参数 参数 是否必选 参数类型 描述 action 是 String 操作标识(区分大小写):create(创建) tags 是 Array of PredefineTagRequest objects 标签列表 表3 PredefineTagRequest 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 value 是 String 值。每个值最大长度43个字符,可以为空字符串。 字符集:A-Z,a-z , 0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。
  • 状态码 状态码 描述 204 No Content 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 409 Conflict 410 Gone 412 Precondition Failed 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 503 Service Unavailable
  • Java 修改预定义标签 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 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.tms.v1.region.TmsRegion; import com.huaweicloud.sdk.tms.v1.*; import com.huaweicloud.sdk.tms.v1.model.*; public class UpdatePredefineTagsSolution { 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); TmsClient client = TmsClient.newBuilder() .withCredential(auth) .withRegion(TmsRegion.valueOf("cn-north-4")) .build(); UpdatePredefineTagsRequest request = new UpdatePredefineTagsRequest(); ModifyPrefineTag body = new ModifyPrefineTag(); PredefineTagRequest oldTagbody = new PredefineTagRequest(); oldTagbody.withKey("ENV2") .withValue("DEV2"); PredefineTagRequest newTagbody = new PredefineTagRequest(); newTagbody.withKey("ENV1") .withValue("DEV1"); body.withOldTag(oldTagbody); body.withNewTag(newTagbody); request.withBody(body); try { UpdatePredefineTagsResponse response = client.updatePredefineTags(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()); } } }
  • Go 修改预定义标签 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 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" tms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/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 := tms.NewTmsClient( tms.TmsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.UpdatePredefineTagsRequest{} oldTagbody := &model.PredefineTagRequest{ Key: "ENV2", Value: "DEV2", } newTagbody := &model.PredefineTagRequest{ Key: "ENV1", Value: "DEV1", } request.Body = &model.ModifyPrefineTag{ OldTag: oldTagbody, NewTag: newTagbody, } response, err := client.UpdatePredefineTags(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
共100000条