Batch Adding or Deleting Tags to or from a Public NAT Gateway
Function
-
This API is used to batch add or delete tags to or from a public NAT gateway.
-
TMS needs to use this API to manage tags of resources in batches.
-
A resource can have up to 10 tags.
Constraints
-
This API is idempotent.
-
If there are duplicate keys in the request body when you add tags, an error is reported.
-
If a tag to be added has the same key as an existing tag, the tag will be added and overwrite the existing one.
-
During tag deletion, if some tags to be deleted do not exist, the operation is considered to be successful by default. The character set of the tags will not be verified. A key can contain up to 128 Unicode characters, and a value can contain up to 255 Unicode characters. When you delete tags, the tags structure cannot be missing, and key cannot be left blank or be an empty string.
-
Calling Method
For details, see Calling APIs.
URI
POST /v3/{project_id}/nat_gateways/{nat_gateway_id}/tags/action
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Specifies the project ID. |
nat_gateway_id |
Yes |
String |
Specifies the public NAT gateway ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
Specifies the user token. It is a response to the API for obtaining a user token. This API is the only one that does not require authentication. The value of X-Subject-Token in the response header is the token. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
tags |
Yes |
Array of PublicTags objects |
Specifies the tag list. For details, see the Tags field description. |
action |
Yes |
String |
Specifies the operation to be performed. The value can only be create or delete. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
Yes |
String |
Specifies the tag key. A key can contain up to 128 Unicode characters. key cannot be left blank. A key cannot contain ASCII characters (0–31 decimal) nor the following characters: =*<>,|/ |
value |
Yes |
String |
Specifies the value. Each value can contain up to 255 Unicode characters. If value is specified, tags are deleted by key and value. If value is not specified, tags are deleted by key. value can be an empty string. A value cannot contain ASCII characters (0–31 decimal) nor the following characters: =*<>,|/ |
Response Parameters
None
Example Requests
-
Adding tags to a public NAT gateway (Setting action to create and adding the following two tags: key1,value1 and key2,value2)
POST https://{Endpoint}/v3/9ad601814ac94c80bf7bb9073ded66fc/nat_gateways/fe1a4cf0-27fe-4b97-a9b1-2c67c127f0e0/tags/action { "action" : "create", "tags" : [ { "key" : "key1", "value" : "value1" }, { "key" : "key2", "value" : "value2" } ] }
-
Deleting tags from a public NAT gateway (Setting action to delete and deleting the following two tags: key1,value1 and key2,value2)
{ "action" : "delete", "tags" : [ { "key" : "key1", "value" : "value1" }, { "key" : "key2", "value" : "value2" } ] }
Example Responses
None
SDK Sample Code
The SDK sample code is as follows.
-
Adding tags to a public NAT gateway (Setting action to create and adding the following two tags: key1,value1 and key2,value2)
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
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.nat.v2.region.NatRegion; import com.huaweicloud.sdk.nat.v2.*; import com.huaweicloud.sdk.nat.v2.model.*; import java.util.List; import java.util.ArrayList; public class BatchCreateDeleteNatGatewayTagSolution { 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); NatClient client = NatClient.newBuilder() .withCredential(auth) .withRegion(NatRegion.valueOf("<YOUR REGION>")) .build(); BatchCreateDeleteNatGatewayTagRequest request = new BatchCreateDeleteNatGatewayTagRequest(); BatchCreateDeleteNatTagsRequestBody body = new BatchCreateDeleteNatTagsRequestBody(); List<PublicTags> listbodyTags = new ArrayList<>(); listbodyTags.add( new PublicTags() .withKey("key1") .withValue("value1") ); listbodyTags.add( new PublicTags() .withKey("key2") .withValue("value2") ); body.withAction("create"); body.withTags(listbodyTags); request.withBody(body); try { BatchCreateDeleteNatGatewayTagResponse response = client.batchCreateDeleteNatGatewayTag(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()); } } }
-
Deleting tags from a public NAT gateway (Setting action to delete and deleting the following two tags: key1,value1 and key2,value2)
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
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.nat.v2.region.NatRegion; import com.huaweicloud.sdk.nat.v2.*; import com.huaweicloud.sdk.nat.v2.model.*; import java.util.List; import java.util.ArrayList; public class BatchCreateDeleteNatGatewayTagSolution { 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); NatClient client = NatClient.newBuilder() .withCredential(auth) .withRegion(NatRegion.valueOf("<YOUR REGION>")) .build(); BatchCreateDeleteNatGatewayTagRequest request = new BatchCreateDeleteNatGatewayTagRequest(); BatchCreateDeleteNatTagsRequestBody body = new BatchCreateDeleteNatTagsRequestBody(); List<PublicTags> listbodyTags = new ArrayList<>(); listbodyTags.add( new PublicTags() .withKey("key1") .withValue("value1") ); listbodyTags.add( new PublicTags() .withKey("key2") .withValue("value2") ); body.withAction("delete"); body.withTags(listbodyTags); request.withBody(body); try { BatchCreateDeleteNatGatewayTagResponse response = client.batchCreateDeleteNatGatewayTag(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()); } } }
-
Adding tags to a public NAT gateway (Setting action to create and adding the following two tags: key1,value1 and key2,value2)
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 BasicCredentials from huaweicloudsdknat.v2.region.nat_region import NatRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdknat.v2 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 = NatClient.new_builder() \ .with_credentials(credentials) \ .with_region(NatRegion.value_of("<YOUR REGION>")) \ .build() try: request = BatchCreateDeleteNatGatewayTagRequest() listTagsbody = [ PublicTags( key="key1", value="value1" ), PublicTags( key="key2", value="value2" ) ] request.body = BatchCreateDeleteNatTagsRequestBody( action="create", tags=listTagsbody ) response = client.batch_create_delete_nat_gateway_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)
-
Deleting tags from a public NAT gateway (Setting action to delete and deleting the following two tags: key1,value1 and key2,value2)
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 BasicCredentials from huaweicloudsdknat.v2.region.nat_region import NatRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdknat.v2 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 = NatClient.new_builder() \ .with_credentials(credentials) \ .with_region(NatRegion.value_of("<YOUR REGION>")) \ .build() try: request = BatchCreateDeleteNatGatewayTagRequest() listTagsbody = [ PublicTags( key="key1", value="value1" ), PublicTags( key="key2", value="value2" ) ] request.body = BatchCreateDeleteNatTagsRequestBody( action="delete", tags=listTagsbody ) response = client.batch_create_delete_nat_gateway_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)
-
Adding tags to a public NAT gateway (Setting action to create and adding the following two tags: key1,value1 and key2,value2)
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/basic" nat "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2/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 := nat.NewNatClient( nat.NatClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.BatchCreateDeleteNatGatewayTagRequest{} var listTagsbody = []model.PublicTags{ { Key: "key1", Value: "value1", }, { Key: "key2", Value: "value2", }, } request.Body = &model.BatchCreateDeleteNatTagsRequestBody{ Action: "create", Tags: listTagsbody, } response, err := client.BatchCreateDeleteNatGatewayTag(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
Deleting tags from a public NAT gateway (Setting action to delete and deleting the following two tags: key1,value1 and key2,value2)
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/basic" nat "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/nat/v2/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 := nat.NewNatClient( nat.NatClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.BatchCreateDeleteNatGatewayTagRequest{} var listTagsbody = []model.PublicTags{ { Key: "key1", Value: "value1", }, { Key: "key2", Value: "value2", }, } request.Body = &model.BatchCreateDeleteNatTagsRequestBody{ Action: "delete", Tags: listTagsbody, } response, err := client.BatchCreateDeleteNatGatewayTag(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
204 |
Tags added or deleted. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot