
# 查询DNAT规则列表 - ListPrivateDnats
#### 功能介绍
查询DNAT规则列表。
#### 接口约束
可以在URI后面用'?'和'\&'添加不同的查询条件组合。
支持参数说明中所有非必选参数过滤，请参考请求样例。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-natgateway/nat_api_0053.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-natgateway/nat_api_0063.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别 | 资源类型（\*为必须）        | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | nat:privateNatDnatRules:list | List | privateDnatRule \* | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
GET /v3/{project_id}/private-nat/dnat-rules
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目的ID。 |
   
表2Query参数 
| 参数                    | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| limit                 | 否    | Integer          | 功能说明：每页返回的个数。 取值范围：1\~2000。 默认值：2000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| marker                | 否    | String           | 功能说明：分页查询起始的资源ID，为空时查询第一页。 值从上一次查询的PageInfo中的next_marker或者previous_marker中获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| page_reverse          | 否    | Boolean          | 是否查询前一页。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| id                    | 否    | Array of strings | DNAT规则的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| project_id            | 否    | Array of strings | 项目的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| enterprise_project_id | 否    | Array of strings | 企业项目ID。创建DNAT规则时，关联的企业项目ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description           | 否    | Array of strings | DNAT规则的描述。长度范围小于等于255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| gateway_id            | 否    | Array of strings | 私网NAT网关实例的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| transit_ip_id         | 否    | Array of strings | 中转IP的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| network_interface_id  | 否    | Array of strings | 计算实例、ELBV2、ELBV3、VIP等资源的端口ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| type                  | 否    | Array of strings | DNAT规则后端的类型。 取值： - COMPUTE：后端为计算实例。   - VIP：后端为VIP的实例。   - ELB：后端为ELBv2的实例。   - ELBv3：后端为ELBv3的实例。   - CUSTOMIZE：后端为自定义IP。    |
| private_ip_address    | 否    | Array of strings | 后端资源（计算实例、ELBV2、ELBV3、VIP等）的私网IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| protocol              | 否    | Array of strings | DNAT规则协议类型， 目前支持TCP/tcp/Tcp/tCp/tcP/TCp/tCP/TcP、 UDP/udp/Udp/uDp/udP/UDp/uDP/UdP、 ANY/any/Any/aNy/anY/ANy/aNY/AnY。 分别对应协议号6、17、0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| internal_service_port | 否    | Array of strings | 后端实例的端口号（计算实例、ELBV2、ELBV3、VIP等)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| transit_service_port  | 否    | Array of strings | 中转IP的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                               |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 用户Token也就是调用获取用户Token获取请求认证接口的响应值，该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                                    | 描述              |
|:---|:---|:---|
| dnat_rules | Array of [PrivateDnat] objects | 查询DNAT规则列表的响应体。 |
| request_id | String                                                                  | 请求ID。           |
| page_info  | [PageInfo] object                 | 分页信息。           |
   
 表5PrivateDnat 
| 参数                    | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| id                    | String | DNAT规则的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| project_id            | String | 项目的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| description           | String | DNAT规则的描述。长度范围小于等于255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| transit_ip_id         | String | 中转IP的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| gateway_id            | String | 私网NAT网关实例的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| network_interface_id  | String | 网络接口ID，支持计算、ELBV2、ELBV3、VIP等实例的端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| type                  | String | DNAT规则后端的类型。 取值： - COMPUTE：后端为计算实例。   - VIP：后端为VIP的实例。   - ELB：后端为ELBv2的实例。   - ELBv3：后端为ELBv3的实例。   - CUSTOMIZE：后端为自定义IP。    |
| protocol              | String | 协议类型。 目前支持TCP/tcp、UDP/udp、ANY/any。 对应协议号6、17、0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| private_ip_address    | String | 后端资源（计算实例、ELBV2、ELBV3、VIP等）的私网IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| internal_service_port | String | 后端实例的端口号（计算实例、ELBV2、ELBV3、VIP等)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| transit_service_port  | String | 中转IP的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| enterprise_project_id | String | 企业项目ID。创建DNAT规则时，关联的企业项目ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| created_at            | String | DNAT规则的创建时间，遵循UTC时间，格式是yyyy-mm-ddThh:mm:ssZ。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| updated_at            | String | DNAT规则的更新时间，遵循UTC时间，格式是yyyy-mm-ddThh:mm:ssZ。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| status                | String | 私网NAT的DNAT规则状态。 取值为： - ACTIVE：正常运行   - FROZEN：冻结   - INACTIVE：不可用                                                                                                                                                                                                                                                                                                                         |
   
 表6PageInfo 
| 参数              | 参数类型    | 描述                                            |
|:---|:---|:---|
| next_marker     | String  | 分页查询结果中最后一条记录的ID。通常用于查询下一页。                   |
| previous_marker | String  | 分页查询结果中第一条记录的ID。通常用于配合page_reverse=true查询上一页。 |
| current_count   | Integer | 分页查询资源时，本页的实例的个数。                             |
   
#### 请求示例
```
GET https://{Endpoint}/v3/da261828016849188f4dcc2ef94d9da9/private-nat/dnat-rules
```
#### 响应示例
**状态码：200**
查询DNAT规则列表成功。
-
  ```
  {
    "dnat_rules" : [ {
      "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:01Z",
      "updated_at" : "2019-04-29T07:10:01Z",
      "status" : "ACTIVE"
    }, {
      "id" : "25dcdb21-97de-43cd-b476-31637a47f05d",
      "project_id" : "da261828016849188f4dcc2ef94d9da9",
      "description" : "aa",
      "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec",
      "transit_ip_id" : "15abdf29-4a68-474c-9963-79c4e6d495d7",
      "enterprise_project_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a",
      "network_interface_id" : "9e2f0dbb-68b2-4c4b-9298-fa4f13187976",
      "type" : "COMPUTE",
      "protocol" : "any",
      "internal_service_port" : "0",
      "transit_service_port" : "0",
      "private_ip_address" : "192.168.1.99",
      "created_at" : "2019-04-29T07:15:41Z",
      "updated_at" : "2019-04-29T07:15:41Z",
      "status" : "ACTIVE"
    } ],
    "request_id" : "a7b00469-5a31-4274-bb10-59167243383e",
    "page_info" : {
      "previous_marker" : "24dd6bf5-48f2-4915-ad0b-5bb111d39c83",
      "current_count" : 2
    }
  }
  ```
  
 
#### SDK代码示例
SDK代码示例如下。
#### Java
```
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 ListPrivateDnatsSolution {
    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");
        String projectId = "{project_id}";
        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);
        NatClient client = NatClient.newBuilder()
                .withCredential(auth)
                .withRegion(NatRegion.valueOf("<YOUR REGION>"))
                .build();
        ListPrivateDnatsRequest request = new ListPrivateDnatsRequest();
        try {
            ListPrivateDnatsResponse response = client.listPrivateDnats(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());
        }
    }
}
```
#### Python
```
# coding: utf-8
import os
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 = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"
    credentials = BasicCredentials(ak, sk, projectId)
    client = NatClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(NatRegion.value_of("<YOUR REGION>")) \
        .build()
    try:
        request = ListPrivateDnatsRequest()
        response = client.list_private_dnats(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
```
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")
    projectId := "{project_id}"
    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    hcClient, err := nat.NatClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    client := nat.NewNatClient(hcClient)
    request := &model.ListPrivateDnatsRequest{}
response, err := client.ListPrivateDnats(request)
if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
```
#### 更多
更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/NAT/sdk?api=ListPrivateDnats)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | 查询DNAT规则列表成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-natgateway/ErrorCode.html)。
