Python
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.databases.postgres.clusters.create(
project_id=0,
region_id=0,
cluster_name="3",
flavor={
"cpu": 1,
"memory_gib": 1,
},
high_availability={
"replication_mode": "sync"
},
network={
"acl": ["92.33.34.127"],
"network_type": "public",
},
pg_server_configuration={
"pg_conf": "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
"version": "version",
},
storage={
"size_gib": 100,
"type": "ssd-hiiops",
},
)
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.Databases.Postgres.Clusters.New(context.TODO(), cloud.DatabasePostgresClusterNewParams{
ProjectID: gcore.Int(0),
RegionID: gcore.Int(0),
ClusterName: "3",
Flavor: cloud.DatabasePostgresClusterNewParamsFlavor{
CPU: 1,
MemoryGib: 1,
},
HighAvailability: cloud.DatabasePostgresClusterNewParamsHighAvailability{
ReplicationMode: "sync",
},
Network: cloud.DatabasePostgresClusterNewParamsNetwork{
ACL: []string{"92.33.34.127"},
},
PgServerConfiguration: cloud.DatabasePostgresClusterNewParamsPgServerConfiguration{
PgConf: "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
Version: "version",
},
Storage: cloud.DatabasePostgresClusterNewParamsStorage{
SizeGib: 100,
Type: "ssd-hiiops",
},
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", taskIDList.Tasks)
}curl --request POST \
--url https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"cluster_name": "<string>",
"flavor": {
"cpu": 1,
"memory_gib": 1
},
"high_availability": {},
"network": {
"acl": [
"92.33.34.127"
],
"network_type": "public"
},
"pg_server_configuration": {
"pg_conf": "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
"version": "<string>",
"pooler": null
},
"storage": {
"size_gib": 100,
"type": "ssd-hiiops"
},
"databases": [],
"users": []
}
EOFconst options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cluster_name: '<string>',
flavor: {cpu: 1, memory_gib: 1},
high_availability: {},
network: {acl: ['92.33.34.127'], network_type: 'public'},
pg_server_configuration: {
pg_conf: '\nlisten_addresses = \'localhost\'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on',
version: '<string>',
pooler: null
},
storage: {size_gib: 100, type: 'ssd-hiiops'},
databases: [],
users: []
})
};
fetch('https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_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/v1/dbaas/postgres/clusters/{project_id}/{region_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cluster_name' => '<string>',
'flavor' => [
'cpu' => 1,
'memory_gib' => 1
],
'high_availability' => [
],
'network' => [
'acl' => [
'92.33.34.127'
],
'network_type' => 'public'
],
'pg_server_configuration' => [
'pg_conf' => '
listen_addresses = \'localhost\'
port = 5432
max_connections = 100
shared_buffers = 128MB
logging_collector = on',
'version' => '<string>',
'pooler' => null
],
'storage' => [
'size_gib' => 100,
'type' => 'ssd-hiiops'
],
'databases' => [
],
'users' => [
]
]),
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.post("https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cluster_name\": \"<string>\",\n \"flavor\": {\n \"cpu\": 1,\n \"memory_gib\": 1\n },\n \"high_availability\": {},\n \"network\": {\n \"acl\": [\n \"92.33.34.127\"\n ],\n \"network_type\": \"public\"\n },\n \"pg_server_configuration\": {\n \"pg_conf\": \"\\nlisten_addresses = 'localhost'\\nport = 5432\\nmax_connections = 100\\nshared_buffers = 128MB\\nlogging_collector = on\",\n \"version\": \"<string>\",\n \"pooler\": null\n },\n \"storage\": {\n \"size_gib\": 100,\n \"type\": \"ssd-hiiops\"\n },\n \"databases\": [],\n \"users\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cluster_name\": \"<string>\",\n \"flavor\": {\n \"cpu\": 1,\n \"memory_gib\": 1\n },\n \"high_availability\": {},\n \"network\": {\n \"acl\": [\n \"92.33.34.127\"\n ],\n \"network_type\": \"public\"\n },\n \"pg_server_configuration\": {\n \"pg_conf\": \"\\nlisten_addresses = 'localhost'\\nport = 5432\\nmax_connections = 100\\nshared_buffers = 128MB\\nlogging_collector = on\",\n \"version\": \"<string>\",\n \"pooler\": null\n },\n \"storage\": {\n \"size_gib\": 100,\n \"type\": \"ssd-hiiops\"\n },\n \"databases\": [],\n \"users\": []\n}"
response = http.request(request)
puts response.read_body{
"tasks": [
"d478ae29-dedc-4869-82f0-96104425f565"
]
}Managed PostgreSQL
Create PostgreSQL cluster
Create a new PostgreSQL cluster with the specified configuration.
POST
/
cloud
/
v1
/
dbaas
/
postgres
/
clusters
/
{project_id}
/
{region_id}
Python
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.databases.postgres.clusters.create(
project_id=0,
region_id=0,
cluster_name="3",
flavor={
"cpu": 1,
"memory_gib": 1,
},
high_availability={
"replication_mode": "sync"
},
network={
"acl": ["92.33.34.127"],
"network_type": "public",
},
pg_server_configuration={
"pg_conf": "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
"version": "version",
},
storage={
"size_gib": 100,
"type": "ssd-hiiops",
},
)
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.Databases.Postgres.Clusters.New(context.TODO(), cloud.DatabasePostgresClusterNewParams{
ProjectID: gcore.Int(0),
RegionID: gcore.Int(0),
ClusterName: "3",
Flavor: cloud.DatabasePostgresClusterNewParamsFlavor{
CPU: 1,
MemoryGib: 1,
},
HighAvailability: cloud.DatabasePostgresClusterNewParamsHighAvailability{
ReplicationMode: "sync",
},
Network: cloud.DatabasePostgresClusterNewParamsNetwork{
ACL: []string{"92.33.34.127"},
},
PgServerConfiguration: cloud.DatabasePostgresClusterNewParamsPgServerConfiguration{
PgConf: "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
Version: "version",
},
Storage: cloud.DatabasePostgresClusterNewParamsStorage{
SizeGib: 100,
Type: "ssd-hiiops",
},
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", taskIDList.Tasks)
}curl --request POST \
--url https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"cluster_name": "<string>",
"flavor": {
"cpu": 1,
"memory_gib": 1
},
"high_availability": {},
"network": {
"acl": [
"92.33.34.127"
],
"network_type": "public"
},
"pg_server_configuration": {
"pg_conf": "\nlisten_addresses = 'localhost'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on",
"version": "<string>",
"pooler": null
},
"storage": {
"size_gib": 100,
"type": "ssd-hiiops"
},
"databases": [],
"users": []
}
EOFconst options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cluster_name: '<string>',
flavor: {cpu: 1, memory_gib: 1},
high_availability: {},
network: {acl: ['92.33.34.127'], network_type: 'public'},
pg_server_configuration: {
pg_conf: '\nlisten_addresses = \'localhost\'\nport = 5432\nmax_connections = 100\nshared_buffers = 128MB\nlogging_collector = on',
version: '<string>',
pooler: null
},
storage: {size_gib: 100, type: 'ssd-hiiops'},
databases: [],
users: []
})
};
fetch('https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_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/v1/dbaas/postgres/clusters/{project_id}/{region_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cluster_name' => '<string>',
'flavor' => [
'cpu' => 1,
'memory_gib' => 1
],
'high_availability' => [
],
'network' => [
'acl' => [
'92.33.34.127'
],
'network_type' => 'public'
],
'pg_server_configuration' => [
'pg_conf' => '
listen_addresses = \'localhost\'
port = 5432
max_connections = 100
shared_buffers = 128MB
logging_collector = on',
'version' => '<string>',
'pooler' => null
],
'storage' => [
'size_gib' => 100,
'type' => 'ssd-hiiops'
],
'databases' => [
],
'users' => [
]
]),
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.post("https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cluster_name\": \"<string>\",\n \"flavor\": {\n \"cpu\": 1,\n \"memory_gib\": 1\n },\n \"high_availability\": {},\n \"network\": {\n \"acl\": [\n \"92.33.34.127\"\n ],\n \"network_type\": \"public\"\n },\n \"pg_server_configuration\": {\n \"pg_conf\": \"\\nlisten_addresses = 'localhost'\\nport = 5432\\nmax_connections = 100\\nshared_buffers = 128MB\\nlogging_collector = on\",\n \"version\": \"<string>\",\n \"pooler\": null\n },\n \"storage\": {\n \"size_gib\": 100,\n \"type\": \"ssd-hiiops\"\n },\n \"databases\": [],\n \"users\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v1/dbaas/postgres/clusters/{project_id}/{region_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cluster_name\": \"<string>\",\n \"flavor\": {\n \"cpu\": 1,\n \"memory_gib\": 1\n },\n \"high_availability\": {},\n \"network\": {\n \"acl\": [\n \"92.33.34.127\"\n ],\n \"network_type\": \"public\"\n },\n \"pg_server_configuration\": {\n \"pg_conf\": \"\\nlisten_addresses = 'localhost'\\nport = 5432\\nmax_connections = 100\\nshared_buffers = 128MB\\nlogging_collector = on\",\n \"version\": \"<string>\",\n \"pooler\": null\n },\n \"storage\": {\n \"size_gib\": 100,\n \"type\": \"ssd-hiiops\"\n },\n \"databases\": [],\n \"users\": []\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
Body
application/json
PostgreSQL cluster name
Required string length:
1 - 50Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Instance RAM and CPU
Show child attributes
Show child attributes
High Availability settings
Show child attributes
Show child attributes
Show child attributes
Show child attributes
PosgtreSQL cluster configuration
Show child attributes
Show child attributes
Cluster's storage configuration
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
200 - application/json
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.
Example:
["d478ae29-dedc-4869-82f0-96104425f565"]
Was this page helpful?
⌘I