Updated on 2023-04-19 GMT+08:00

Creating a DNAT Rule

Function

This API is used to create a DNAT rule.

Constraints

When you are creating a DNAT rule, status of the NAT gateway must be set to ACTIVE.

Debugging

You can debug this API through automatic authentication in or use the SDK sample code generated by API Explorer.

URI

POST /v3/{project_id}/private-nat/dnat-rules

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Specifies the project ID.

Minimum: 1

Maximum: 36

Request Parameters

Table 2 Request header 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

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

dnat_rule

Yes

CreatePrivateDnatOption object

Specifies the request body for creating a DNAT rule.

Table 4 CreatePrivateDnatOption

Parameter

Mandatory

Type

Description

description

No

String

Provides supplementary information about the DNAT rule.

Minimum: 0

Maximum: 255

transit_ip_id

Yes

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

gateway_id

Yes

String

Specifies the private NAT gateway ID.

Minimum: 36

Maximum: 36

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:

  • tcp

  • udp

  • any

private_ip_address

No

String

Specifies the private IP address of the backend instance.

Minimum: 7

Maximum: 15

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: 5

Response Parameters

Status code: 201

Table 5 Response body parameters

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

Table 6 PrivateDnat

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.

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:

  • tcp

  • udp

  • any

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

POST https://{Endpoint}/v3/da261828016849188f4dcc2ef94d9da9/private-nat/dnat-rules

{
  "dnat_rule" : {
    "description" : "aa",
    "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec",
    "transit_ip_id" : "3faa719d-6d18-4ccb-a5c7-33e65a09663e",
    "network_interface_id" : "dae9393a-b536-491c-a5a2-72edc1104707"
  }
}

Example Responses

Status code: 201

DNAT rule created.

{
  "dnat_rule" : {
    "id" : "24dd6bf5-48f2-4915-ad0b-5bb111d39c83",
    "project_id" : "da261828016849188f4dcc2ef94d9da9",
    "description" : "aa",
    "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec",
    "transit_ip_id" : "3faa719d-6d18-4ccb-a5c7-33e65a09663e",
    "enterprise_project_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a",
    "network_interface_id" : "dae9393a-b536-491c-a5a2-72edc1104707",
    "type" : "COMPUTE",
    "protocol" : "any",
    "internal_service_port" : "0",
    "transit_service_port" : "0",
    "private_ip_address" : "192.168.1.72",
    "created_at" : "2019-04-29T07:10:01",
    "updated_at" : "2019-04-29T07:10:01"
  },
  "request_id" : "70505c941b9b4dfd82fd351932328a2f"
}

Status Codes

Status Code

Description

201

DNAT rule created.

Error Codes

See Error Codes.