Querying Public NAT Gateways
Function
This API is used to query public NAT gateways.
Constraints
You can type the question mark (?) and ampersand (&) at the end of the URI to define multiple search criteria. All optional parameters can be filtered. For details, see the example request.
Calling Method
For details, see Calling APIs.
URI
GET /v2/{project_id}/nat_gateways
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Specifies the project ID. Minimum: 1 Maximum: 36 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
id |
No |
String |
Specifies the public NAT gateway ID. Minimum: 1 Maximum: 36 |
enterprise_project_id |
No |
String |
Specifies the ID of the enterprise project associated with the public NAT gateway when the gateway is created. Default: 0 Minimum: 1 Maximum: 36 |
description |
No |
String |
Provides supplementary information about the public NAT gateway. The description can contain up to 255 characters and cannot contain angle brackets (<>). Minimum: 0 Maximum: 255 |
created_at |
No |
String |
Specifies when the public NAT gateway was created. The time is in yyyy-mm-dd hh:mm:ss.SSSSSS format. Minimum: 1 Maximum: 36 |
name |
No |
String |
Specifies the public NAT gateway name. You can enter up to 64 characters. Only digits, letters, underscores (_), and hyphens (-) are allowed. Minimum: 1 Maximum: 64 |
status |
No |
Array |
Specifies the public NAT gateway status. The value can be: ACTIVE: The public NAT gateway is available. PENDING_CREATE: The public NAT gateway is being created. PENDING_UPDATE: The public NAT gateway is being updated. PENDING_DELETE: The public NAT gateway is being deleted. INACTIVE: The public NAT gateway is unavailable. Array Length: 1 - 10 Enumeration values:
|
spec |
No |
Array |
Specifies the public NAT gateway specifications. The value can be: 1: small, which supports a maximum of 10,000 SNAT connections 2: medium, which supports up to 50,000 SNAT connections. 3: large, which supports up to 200,000 SNAT connections. 4: extra-large, which supports up to 1,000,000 SNAT connections. Array Length: 1 - 10 Enumeration values:
|
admin_state_up |
No |
Boolean |
Specifies whether the public NAT gateway is frozen. The value can be: true: The public NAT gateway is unfrozen. false: The public NAT gateway is frozen. |
internal_network_id |
No |
String |
Specifies the network ID of the downstream interface (the next hop of DVR) of the public NAT gateway. DVR is Distributed Virtual Routing. Minimum: 36 Maximum: 36 |
router_id |
No |
String |
Specifies the VPC ID. Minimum: 36 Maximum: 36 |
limit |
No |
Integer |
Specifies the number of records displayed on each page. Value range: 0 to 2000 Default value: 2000 Minimum: 1 Maximum: 2000 Default: 2000 |
marker |
No |
String |
Specifies the ID of the resource from which a pagination query starts, indicating that the query starts from the next record of the specified resource.
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 for obtaining a user token. This API is the only one that does not require authentication. The value of X-Subject-Token in the response header is the token. Minimum: 1 Maximum: 10240 |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
nat_gateways |
Array of NatGatewayResponseBody objects |
Specifies the response body for querying public NAT gateways. For details, see the NatGateway description. Array Length: 2000 - 0 |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Specifies the public NAT gateway ID. Minimum: 36 Maximum: 36 |
tenant_id |
String |
Specifies the project ID. Minimum: 1 Maximum: 36 |
name |
String |
Specifies the public NAT gateway name. You can enter up to 64 characters. Minimum: 1 Maximum: 64 |
description |
String |
Provides supplementary information about the public NAT gateway. The description can contain up to 255 characters and cannot contain angle brackets (<>). Minimum: 0 Maximum: 255 |
spec |
String |
Specifies the public NAT gateway specifications. The value can be: 1: small, which supports a maximum of 10,000 SNAT connections 2: medium, which supports up to 50,000 SNAT connections. 3: large, which supports up to 200,000 SNAT connections. 4: extra-large, which supports up to 1,000,000 SNAT connections. Enumeration values:
|
status |
String |
Specifies the public NAT gateway status. The value can be: ACTIVE: The public NAT gateway is available. PENDING_CREATE: The public NAT gateway is being created. PENDING_UPDATE: The public NAT gateway is being updated. PENDING_DELETE: The public NAT gateway is being deleted. INACTIVE: The public NAT gateway is unavailable. Enumeration values:
|
admin_state_up |
Boolean |
Specifies whether the public NAT gateway is frozen. The value can be:
|
created_at |
String |
Specifies when the public NAT gateway was created. The time is in yyyy-mm-dd hh:mm:ss.SSSSSS format. Minimum: 1 Maximum: 36 |
router_id |
String |
Specifies the VPC ID. Minimum: 36 Maximum: 36 |
internal_network_id |
String |
Specifies the network ID of the downstream interface (the next hop of DVR) of the public NAT gateway. DVR is Distributed Virtual Routing. Minimum: 36 Maximum: 36 |
enterprise_project_id |
String |
Specifies the ID of the enterprise project associated with the public NAT gateway when the gateway is created. Minimum: 1 Maximum: 36 |
session_conf |
SessionConfiguration object |
Specifies the session parameters for the public NAT gateway. |
ngport_ip_address |
String |
Specifies the private IP address of the public NAT gateway, which is assigned by the VPC subnet. Minimum: 7 Maximum: 15 |
billing_info |
String |
Specifies the order information. This parameter is available only when you buy yearly/monthly resources. This parameter is left blank when your buy pay-per-use resources. |
dnat_rules_limit |
Long |
Specifies the maximum number of DNAT rules on a public NAT gateway. The default value is 200. Minimum: 1 Maximum: 100000 |
snat_rule_public_ip_limit |
Integer |
Specifies the maximum number of SNAT rules on a public NAT gateway. The default value is 20. Minimum: 1 Maximum: 100 |
Parameter |
Type |
Description |
---|---|---|
tcp_session_expire_time |
Integer |
Specifies the TCP session duration. Minimum: 40 Maximum: 7200 |
udp_session_expire_time |
Integer |
Specifies the UDP session duration. Minimum: 40 Maximum: 7200 |
icmp_session_expire_time |
Integer |
Specifies the ICMP session duration. Minimum: 10 Maximum: 7200 |
tcp_time_wait_time |
Integer |
Specifies how long the side that actively closed the TCP connection is in the TIME_WAIT state. Minimum: 0 Maximum: 1800 |
Example Requests
GET https://{Endpoint}/v2/27e25061336f4af590faeabeb7fcd9a3/nat_gateways?status=ACTIVE
Example Responses
Status code: 200
Query operation succeeded.
{ "nat_gateways" : [ { "id" : "a253be25-ae7c-4013-978b-3c0785eccd63", "router_id" : "b1d81744-5165-48b8-916e-e56626feb88f", "status" : "ACTIVE", "description" : "nat01", "admin_state_up" : true, "tenant_id" : "27e25061336f4af590faeabeb7fcd9a3", "created_at" : "2017-11-15 14:50:39.505112", "spec" : "2", "internal_network_id" : "5930796a-6026-4d8b-8790-6c6bfc9f87e8", "name" : "wj3", "enterprise_project_id" : "0aad99bc-f5f6-4f78-8404-c598d76b0ed2", "billing_info" : "", "dnat_rules_limit" : 200, "snat_rule_public_ip_limit" : 20, "ngport_ip_address" : "192.168.0.138" }, { "id" : "e824f1b4-4290-4ebc-8322-cfff370dbd1e", "router_id" : "305dc52f-13dd-429b-a2d4-444a1039ba0b", "status" : "ACTIVE", "description" : "1234", "admin_state_up" : true, "tenant_id" : "27e25061336f4af590faeabeb7fcd9a3", "created_at" : "2017-11-17 07:41:07.538062", "spec" : "2", "internal_network_id" : "fc09463b-4ef8-4c7a-93c8-92d9ca6daf9d", "name" : "lyl001", "enterprise_project_id" : "0", "billing_info" : "", "dnat_rules_limit" : 200, "snat_rule_public_ip_limit" : 20, "ngport_ip_address" : "192.168.5.210" } ] }
SDK Sample Code
The SDK sample code is as follows.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.nat.v2.region.NatRegion; import com.huaweicloud.sdk.nat.v2.*; import com.huaweicloud.sdk.nat.v2.model.*; import java.util.List; import java.util.ArrayList; public class ListNatGatewaysSolution { 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(); ListNatGatewaysRequest request = new ListNatGatewaysRequest(); request.withId("<id>"); request.withEnterpriseProjectId("<enterprise_project_id>"); request.withDescription("<description>"); request.withCreatedAt("<created_at>"); request.withName("<name>"); request.withStatus(); request.withSpec(); request.withAdminStateUp(<admin_state_up>); request.withInternalNetworkId("<internal_network_id>"); request.withRouterId("<router_id>"); request.withLimit(<limit>); request.withMarker("<marker>"); try { ListNatGatewaysResponse response = client.listNatGateways(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()); } } } |
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 |
# 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 = ListNatGatewaysRequest() request.id = "<id>" request.enterprise_project_id = "<enterprise_project_id>" request.description = "<description>" request.created_at = "<created_at>" request.name = "<name>" request.status = request.spec = request.admin_state_up = <AdminStateUp> request.internal_network_id = "<internal_network_id>" request.router_id = "<router_id>" request.limit = <limit> request.marker = "<marker>" response = client.list_nat_gateways(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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.ListNatGatewaysRequest{} idRequest:= "<id>" request.Id = &idRequest enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest descriptionRequest:= "<description>" request.Description = &descriptionRequest createdAtRequest:= "<created_at>" request.CreatedAt = &createdAtRequest nameRequest:= "<name>" request.Name = &nameRequest adminStateUpRequest:= <admin_state_up> request.AdminStateUp = &adminStateUpRequest internalNetworkIdRequest:= "<internal_network_id>" request.InternalNetworkId = &internalNetworkIdRequest routerIdRequest:= "<router_id>" request.RouterId = &routerIdRequest limitRequest:= int32(<limit>) request.Limit = &limitRequest markerRequest:= "<marker>" request.Marker = &markerRequest response, err := client.ListNatGateways(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 |
Query operation succeeded. |
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