NAT
Retrieve Endpoint
Before configuring the endpoint for SDK usage, please refer to the developer guide section on VPC Service Domain Name to understand endpoint-related concepts. Baidu AI Cloud currently supports multiple regions. Please refer to the VPC section in the Region Selection Guide. NAT service is part of the VPC service and adopts the VPC service domain name.
Retrieve AK/SK
To use the Baidu AI Cloud products, you need a Baidu AI Cloud account, a valid AK (Access Key ID) and SK (Secret Access Key) for signature certification. Your AK/SK information can be obtained and understood through the following steps:
Create NatClient
When creating a NAT client, first configure a NAT client configuration-type config instance using endpoint, AK and SK, and then use the config instance to configure the NAT client. The specific configuration method is as follows:
1static final String HOST = "";
2static final String AK = "";
3static final String SK = "";
4NatClientConfiguration config = new NatClientConfiguration();
5config.setCredentials(new DefaultBceCredentials(AK, SK));
6config.setEndpoint(HOST);
7NatClient natClient = new NatClient(config);
Create NAT gateway
Function declaration
1public CreateNatResponse createNat(CreateNatRequest request) {
2 ......
3}
Parameter meaning
Refer to the OpenAPI documentation: Request Parameters for Creating NAT
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "natId": "nat-b58rnkn1g98h"
4}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleCreateNat.java
Query NAT gateway list
Function declaration
1public ListNatResponse listNat(ListNatRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Querying NAT Gateway List
Response value
- Operation succeeded
1{
2 "nats":[
3 {
4 "id":"nat-bir8biqwr45e",
5 "name":"mynat",
6 "vpcId":"vpc-13vuxu016dew",
7 "spec":"small",
8 "status":"unconfigured",
9 "eips":[
10 ],
11 "paymentTiming":"Prepaid",
12 "expiredTime":"2018-08-13T08:10:59Z",
13 "createTime": "2021-04-25 17:22:34"
14 },
15 {
16 "id":"nat-b9q8n98mdxwc",
17 "name":"mynat",
18 "vpcId":"vpc-13vuxu016dew",
19 "spec":"small",
20 "status":"unconfigured",
21 "eips":[
22 ],
23 "paymentTiming":"Prepaid",
24 "expiredTime":"2018-07-27T13:18:00Z",
25 "createTime": "2021-04-25 17:22:34"
26 }
27 ],
28 "marker":"nat-b58rnkn1g98h",
29 "isTruncated": true,
30 "nextMarker": "nat-bi72s924x5xu",
31 "maxKeys": 2,
32 "metadata": For details, refer to the metadata section in the appendix
33}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleListNat.java
Query NAT gateway details
Function declaration
1public GetNatResponse getNat(String natId) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Querying NAT Gateway Details
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "id":"nat-bir8biqwr45e",
4 "name":"mynat",
5 "vpcId":"vpc-13vuxu016dew",
6 "spec":"small",
7 "status":"unconfigured",
8 "eips":[
9 ],
10 "dnatEips":[
11 ],
12 "paymentTiming":"Prepaid",
13 "expiredTime":"2018-08-13T08:10:59Z",
14 "createTime": "2021-04-25 17:22:34",
15 "tags":[
16 {
17 "tagKey": "tagKey",
18 "tagValue": "tagValue"
19 }
20 ]
21}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleGetNat.java
Update NAT gateway name
Function declaration
1public void modifyNat(ModifyNatRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Updating NAT Gateway Name
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleUpdateNat.java
Bind SNAT EIP to the NAT gateway
Function declaration
1public void bindEip(BindEipRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Binding SNAT EIP to NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleBindSnatEip.java
Unbind SNAT EIP from the NAT gateway
Function declaration
1public void unbindEip(BindEipRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Unbinding SNAT EIP from NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleUnbindSnatEip.java
Release NAT gateway
Function declaration
1public void releaseNat(ReleaseNatRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Releasing NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleDeleteNat.java
NAT gateway renewal
Function declaration
1public void purchaseReservedNat(PurchaseReservedNatRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Renewing NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleRenewNat.java
Bind DNAT EIP to the NAT gateway
Function declaration
1public void bindDnatEip(BindDnatEipRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Binding DNAT EIP to NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleBindDnatEip.java
Unbind DNAT EIP from the NAT gateway
Function declaration
1public void unbindDnatEip(BindDnatEipRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Unbinding DNAT EIP from NAT Gateway
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleUnbindDnatEip.java
Create SNAT rules
Function declaration
1public CreateNatRuleResponse createSnatRule(CreateSnatRuleRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Creating SNAT Rules
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "ruleId": "rule-zrsaybxm7nrn"
4}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleCreateSnatRule.java
Create SNAT rules in batches
Function declaration
1public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Creating SNAT Rules in Batches
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "ruleIds": [
4 "rule-zrsaybxm7nrn",
5 "rule-f5kid5g50nua"
6 ]
7}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleBatchCreateSnatRule.java
Delete SNAT rules
Function declaration
1public void deleteSnatRule(DeleteNatRuleRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Deleting SNAT Rules in Batches
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleDeleteSnatRule.java
Update SNAT rules
Function declaration
1public void updateSnatRule(UpdateSnatRuleRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Updating SNAT Rules
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleUpdateSnatRule.java
Query SNAT rules
Function declaration
1public ListSnatRuleResponse listSnatRule(String natId) {
2 ......
3}
4public ListSnatRuleResponse listSnatRule (ListNatRuleRequest request) {
5 ......
6}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Querying SNAT Rules
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "isTruncated": true,
4 "nextMarker": "rule-vza86i2k6dqu",
5 "maxKeys": 2,
6 "rules": [
7 {
8 "ruleId": "rule-k1jenum3v9s6",
9 "ruleName": "s3",
10 "publicIpsAddress": [
11 "100.88.10.185"
12 ],
13 "sourceCIDR": "1.1.1.1/32",
14 "status": "configuring"
15 },
16 {
17 "ruleId": "rule-kdgqkwpske2q",
18 "ruleName": "s2",
19 "publicIpsAddress": [
20 "100.88.10.185"
21 ],
22 "sourceCIDR": "192.168.1.0/24",
23 "status": "configuring"
24 }
25 ]
26}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleListSnatRule.java
Create DNAT rules
Function declaration
1public CreateNatRuleResponse createDnatRule(CreateDnatRuleRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Creating DNAT Rules
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "ruleId": "rule-zrsaybxm7nrn"
4}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleCreateDnatRule.java
Create DNAT rules in batches
Function declaration
1public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Creating DNAT Rules in Batches
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "ruleIds": [
4 "rule-zrsaybxm7nrn",
5 "rule-f5kid5g50nua"
6 ]
7}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleBatchCreateDnatRule.java
Delete DNAT rules
Function declaration
1public void deleteDnatRule(DeleteNatRuleRequest request) {
2 ......
3}
Parameter meaning
Refer to OpenAPI documentation: Request Parameters for Deleting DNAT Rules in Batches
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleDeleteDnatRule.java
Update DNAT rules
Function declaration
1public void updateDnatRule(UpdateDnatRuleRequest request) {
2 ......
3}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Updating DNAT Rules
Response value
- Operation succeeded
No response value
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleUpdateDnatRule.java
Query DNAT rules
Function declaration
1public ListDnatRuleResponse listDnatRule(String natId) {
2 ......
3}
4public ListDnatRuleResponse listDnatRule (ListNatRuleRequest request) {
5 ......
6}
Parameter meaning
Please refer to the OpenAPI documentation Request Parameters for Querying DNAT Rules
Response value
- Operation succeeded
1{
2 "metadata": For details, refer to the metadata section in the appendix,
3 "isTruncated": true,
4 "nextMarker": "rule-pej10dar6pxd",
5 "maxKeys": 2,
6 "rules": [
7 {
8 "ruleId": "rule-29d9jpprcm75",
9 "ruleName": "sg",
10 "publicIpAddress": "100.88.6.197",
11 "privateIpAddress": "192.168.3.3",
12 "publicPort": 333,
13 "privatePort": 333,
14 "status": "active",
15 "protocol": "TCP"
16 },
17 {
18 "ruleId": "rule-72z6p8ni6rce",
19 "ruleName": "sd",
20 "publicIpAddress": "100.88.6.197",
21 "privateIpAddress": "192.168.2.2",
22 "publicPort": 222,
23 "privatePort": 222,
24 "status": "active",
25 "protocol": "UDP"
26 }
27 ]
28}
- Operation failed
For response exception list of operation failure, refer to the NAT Exception List.
Example code
For specific code examples, refer to ExampleListDnatRule.java
Appendix
Public response information in Metadata format
1 {
2 "bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
3 "contentLength":28,
4 "contentType":"application/json;charset=UTF-8",
5 "date":1701917695000,
6 "server":"openresty/1.15.8.1"
7 }
