Creating a Transit Subnet
Function
This API is used to create a transit subnet.
Calling Method
For details, see Calling APIs.
URI
POST /v3/{project_id}/private-nat/transit-subnets
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
project_id |
Yes |
String |
Specifies the project ID. |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
X-Auth-Token |
Yes |
String |
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 value. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
transit_subnet |
Yes |
CreateTransitSubnetOption object |
Specifies the request body for creating a transit subnet. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
name |
Yes |
String |
Specifies the transit subnet name. The name can contain only digits, letters, underscores (_), and hyphens (-). |
|
description |
No |
String |
Provides supplementary information about the transit subnet. The description can contain up to 255 characters and cannot contain angle brackets (<>). |
|
virsubnet_id |
Yes |
String |
Specifies the transit subnet ID. |
|
virsubnet_project_id |
Yes |
String |
Specifies the ID of the project to which the transit subnet belongs. Only digits and lowercase letters are supported. |
|
tags |
No |
Array of Tag objects |
Specifies the tags. |
Response Parameters
Status code: 201
|
Parameter |
Type |
Description |
|---|---|---|
|
transit_subnet |
TransitSubnet object |
Specifies the response body of the transit subnet. |
|
request_id |
String |
Specifies the request ID. |
|
Parameter |
Type |
Description |
|---|---|---|
|
id |
String |
Specifies the transit subnet ID. |
|
name |
String |
Specifies the transit subnet name. |
|
description |
String |
Provides supplementary information about the transit subnet. |
|
virsubnet_project_id |
String |
Specifies the ID of the project to which the transit subnet belongs. |
|
project_id |
String |
Specifies the project ID. |
|
vpc_id |
String |
Specifies the ID of the VPC to which the transit subnet belongs. |
|
virsubnet_id |
String |
Specifies the transit subnet ID. |
|
cidr |
String |
Specifies the CIDR block of the transit subnet. |
|
type |
String |
Specifies the transit subnet type. The value can only be VPC. |
|
status |
String |
Specifies the transit subnet status. The value can be:
|
|
ip_count |
Integer |
Specifies the number of IP addresses that has been assigned from the transit subnet. |
|
created_at |
String |
Specifies when the transit subnet was assigned. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format. |
|
updated_at |
String |
Specifies when the transit subnet was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format. |
|
tags |
Array of Tag objects |
Specifies the tag list. |
Example Requests
Creating a transit subnet
POST https://{Endpoint}/v3/70505c941b9b4dfd82fd351932328a2f/private-nat/transit-subnets
{
"transit_subnet" : {
"name" : "transit-subnet_t1",
"description" : "transit-subnet-description",
"virsubnet_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a",
"virsubnet_project_id" : "aea5011c0bc2454d8645a560345da810",
"tags" : [ {
"key" : "key1",
"value" : "value1"
} ]
}
}
Example Responses
Status code: 201
The transit subnet created.
{
"request_id" : "9882046a9b96f1405472e36d797e33dc",
"transit_subnet" : {
"id" : "48b55781-306c-4a90-9cc0-d376337fae4f",
"name" : "transit-subnet_t1",
"description" : "transit-subnet-description",
"virsubnet_project_id" : "aea5011c0bc2454d8645a560345da810",
"project_id" : "aea5011c0bc2454d8645a560345da810",
"vpc_id" : "f9169a4f-5f0a-41ce-b2a3-834c15b038c2",
"virsubnet_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a",
"cidr" : "192.168.1.0/24",
"type" : "VPC",
"status" : "ACTIVE",
"ip_count" : 0,
"created_at" : "2021-07-01T09:15:54Z",
"updated_at" : "2021-04-01T09:15:54Z",
"tags" : [ {
"key" : "key1",
"value" : "value1"
} ]
}
}
SDK Sample Code
The SDK sample code is as follows.
Creating a transit subnet
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 60 61 62 63 64 |
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 CreateTransitSubnetSolution { 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(); CreateTransitSubnetRequest request = new CreateTransitSubnetRequest(); CreateTransitSubnetRequestBody body = new CreateTransitSubnetRequestBody(); List<Tag> listTransitSubnetTags = new ArrayList<>(); listTransitSubnetTags.add( new Tag() .withKey("key1") .withValue("value1") ); CreateTransitSubnetOption transitSubnetbody = new CreateTransitSubnetOption(); transitSubnetbody.withName("transit-subnet_t1") .withDescription("transit-subnet-description") .withVirsubnetId("2759da7b-8015-404c-ae0a-a389007b0e2a") .withVirsubnetProjectId("aea5011c0bc2454d8645a560345da810") .withTags(listTransitSubnetTags); body.withTransitSubnet(transitSubnetbody); request.withBody(body); try { CreateTransitSubnetResponse response = client.createTransitSubnet(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()); } } } |
Creating a transit subnet
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 |
# 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 = CreateTransitSubnetRequest() listTagsTransitSubnet = [ Tag( key="key1", value="value1" ) ] transitSubnetbody = CreateTransitSubnetOption( name="transit-subnet_t1", description="transit-subnet-description", virsubnet_id="2759da7b-8015-404c-ae0a-a389007b0e2a", virsubnet_project_id="aea5011c0bc2454d8645a560345da810", tags=listTagsTransitSubnet ) request.body = CreateTransitSubnetRequestBody( transit_subnet=transitSubnetbody ) response = client.create_transit_subnet(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Creating a transit subnet
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 |
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 := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := nat.NewNatClient( nat.NatClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateTransitSubnetRequest{} var listTagsTransitSubnet = []model.Tag{ { Key: "key1", Value: "value1", }, } descriptionTransitSubnet:= "transit-subnet-description" transitSubnetbody := &model.CreateTransitSubnetOption{ Name: "transit-subnet_t1", Description: &descriptionTransitSubnet, VirsubnetId: "2759da7b-8015-404c-ae0a-a389007b0e2a", VirsubnetProjectId: "aea5011c0bc2454d8645a560345da810", Tags: &listTagsTransitSubnet, } request.Body = &model.CreateTransitSubnetRequestBody{ TransitSubnet: transitSubnetbody, } response, err := client.CreateTransitSubnet(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 |
|---|---|
|
201 |
The transit subnet created. |
|
400 |
Bad Request |
|
409 |
Conflict |
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