import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
task_id_list = client.cloud.networks.routers.update(
router_id="ccd5b925-e35c-4611-a511-67ab503104c8",
project_id=1,
region_id=1,
)
print(task_id_list.tasks)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/cloud"
"github.com/G-Core/gcore-go/option"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
taskIDList, err := client.Cloud.Networks.Routers.Update(
context.TODO(),
"ccd5b925-e35c-4611-a511-67ab503104c8",
cloud.NetworkRouterUpdateParams{
ProjectID: gcore.Int(1),
RegionID: gcore.Int(1),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", taskIDList.Tasks)
}
curl --request PATCH \
--url https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external_gateway_info": {
"enable_snat": false,
"network_id": "d7745dcf-b302-4795-9d61-6cc52487af48",
"type": "manual"
},
"name": "my_renamed_router",
"routes": [
{
"destination": "10.0.3.0/24",
"nexthop": "10.0.0.13"
}
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_gateway_info: {
enable_snat: false,
network_id: 'd7745dcf-b302-4795-9d61-6cc52487af48',
type: 'manual'
},
name: 'my_renamed_router',
routes: [{destination: '10.0.3.0/24', nexthop: '10.0.0.13'}]
})
};
fetch('https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'external_gateway_info' => [
'enable_snat' => false,
'network_id' => 'd7745dcf-b302-4795-9d61-6cc52487af48',
'type' => 'manual'
],
'name' => 'my_renamed_router',
'routes' => [
[
'destination' => '10.0.3.0/24',
'nexthop' => '10.0.0.13'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.patch("https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external_gateway_info\": {\n \"enable_snat\": false,\n \"network_id\": \"d7745dcf-b302-4795-9d61-6cc52487af48\",\n \"type\": \"manual\"\n },\n \"name\": \"my_renamed_router\",\n \"routes\": [\n {\n \"destination\": \"10.0.3.0/24\",\n \"nexthop\": \"10.0.0.13\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external_gateway_info\": {\n \"enable_snat\": false,\n \"network_id\": \"d7745dcf-b302-4795-9d61-6cc52487af48\",\n \"type\": \"manual\"\n },\n \"name\": \"my_renamed_router\",\n \"routes\": [\n {\n \"destination\": \"10.0.3.0/24\",\n \"nexthop\": \"10.0.0.13\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"tasks": [
"d478ae29-dedc-4869-82f0-96104425f565"
]
}Update router
Update the configuration of an existing router. Fields that already match the current router state are skipped. If no fields change, no task is created and an empty task list is returned.
import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
task_id_list = client.cloud.networks.routers.update(
router_id="ccd5b925-e35c-4611-a511-67ab503104c8",
project_id=1,
region_id=1,
)
print(task_id_list.tasks)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/cloud"
"github.com/G-Core/gcore-go/option"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
taskIDList, err := client.Cloud.Networks.Routers.Update(
context.TODO(),
"ccd5b925-e35c-4611-a511-67ab503104c8",
cloud.NetworkRouterUpdateParams{
ProjectID: gcore.Int(1),
RegionID: gcore.Int(1),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", taskIDList.Tasks)
}
curl --request PATCH \
--url https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external_gateway_info": {
"enable_snat": false,
"network_id": "d7745dcf-b302-4795-9d61-6cc52487af48",
"type": "manual"
},
"name": "my_renamed_router",
"routes": [
{
"destination": "10.0.3.0/24",
"nexthop": "10.0.0.13"
}
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_gateway_info: {
enable_snat: false,
network_id: 'd7745dcf-b302-4795-9d61-6cc52487af48',
type: 'manual'
},
name: 'my_renamed_router',
routes: [{destination: '10.0.3.0/24', nexthop: '10.0.0.13'}]
})
};
fetch('https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'external_gateway_info' => [
'enable_snat' => false,
'network_id' => 'd7745dcf-b302-4795-9d61-6cc52487af48',
'type' => 'manual'
],
'name' => 'my_renamed_router',
'routes' => [
[
'destination' => '10.0.3.0/24',
'nexthop' => '10.0.0.13'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.patch("https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external_gateway_info\": {\n \"enable_snat\": false,\n \"network_id\": \"d7745dcf-b302-4795-9d61-6cc52487af48\",\n \"type\": \"manual\"\n },\n \"name\": \"my_renamed_router\",\n \"routes\": [\n {\n \"destination\": \"10.0.3.0/24\",\n \"nexthop\": \"10.0.0.13\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v2/routers/{project_id}/{region_id}/{router_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external_gateway_info\": {\n \"enable_snat\": false,\n \"network_id\": \"d7745dcf-b302-4795-9d61-6cc52487af48\",\n \"type\": \"manual\"\n },\n \"name\": \"my_renamed_router\",\n \"routes\": [\n {\n \"destination\": \"10.0.3.0/24\",\n \"nexthop\": \"10.0.0.13\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"tasks": [
"d478ae29-dedc-4869-82f0-96104425f565"
]
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234_abcdef
Path Parameters
Project ID
1
Region ID
1
Router ID
"ccd5b925-e35c-4611-a511-67ab503104c8"
Body
New external gateway configuration. Only type 'manual' is accepted on update, so you must provide the network_id of the external network. Set to null to remove the external gateway.
Show child attributes
Show child attributes
{
"enable_snat": false,
"network_id": "d7745dcf-b302-4795-9d61-6cc52487af48",
"type": "manual"
}
New name of router
^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$"my_renamed_router"
List of custom routes.
Show child attributes
Show child attributes
[
{
"destination": "10.0.3.0/24",
"nexthop": "10.0.0.13"
}
]
Response
OK
List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:
GET /v1/tasks/{task_id}- Check individual task status and details Poll task status until completion (FINISHED/ERROR) before proceeding with dependent operations.
["d478ae29-dedc-4869-82f0-96104425f565"]
Was this page helpful?