Creating a P2P Site Network
Function
This API is used to create a P2P site network.
Debugging
You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.
URI
POST /v3/{domain_id}/dcaas/p2p-site-networks
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
domain_id |
Yes |
String |
Account ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
No |
String |
User token. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
p2p_site_network |
Yes |
CreateP2PSiteNetwork object |
Request body for creating a P2P site network. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
name |
Yes |
String |
Instance name. |
description |
No |
String |
Resource description. Angle brackets (<>) are not allowed. |
tags |
No |
Array of Tag objects |
Resource tags. |
enterprise_project_id |
No |
String |
ID of the enterprise project that the resource belongs to. |
sites |
Yes |
Array of CreateSiteInformation objects |
Definition of the two ends of a site-to-site connection on an end-to-end (P2P) site network. The length is fixed to an array of 2. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
Yes |
String |
Tag key. The key can contain a maximum of 128 Unicode characters, including letters, digits, hyphens (-), and underscores (_). |
value |
No |
String |
Tag value. The value can contain a maximum of 255 Unicode characters, including letters, digits, hyphens (-), underscores (_), and periods (.). |
Response Parameters
Status code: 202
Parameter |
Type |
Description |
---|---|---|
request_id |
String |
Request ID. |
site_network |
SiteNetworkEntry object |
Site network. |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Instance ID. |
name |
String |
Instance name. |
description |
String |
Resource description. Angle brackets (<>) are not allowed. |
created_at |
String |
Time when the resource was created. The time is in the yyyy-MM-ddTHH:mm:ss format. |
updated_at |
String |
Time when the resource was updated. The time must be in the yyyy-MM-ddTHH:mm:ss format. |
domain_id |
String |
ID of the account that the instance belongs to. |
state |
String |
Site network status.
|
enterprise_project_id |
String |
ID of the enterprise project that the resource belongs to. |
apply_policy_id |
String |
Policy ID. |
tags |
Array of Tag objects |
Resource tags. |
topology |
String |
Site network topology.
|
connections |
Array of SiteConnection objects |
List of site-to-site connections. |
sites |
Array of SiteInformation objects |
A node in a point-to-point or mesh topology. |
hub_site |
SiteInformation object |
Site information. |
spoke_sites |
Array of SiteInformation objects |
Site list. |
Parameter |
Type |
Description |
---|---|---|
key |
String |
Tag key. The key can contain a maximum of 128 Unicode characters, including letters, digits, hyphens (-), and underscores (_). |
value |
String |
Tag value. The value can contain a maximum of 255 Unicode characters, including letters, digits, hyphens (-), underscores (_), and periods (.). |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Instance ID. |
site_network_id |
String |
Site network ID. |
state |
String |
Site-to-site connection status.
|
created_at |
String |
Time when the resource was created. The time is in the yyyy-MM-ddTHH:mm:ss format. |
updated_at |
String |
Time when the resource was updated. The time must be in the yyyy-MM-ddTHH:mm:ss format. |
edge_pair |
Array of DirectedEdge objects |
Definition of the two ends of a site-to-site connection. The length is fixed to an array of 2. |
cross_region_type |
String |
Communications within a region or between regions.
|
global_connection_bandwidth_id |
String |
Global connection bandwidth ID. |
bandwidth_size |
Integer |
Amount of bandwidth, in Mbit/s. |
is_frozen |
Boolean |
Whether the resource is frozen. |
frozen_effect |
String |
Resource frozen effect.
|
is_bind_bandwidth |
Boolean |
Whether a bandwidth package is bound. |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Instance ID. |
region_id |
String |
Region ID. |
gateway_id |
String |
Gateway ID. |
gateway_type |
String |
Gateway type. GDGW indicates global DC gateways. |
site_code |
String |
Site code. |
project_id |
String |
Project ID. |
Parameter |
Type |
Description |
---|---|---|
region_id |
String |
Region ID. |
project_id |
String |
Project ID. |
gateway_type |
String |
Gateway type. GDGW indicates global DC gateways. |
gateway_id |
String |
Gateway ID. |
site_code |
String |
Site code. |
asn |
Long |
ASN of the network instance when BGP is used for routing. |
Example Requests
Creating a P2P site network
POST /v3/{domain_id}/dcaas/p2p-site-networks { "p2p_site_network" : { "name" : "name", "description" : "description", "sites" : [ { "gateway_id" : "1c233723-234c-4b50-8fba-7072b4c6aa1a", "project_id" : "XXX", "region_id" : "region-abc", "gateway_type" : "GDGW" }, { "gateway_id" : "8641d7f0-bd0c-49fe-8b70-3649cd7dd9b1", "project_id" : "XXX", "region_id" : "region-abc", "gateway_type" : "GDGW" } ] } }
Example Responses
Status code: 202
The P2P site network has been created.
{ "request_id" : "a3bad420-33b8-4e26-9e9b-bdf67aa8e72b", "site_network" : { "id" : "a3bad420-33b8-4e26-9e9b-bdf67aa8e72b", "name" : "name", "description" : "description", "domain_id" : "XXX", "state" : "CREATING", "created_at" : "2023-10-09T10:15:32.134Z", "updated_at" : "2023-10-09T10:15:32.134Z", "enterprise_project_id" : "0", "apply_policy_id" : "a3bad420-33b8-4e26-9e9b-bdf67aa8e72b", "topology" : "p2p", "connections" : [ ] } }
SDK Sample Code
The SDK sample code is as follows.
Creating a P2P site network
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 65 66 67 68 69 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.GlobalCredentials; 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.cc.v3.region.CcRegion; import com.huaweicloud.sdk.cc.v3.*; import com.huaweicloud.sdk.cc.v3.model.*; import java.util.List; import java.util.ArrayList; public class CreateP2PSiteNetworkSolution { 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 GlobalCredentials() .withAk(ak) .withSk(sk); CcClient client = CcClient.newBuilder() .withCredential(auth) .withRegion(CcRegion.valueOf("<YOUR REGION>")) .build(); CreateP2PSiteNetworkRequest request = new CreateP2PSiteNetworkRequest(); CreateP2PSiteNetworkRequestBody body = new CreateP2PSiteNetworkRequestBody(); List<CreateSiteInformation> listP2pSiteNetworkSites = new ArrayList<>(); listP2pSiteNetworkSites.add( new CreateSiteInformation() .withRegionId("region-abc") .withGatewayType(CreateSiteInformation.GatewayTypeEnum.fromValue("GDGW")) .withProjectId("XXX") .withGatewayId("1c233723-234c-4b50-8fba-7072b4c6aa1a") ); listP2pSiteNetworkSites.add( new CreateSiteInformation() .withRegionId("region-abc") .withGatewayType(CreateSiteInformation.GatewayTypeEnum.fromValue("GDGW")) .withProjectId("XXX") .withGatewayId("8641d7f0-bd0c-49fe-8b70-3649cd7dd9b1") ); CreateP2PSiteNetwork p2pSiteNetworkbody = new CreateP2PSiteNetwork(); p2pSiteNetworkbody.withName("name") .withDescription("description") .withSites(listP2pSiteNetworkSites); body.withP2pSiteNetwork(p2pSiteNetworkbody); request.withBody(body); try { CreateP2PSiteNetworkResponse response = client.createP2PSiteNetwork(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 P2P site network
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 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdkcc.v3.region.cc_region import CcRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcc.v3 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"] credentials = GlobalCredentials(ak, sk) client = CcClient.new_builder() \ .with_credentials(credentials) \ .with_region(CcRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateP2PSiteNetworkRequest() listSitesP2pSiteNetwork = [ CreateSiteInformation( region_id="region-abc", gateway_type="GDGW", project_id="XXX", gateway_id="1c233723-234c-4b50-8fba-7072b4c6aa1a" ), CreateSiteInformation( region_id="region-abc", gateway_type="GDGW", project_id="XXX", gateway_id="8641d7f0-bd0c-49fe-8b70-3649cd7dd9b1" ) ] p2pSiteNetworkbody = CreateP2PSiteNetwork( name="name", description="description", sites=listSitesP2pSiteNetwork ) request.body = CreateP2PSiteNetworkRequestBody( p2p_site_network=p2pSiteNetworkbody ) response = client.create_p2_p_site_network(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 P2P site network
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 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" cc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cc/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cc/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cc/v3/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 := global.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := cc.NewCcClient( cc.CcClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateP2PSiteNetworkRequest{} gatewayTypeSites:= model.GetCreateSiteInformationGatewayTypeEnum().GDGW gatewayTypeSites1:= model.GetCreateSiteInformationGatewayTypeEnum().GDGW var listSitesP2pSiteNetwork = []model.CreateSiteInformation{ { RegionId: "region-abc", GatewayType: &gatewayTypeSites, ProjectId: "XXX", GatewayId: "1c233723-234c-4b50-8fba-7072b4c6aa1a", }, { RegionId: "region-abc", GatewayType: &gatewayTypeSites1, ProjectId: "XXX", GatewayId: "8641d7f0-bd0c-49fe-8b70-3649cd7dd9b1", }, } descriptionP2pSiteNetwork:= "description" p2pSiteNetworkbody := &model.CreateP2PSiteNetwork{ Name: "name", Description: &descriptionP2pSiteNetwork, Sites: listSitesP2pSiteNetwork, } request.Body = &model.CreateP2PSiteNetworkRequestBody{ P2pSiteNetwork: p2pSiteNetworkbody, } response, err := client.CreateP2PSiteNetwork(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 |
---|---|
202 |
The P2P site network has been created. |
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