Updating a DNAT Rule
Function
This API is used to update a specified DNAT rule.
Calling Method
For details, see Calling APIs.
URI
PUT /v3/{project_id}/private-nat/dnat-rules/{dnat_rule_id}
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Specifies the project ID. Minimum: 1 Maximum: 36 |
dnat_rule_id |
Yes |
String |
Specifies the DNAT rule ID. Minimum: 36 Maximum: 36 |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
Specifies the user token. It is a response to the API used to obtain 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 value. Minimum: 1 Maximum: 10240 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
dnat_rule |
No |
UpdatePrivateDnatOption object |
Specifies the request body for updating a DNAT rule. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
description |
No |
String |
Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>). Minimum: 0 Maximum: 255 |
transit_ip_id |
No |
String |
Specifies the ID of the transit IP address. Minimum: 36 Maximum: 36 |
network_interface_id |
No |
String |
Specifies the network interface ID. Network interfaces of an ECS, load balancer, or virtual IP address are supported. Minimum: 36 Maximum: 36 |
private_ip_address |
No |
String |
Specifies the private IP address of the backend instance. Minimum: 7 Maximum: 15 |
protocol |
No |
String |
Specifies the protocol type. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively. Minimum: 1 Maximum: 3 Enumeration values:
|
internal_service_port |
No |
String |
Specifies the port number of the backend instance. Minimum: 1 Maximum: 5 |
transit_service_port |
No |
String |
Specifies the port number of the transit IP address. Minimum: 1 Maximum: 10 |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
dnat_rule |
PrivateDnat object |
Specifies the response body of the DNAT rule. |
request_id |
String |
Specifies the request ID. Minimum: 1 Maximum: 36 |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Specifies the DNAT rule ID. Minimum: 36 Maximum: 36 |
project_id |
String |
Specifies the project ID. Minimum: 36 Maximum: 36 |
description |
String |
Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>). Minimum: 1 Maximum: 36 |
transit_ip_id |
String |
Specifies the ID of the transit IP address. Minimum: 36 Maximum: 36 |
gateway_id |
String |
Specifies the private NAT gateway ID. Minimum: 1 Maximum: 36 |
network_interface_id |
String |
Specifies the network interface ID. Network interfaces of a compute instance, load balancer, virtual IP address are supported. Minimum: 1 Maximum: 36 |
type |
String |
Specifies the backend resource type of the DNAT rule. The type can be: COMPUTE: The backend resource is a compute instance. VIP: The backend resource is a virtual IP address. ELB: The backend resource is a load balancer. ELBv3: The backend resource is a dedicated load balancer. CUSTOMIZE: The backend resource is a user-defined IP address. Minimum: 1 Maximum: 10 |
protocol |
String |
Specifies the protocol type. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively. Minimum: 1 Maximum: 3 Enumeration values:
|
private_ip_address |
String |
Specifies the private IP address of the backend instance. Minimum: 7 Maximum: 15 |
internal_service_port |
String |
Specifies the port number of the backend instance. Minimum: 0 Maximum: 65535 Minimum: 1 Maximum: 5 |
transit_service_port |
String |
Specifies the port number of the transit IP address. Minimum: 0 Maximum: 65535 Minimum: 1 Maximum: 5 |
enterprise_project_id |
String |
Specifies the ID of the enterprise project that is associated with the DNAT rule when the DNAT rule is being created. Minimum: 1 Maximum: 36 |
created_at |
String |
Specifies when the DNAT rule was created. It is a UTC time in the yyyy-mm-ddThh:mm:ssZ format. Minimum: 1 Maximum: 36 |
updated_at |
String |
Specifies when the DNAT rule was updated. It is a UTC time in the yyyy-mm-ddThh:mm:ssZ format. Minimum: 1 Maximum: 36 |
Example Requests
Updating a DNAT rule (Updating description to my dnat-rules 03)
PUT https://{Endpoint}/v3/da261828016849188f4dcc2ef94d9da9/private-nat/dnat-rules/24dd6bf5-48f2-4915-ad0b-5bb111d39c83 { "dnat_rule" : { "description" : "my dnat-rules 03" } }
Example Responses
Status code: 200
DNAT rule updated.
{ "dnat_rule" : { "id" : "24dd6bf5-48f2-4915-ad0b-5bb111d39c83", "project_id" : "da261828016849188f4dcc2ef94d9da9", "description" : "dnat rule description", "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec", "transit_ip_id" : "3faa719d-6d18-4ccb-a5c7-33e65a09663e", "network_interface_id" : "dae9393a-b536-491c-a5a2-72edc1104707", "type" : "COMPUTE", "private_ip_address" : "192.168.1.72", "created_at" : "2019-04-29T07:10:01", "updated_at" : "2019-04-29T07:10:01" }, "request_id" : "747a911c17067a39692f75ac146fb47e" }
SDK Sample Code
The SDK sample code is as follows.
Updating a DNAT rule (Updating description to my dnat-rules 03)
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 |
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.*; public class UpdatePrivateDnatSolution { 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(); UpdatePrivateDnatRequest request = new UpdatePrivateDnatRequest(); UpdatePrivateDnatRequestBody body = new UpdatePrivateDnatRequestBody(); UpdatePrivateDnatOption dnatRulebody = new UpdatePrivateDnatOption(); dnatRulebody.withDescription("my dnat-rules 03"); body.withDnatRule(dnatRulebody); request.withBody(body); try { UpdatePrivateDnatResponse response = client.updatePrivateDnat(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()); } } } |
Updating a DNAT rule (Updating description to my dnat-rules 03)
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 |
# 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 = UpdatePrivateDnatRequest() dnatRulebody = UpdatePrivateDnatOption( description="my dnat-rules 03" ) request.body = UpdatePrivateDnatRequestBody( dnat_rule=dnatRulebody ) response = client.update_private_dnat(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Updating a DNAT rule (Updating description to my dnat-rules 03)
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 |
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.UpdatePrivateDnatRequest{} descriptionDnatRule:= "my dnat-rules 03" dnatRulebody := &model.UpdatePrivateDnatOption{ Description: &descriptionDnatRule, } request.Body = &model.UpdatePrivateDnatRequestBody{ DnatRule: dnatRulebody, } response, err := client.UpdatePrivateDnat(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 |
---|---|
200 |
DNAT rule updated. |
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