华为云用户手册

  • 响应示例 状态码: 200 Success { "failed_resources" : [ { "resource_id" : "e1eb7c40cbea4c8389cde527594a306d", "resource_type" : "disk", "error_code" : "TMS.0002", "error_msg" : "Bad request" } ] }
  • 请求示例 批量删除标签。 POST https://{Endpoint}/v1.0/resource-tags/batch-delete { "project_id" : "xxxdcffffffff", "resources" : [ { "resource_id" : "a28531fa-a8d5-468e-8417-86a80962ee5e", "resource_type" : "disk" }, { "resource_id" : "vpc-dc7d19b7", "resource_type" : "vpc" } ], "tags" : [ { "key" : "ENV" } ] }
  • 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 # 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 = DeleteResourceTagRequest() listTagsbody = [ DeleteTagRequest( key="ENV" ) ] listResourcesbody = [ ResourceTagBody( resource_id="a28531fa-a8d5-468e-8417-86a80962ee5e", resource_type="disk" ), ResourceTagBody( resource_id="vpc-dc7d19b7", resource_type="vpc" ) ] request.body = ReqDeleteTag( tags=listTagsbody, resources=listResourcesbody, project_id="xxxdcffffffff" ) response = client.delete_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)
  • 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 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.DeleteResourceTagRequest{} var listTagsbody = []model.DeleteTagRequest{ { Key: "ENV", }, } var listResourcesbody = []model.ResourceTagBody{ { ResourceId: "a28531fa-a8d5-468e-8417-86a80962ee5e", ResourceType: "disk", }, { ResourceId: "vpc-dc7d19b7", ResourceType: "vpc", }, } projectIdReqDeleteTag:= "xxxdcffffffff" request.Body = &model.ReqDeleteTag{ Tags: listTagsbody, Resources: listResourcesbody, ProjectId: &projectIdReqDeleteTag, } response, err := client.DeleteResourceTag(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 failed_resources Array of TagDeleteResponseItem objects 删除标签失败的资源信息 表6 TagDeleteResponseItem 参数 参数类型 描述 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 DeleteTagRequest objects 标签列表 表3 ResourceTagBody 参数 是否必选 参数类型 描述 resource_id 是 String 资源ID resource_type 是 String 资源类型 表4 DeleteTagRequest 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。
  • 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.ListApiVersionsRequest{} response, err := client.ListApiVersions(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 状态码 状态码 描述 200 OK 400 Bad Request 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
  • 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 = ListApiVersionsRequest() response = client.list_api_versions(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 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 ListApiVersionsSolution { 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(); ListApiVersionsRequest request = new ListApiVersionsRequest(); try { ListApiVersionsResponse response = client.listApiVersions(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 OK { "versions" : [ { "id" : "v1.0", "links" : [ { "rel" : "self", "href" : "https://{Endpoint}/v1.0" } ], "version" : "", "status" : "CURRENT", "updated" : "2016-12-09T00:00:00Z", "min_version" : "" } ] }
  • 响应参数 状态码: 200 表1 响应Body参数 参数 参数类型 描述 versions Array of VersionDetail objects 版本列表 表2 VersionDetail 参数 参数类型 描述 id String 版本ID(版本号),如v1.0。 links Array of Link objects API的URL地址。 version String 若该版本API支持微版本,则返回支持的最新微版本号,如果不支持微版本,则返回空。 status String 版本状态,为如下3种: CURRENT:表示该版本为主推版本。 SUPPORTED:表示为老版本,但是现在还继续支持。 DEPRECATED:表示为废弃版本,存在后续删除的可能。 updated String 版本发布时间,采用UTC时间表示。如v1.0发布的时间2016-12-09T00:00:00Z。 min_version String 若该版本API 支持微版本,则返回支持的最早微版本号, 如果不支持微版本,则返回空。 表3 Link 参数 参数类型 描述 href String API的URL地址。 rel String self 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表5 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表7 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表8 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表9 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表10 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表11 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表12 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表13 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 410 表14 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表15 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 412 表16 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表17 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 429 表18 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表19 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表20 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表21 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表22 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表23 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表24 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表25 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • 状态码 状态码 描述 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
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 values Array of strings 查询到的标签值列表 page_info PageInfoTagValues object 分页信息 表4 PageInfoTagValues 参数 参数类型 描述 next_marker String 分页位置标识(索引) current_count Integer 当前页标签值的数量 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表6 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表8 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表10 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表12 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表13 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表14 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表15 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表16 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 409 表17 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表18 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 410 表19 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表20 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 412 表21 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表22 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 429 表23 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表24 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 500 表25 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表26 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 501 表27 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表28 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 503 表29 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表30 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息
  • URI GET /v1.0/tag-values 表1 Query参数 参数 是否必选 参数类型 描述 region_id 否 String 区域ID limit 否 Integer 查询记录数。 最小为1,最大为200,未输入时默认为200。 最小值:1 最大值:200 缺省值:200 marker 否 String 分页位置标识(索引)。从marker指定索引的下一条数据开始查询。说明:查询第一页数据时,不需要传入此参数,查询后续页码数据时,将查询前一页数据响应体中marker值配入此参数,当返回的next_marker为空时表示查询到最后一页。 key 是 String 标签键
  • 状态码 状态码 描述 200 OK 400 Bad Request 404 Not Found 405 Method Not Allowed 406 Not Acceptable 408 Request Timeout 409 Conflict 410 Gone 412 Precondition Failed 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 503 Service Unavailable
  • 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 = ShowApiVersionRequest() response = client.show_api_version(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 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.ShowApiVersionRequest{} response, err := client.ShowApiVersion(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 响应示例 状态码: 200 OK { "version" : { "id" : "v1.0", "links" : [ { "rel" : "self", "href" : "https://{Endpoint}/v1.0" } ], "version" : "", "status" : "CURRENT", "updated" : "2016-12-09T00:00:00Z", "min_version" : "" } }
  • 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 ShowApiVersionSolution { 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(); ShowApiVersionRequest request = new ShowApiVersionRequest(); try { ShowApiVersionResponse response = client.showApiVersion(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 表3 响应Body参数 参数 参数类型 描述 version VersionDetail object 版本详情 表4 VersionDetail 参数 参数类型 描述 id String 版本ID(版本号),如v1.0。 links Array of Link objects API的URL地址。 version String 若该版本API支持微版本,则返回支持的最新微版本号,如果不支持微版本,则返回空。 status String 版本状态,为如下3种: CURRENT:表示该版本为主推版本。 SUPPORTED:表示为老版本,但是现在还继续支持。 DEPRECATED:表示为废弃版本,存在后续删除的可能。 updated String 版本发布时间,采用UTC时间表示。如v1.0发布的时间2016-12-09T00:00:00Z。 min_version String 若该版本API 支持微版本,则返回支持的最早微版本号, 如果不支持微版本,则返回空。 表5 Link 参数 参数类型 描述 href String API的URL地址。 rel String self 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表7 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表9 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 405 表10 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表11 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 406 表12 响应Body参数 参数 参数类型 描述 error RespErrorMessage object 响应错误信息 表13 RespErrorMessage 参数 参数类型 描述 error_code String 请求错误码 error_msg String 错误信息 状态码: 408 表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 错误信息
  • API概览 表1 TMS接口列表 API 说明 查询API版本列表 查询TMS的API版本列表。 查询API版本号详情 查询TMS的API版本号详情。 创建预定义标签 创建预定义标签。用户创建预定义标签后,可以使用预定义标签来给资源创建标签。 删除预定义标签 删除预定义标签。用户可以删除已创建的预定义标签。 查询预定义标签列表 查询指定用户的预定义标签列表,访问数据库获取标签列表信息。 修改预定义标签 修改预定义标签。 查询标签配额 查询标签的配额信息。 批量添加标签 批量给云服务的多个资源添加标签。 批量移除标签 批量移除云服务多个资源的标签。 查询标签键列表 查询指定区域的所有标签键。 查询标签值列表 查询指定区域的标签键下的所有标签值。 查询资源标签 查询单个资源上的标签。 根据标签过滤资源 根据标签过滤资源。 查询标签管理支持的服务 查询标签管理服务支持的云服务。
  • 状态码 状态码 描述 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
  • 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 55 56 57 # 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 = ListResourceRequest() listValuesTags = [ "test" ] listValuesTags1 = [ "dev", "prod" ] listTagsbody = [ Tag( key="env", values=listValuesTags1 ), Tag( key="test", values=listValuesTags ) ] listResourceTypesbody = [ "disk", "ecs" ] request.body = ResqTagResource( limit=10, offset=0, tags=listTagsbody, resource_types=listResourceTypesbody, project_id="e1eb7c40cbea4c8389cde527594a306d" ) response = client.list_resource(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 { "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 }
  • 请求示例 根据标签过滤资源。 POST https://v1.0/resource-instances/filter { "project_id" : "e1eb7c40cbea4c8389cde527594a306d", "resource_types" : [ "disk", "ecs" ], "tags" : [ { "key" : "env", "values" : [ "dev", "prod" ] }, { "key" : "test", "values" : [ "test" ] } ], "offset" : 0, "limit" : 10 }
  • 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 62 63 64 65 66 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.ListResourceRequest{} var listValuesTags = []string{ "test", } var listValuesTags1 = []string{ "dev", "prod", } var listTagsbody = []model.Tag{ { Key: "env", Values: listValuesTags1, }, { Key: "test", Values: listValuesTags, }, } var listResourceTypesbody = []string{ "disk", "ecs", } limitResqTagResource:= int32(10) offsetResqTagResource:= int32(0) projectIdResqTagResource:= "e1eb7c40cbea4c8389cde527594a306d" request.Body = &model.ResqTagResource{ Limit: &limitResqTagResource, Offset: &offsetResqTagResource, Tags: listTagsbody, ResourceTypes: listResourceTypesbody, ProjectId: &projectIdResqTagResource, } response, err := client.ListResource(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 响应参数 状态码: 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权限。 不支持 不支持 父主题: 权限策略与授权项
共100000条