
# 查询SNAT规则列表 - ListNatGatewaySnatRules
#### 功能介绍
查询SNAT规则列表。
#### 接口约束
可以在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:snatRules:list | List | snatRule \* | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
GET /v2/{project_id}/snat_rules
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目的ID。 |
   
表2Query参数 
| 参数                  | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| admin_state_up      | 否    | Boolean          | 解冻/冻结状态。 取值范围： - true：解冻   - false：冻结                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| cidr                | 否    | String           | 可以是网段或者主机格式，与network_id参数二选一。 Source_type=0时，cidr必须是vpc子网网段的子集(不能相等）; Source_type=1时，cidr必须指定专线侧网段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| limit               | 否    | Integer          | 功能说明：每页返回的个数。 取值范围：1\~2000。 默认值：2000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| floating_ip_address | 否    | String           | 功能说明：弹性公网IP，多个弹性公网IP使用逗号分隔。 取值范围：最大长度1024字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| global_eip_address  | 否    | String           | 功能说明：全域弹性公网IP，多个全域弹性公网IP使用逗号分隔。 取值范围：最大长度1024字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| floating_ip_id      | 否    | String           | 功能说明：弹性公网IP的id，多个弹性公网IP使用逗号分隔。 取值范围：最大长度4096字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| global_eip_id       | 否    | String           | 功能说明：全域弹性公网IP的id，多个全域弹性公网IP使用逗号分隔。 取值范围：最大长度4096字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| id                  | 否    | String           | SNAT规则的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| description         | 否    | String           | SNAT规则的描述，长度范围小于等于255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| created_at          | 否    | String           | SNAT规则的创建时间，格式是yyyy-mm-dd hh:mm:ss.SSSSSS。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| nat_gateway_id      | 否    | Array of strings | 公网NAT网关实例的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| network_id          | 否    | String           | 规则使用的网络id。与cidr参数二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| source_type         | 否    | Integer          | 资源类型。 取值范围： - 0：VPC侧，可以指定network_id 或者cidr   - 1：专线侧，只能指定cidr    不输入默认为0（VPC）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| status              | 否    | String           | SNAT规则的状态。 取值为: - ACTIVE: 可用   - PENDING_CREATE: 创建中   - PENDING_UPDATE: 更新中   - PENDING_DELETE: 删除中   - EIP_FREEZED: EIP冻结   - INACTIVE: 不可用    |
| marker              | 否    | String           | 分页查询的起始资源ID，表示从指定资源的下一条记录开始查询。 - 若不传入marker和limit参数，查询结果返回第一页全部资源记录（默认2000条）。   - 若不传入marker参数，limit为10，查询结果返回第1\~10条资源记录。   - 若marker为第10条记录的资源ID，limit为10，查询结果返回第11\~20条资源记录。   - 若marker为第10条记录的资源ID，不传入limit参数，查询结果返回第11条及之后的资源记录（默认2000条）。                                                                                                                                                                                                                                                   |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                             |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 用户Token也就是调用获取用户Token获取请求认证接口的响应值，该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                                                                                 | 描述              |
|:---|:---|:---|
| snat_rules | Array of [NatGatewaySnatRuleResponseBody] objects | 查询SNAT规则列表的响应体。 |
   
 表5NatGatewaySnatRuleResponseBody 
| 参数                  | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| id                  | String  | SNAT规则的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| tenant_id           | String  | 项目的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| nat_gateway_id      | String  | 公网NAT网关实例的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| cidr                | String  | cidr，可以是网段或者主机格式，与network_id参数二选一。 Source_type=0时，cidr必须是vpc 子网网段的子集(不能相等）; Source_type=1时，cidr必须指定专线侧网段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| source_type         | Integer | 资源类型。 取值范围： - 0：VPC侧，可以指定network_id 或者cidr   - 1：专线侧，只能指定cidr    不输入默认为0（VPC）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| floating_ip_id      | String  | 功能说明: 弹性公网IP的id，多个弹性公网IP使用逗号分隔。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description         | String  | SNAT规则的描述，长度范围小于等于255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| status              | String  | SNAT规则的状态。 取值为: - ACTIVE: 可用   - PENDING_CREATE: 创建中   - PENDING_UPDATE: 更新中   - PENDING_DELETE: 删除中   - EIP_FREEZED: EIP冻结   - INACTIVE: 不可用    |
| created_at          | String  | SNAT规则的创建时间，格式是yyyy-mm-dd hh:mm:ss.SSSSSS。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| network_id          | String  | 规则使用的网络id。与cidr参数二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| admin_state_up      | Boolean | 解冻/冻结状态。 取值范围: - true: 解冻   - false: 冻结                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| floating_ip_address | String  | 功能说明: 弹性公网IP，多个弹性公网IP使用逗号分隔。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| freezed_ip_address  | String  | 功能说明: 冻结的弹性公网IP，多个冻结的弹性公网IP使用逗号分隔。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| global_eip_id       | String  | 全域弹性公网IP的id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| global_eip_address  | String  | 全域弹性公网IP的地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
#### 请求示例
```
GET https://{NAT_endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/snat_rules?limit=2
```
#### 响应示例
**状态码：200**
查询SNAT规则列表成功。
```
{
  "snat_rules" : [ {
    "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1",
    "status" : "ACTIVE",
    "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541",
    "admin_state_up" : true,
    "network_id" : "9a469561-daac-4c94-88f5-39366e5ea193",
    "source_type" : 0,
    "tenant_id" : "d199ba7e0ba64899b2e81518104b1526",
    "created_at" : "2017-11-15 15:44:42.595173",
    "id" : "79195d50-0271-41f1-bded-4c089b2502ff",
    "floating_ip_address" : "5.21.11.242",
    "freezed_ip_address" : "",
    "description" : "my snat rule 01"
  }, {
    "floating_ip_id" : "6e496fba-abe9-4f5e-9406-2ad8c809ac8c",
    "status" : "ACTIVE",
    "nat_gateway_id" : "e824f1b4-4290-4ebc-8322-cfff370dbd1e",
    "admin_state_up" : true,
    "network_id" : "97e89905-f9c8-4ae3-9856-392b0b2fbe7f",
    "source_type" : 0,
    "tenant_id" : "d199ba7e0ba64899b2e81518104b1526",
    "created_at" : "2017-11-17 07:43:44.000000",
    "id" : "4a1a10d7-0d9f-4846-8cda-24cffeffef5c",
    "floating_ip_address" : "5.21.11.142,5.21.11.143",
    "freezed_ip_address" : "5.21.11.142",
    "description" : "my snat rule 01"
  } ]
}
```
#### 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 ListNatGatewaySnatRulesSolution {
    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();
        ListNatGatewaySnatRulesRequest request = new ListNatGatewaySnatRulesRequest();
        try {
            ListNatGatewaySnatRulesResponse response = client.listNatGatewaySnatRules(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 = ListNatGatewaySnatRulesRequest()
        response = client.list_nat_gateway_snat_rules(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.ListNatGatewaySnatRulesRequest{}
response, err := client.ListNatGatewaySnatRules(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=ListNatGatewaySnatRules)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | 查询SNAT规则列表成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-natgateway/ErrorCode.html)。
