Files
doc-exports/docs/natgw/api-ref/CreatePrivateSnat.html
zhoumeng35 f463d397b5 NAT api 0920
Reviewed-by: Hajba, László Antal <laszlo-antal.hajba@t-systems.com>
Co-authored-by: zhoumeng35 <zhoumeng35@huawei.com>
Co-committed-by: zhoumeng35 <zhoumeng35@huawei.com>
2025-05-05 12:02:05 +00:00

358 lines
19 KiB
HTML

<a name="CreatePrivateSnat"></a><a name="CreatePrivateSnat"></a>
<h1 class="topictitle1">Creating an SNAT Rule</h1>
<div id="body1708331107508"><div class="section"><h4 class="sectiontitle">Function</h4><p>This API is used to create an SNAT rule.</p>
</div>
<div class="section"><h4 class="sectiontitle">Constraints</h4><p>When you are creating an SNAT rule, status of the NAT gateway must be set to <strong>ACTIVE</strong>.</p>
</div>
<div class="section" id="CreatePrivateSnat__atuogenerate_1"><h4 class="sectiontitle">URI</h4><p>POST /v3/{project_id}/private-nat/snat-rules</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Path Parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.3.3.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.1 "><p>project_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.3.3.2.5.1.4 "><p>Specifies the project ID.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Request Parameters</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__HeaderParameter" frame="border" border="1" rules="all"><caption><b>Table 2 </b>Request header parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.2.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.2.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.2.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.4.2.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.2.2.5.1.1 "><p>X-Auth-Token</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.2.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.2.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.2.2.5.1.4 "><p>Specifies the user token.</p>
<p>It is a response to the API used to obtain a user token. This API is the only one that does not require authentication.</p>
<p>The value of <strong>X-Subject-Token</strong> in the response header is the token value.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__request_CreatePrivateSnatOptionBody" frame="border" border="1" rules="all"><caption><b>Table 3 </b>Request body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.3.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.3.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.3.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.4.3.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.5.1.1 "><p>snat_rule</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.5.1.3 "><p><a href="#CreatePrivateSnat__request_CreatePrivateSnatOption">CreatePrivateSnatOption</a> object</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.3.2.5.1.4 "><p>Specifies the request body for creating an SNAT rule.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablenoborder"><a name="CreatePrivateSnat__request_CreatePrivateSnatOption"></a><a name="request_CreatePrivateSnatOption"></a><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__request_CreatePrivateSnatOption" frame="border" border="1" rules="all"><caption><b>Table 4 </b>CreatePrivateSnatOption</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.4.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.4.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.4.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.4.4.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.1 "><p>gateway_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.4.2.5.1.4 "><p>Specifies the private NAT gateway ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.1 "><p>cidr</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.2 "><p>No</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.4.2.5.1.4 "><p>Specifies the CIDR block that matches the SNAT rule.</p>
<p>Constraint: Either this parameter or <strong>virsubnet_id</strong> must be specified.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.1 "><p>virsubnet_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.2 "><p>No</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.4.2.5.1.4 "><p>Specifies the ID of the subnet that matches the SNAT rule.</p>
<p>Constraint: Either this parameter or <strong>cidr</strong> must be specified.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.1 "><p>description</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.2 "><p>No</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.4.2.5.1.4 "><p>Provides supplementary information about the SNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (&lt;&gt;).</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.1 "><p>transit_ip_ids</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.4.2.5.1.3 "><p>Array of strings</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.4.4.2.5.1.4 "><p>Specifies the IDs of the transit IP addresses.</p>
<p>Constraints: A maximum number of 20 IDs is allowed.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Response Parameters</h4><p><strong>Status code: 201</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__response_CreatePrivateSnatResponseBody" frame="border" border="1" rules="all"><caption><b>Table 5 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.3.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.3.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.5.3.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.3.2.4.1.1 "><p>snat_rule</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.3.2.4.1.2 "><p><a href="#CreatePrivateSnat__response_PrivateSnat">PrivateSnat</a> object</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.3.2.4.1.3 "><p>Specifies the response body of the SNAT rule.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.3.2.4.1.1 "><p>request_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.3.2.4.1.3 "><p>Specifies the request ID.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablenoborder"><a name="CreatePrivateSnat__response_PrivateSnat"></a><a name="response_PrivateSnat"></a><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__response_PrivateSnat" frame="border" border="1" rules="all"><caption><b>Table 6 </b>PrivateSnat</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.4.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.4.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.5.4.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the SNAT rule ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>project_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the project ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>gateway_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the private NAT gateway ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>cidr</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the CIDR block that matches the SNAT rule.</p>
<p>Constraints:</p>
<ul><li><p>Either this parameter or <strong>virsubnet_id</strong> must be specified.</p>
</li><li><p>The CIDR block cannot be the same as that of an existing SNAT rule.</p>
</li></ul>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>virsubnet_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the ID of the subnet that matches the SNAT rule.</p>
<p>Constraint: Either this parameter or <strong>cidr</strong> must be specified.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>description</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Provides supplementary information about the SNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (&lt;&gt;).</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>transit_ip_associations</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>Array of <a href="#CreatePrivateSnat__response_AssociatedTransitIp">AssociatedTransitIp</a> objects</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the list of details of associated transit IP addresses.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>created_at</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the time when the SNAT rule was created. It is a UTC time in <em>yyyy-mm-ddThh:mm:ssZ</em> format.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>updated_at</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the time when the SNAT rule was updated. It is a UTC time in <em>yyyy-mm-ddThh:mm:ssZ</em> format.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>enterprise_project_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the enterprise project ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.1 "><p>status</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.4.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.4.2.4.1.3 "><p>Specifies the SNAT rule status of a private NAT gateway.</p>
<p>The value can be:</p>
<ul><li><p><strong>ACTIVE</strong>: The SNAT rule is running properly.</p>
</li><li><p><strong>FROZEN</strong>: The SNAT rule is frozen.</p>
</li></ul>
<p>Enumeration values:</p>
<ul><li><p><strong>ACTIVE</strong></p>
</li><li><p><strong>FROZEN</strong></p>
</li></ul>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablenoborder"><a name="CreatePrivateSnat__response_AssociatedTransitIp"></a><a name="response_AssociatedTransitIp"></a><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__response_AssociatedTransitIp" frame="border" border="1" rules="all"><caption><b>Table 7 </b>AssociatedTransitIp</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.5.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="25%" id="mcps1.3.5.5.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.5.5.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.5.2.4.1.1 "><p>transit_ip_id</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.5.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.5.2.4.1.3 "><p>Specifies the ID of the transit IP address.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.5.2.4.1.1 "><p>transit_ip_address</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.3.5.5.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.5.5.2.4.1.3 "><p>Specifies the transit IP address.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Example Requests</h4><p>Creating an SNAT rule (Setting <strong>description</strong> to <strong>my_snat_rule01</strong>, <strong>gateway_id</strong> to <strong>80da6f26-94eb-4537-97f0-5a56f4d04cfb</strong>, <strong>virsubnet_id</strong> to <strong>5b9ea497-727d-4ad0-a99e-3984b3f5aaed</strong>, and <strong>transit_ip_ids</strong> to <strong>36a3049a-1682-48b3-b1cf-cb986a3350ef</strong>)</p>
<pre class="screen">POST https://{Endpoint}/v3/cfa563efb77d4b6d9960781d82530fd8/private-nat/snat-rules
{
"snat_rule" : {
"description" : "my_snat_rule01",
"gateway_id" : "80da6f26-94eb-4537-97f0-5a56f4d04cfb",
"virsubnet_id" : "5b9ea497-727d-4ad0-a99e-3984b3f5aaed",
"transit_ip_ids" : [ "36a3049a-1682-48b3-b1cf-cb986a3350ef" ]
}
}</pre>
</div>
<div class="section"><h4 class="sectiontitle">Example Responses</h4><p><strong>Status code: 201</strong></p>
<p>SNAT rule created.</p>
<pre class="screen">{
"snat_rule" : {
"id" : "af4dbb83-7ca0-4ed1-b28b-668c1f9c6b81",
"project_id" : "cfa563efb77d4b6d9960781d82530fd8",
"description" : "snat rule description",
"gateway_id" : "80da6f26-94eb-4537-97f0-5a56f4d04cfb",
"cidr" : "",
"virsubnet_id" : "5b9ea497-727d-4ad0-a99e-3984b3f5aaed",
"transit_ip_associations" : [ {
"transit_ip_id" : "36a3049a-1682-48b3-b1cf-cb986a3350ef",
"transit_ip_address" : "172.20.1.10"
} ],
"created_at" : "2019-10-22T03:31:19",
"updated_at" : "2019-10-22T03:31:19",
"status" : "ACTIVE"
},
"request_id" : "2937502e-73f9-4ba5-ae75-2293a0b35fb8"
}</pre>
</div>
<div class="section"><h4 class="sectiontitle">Status Codes</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreatePrivateSnat__status_code" frame="border" border="1" rules="all"><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="15%" id="mcps1.3.8.2.1.3.1.1"><p>Status Code</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="85%" id="mcps1.3.8.2.1.3.1.2"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.8.2.1.3.1.1 "><p>201</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.8.2.1.3.1.2 "><p>SNAT rule created.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Error Codes</h4><p>See <a href="ErrorCode.html">Error Codes</a>.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="PrivateNatSnat.html">SNAT Rules</a></div>
</div>
</div>