DBaaS Postgresql

PostgreSQL, open-source database known for its wide range of features and popularity with developers.

Read more

create-dbaas-pg-connection-pool

Create a DBaaS PostgreSQL connection pool

POST /dbaas-postgres/{service-name}/connection-pool

Path parameters

NameInDescription
service-namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
database-namestringyesService database name
namestringyesConnection pool name
modestringnoPGBouncer pool mode

Allowed values: transaction, statement, session.
sizeintegernoSize of PGBouncer’s PostgreSQL side connection pool
usernamestringnoPool username
Example
{
  "database-name": "string",
  "mode": "transaction",
  "name": "string",
  "size": 0,
  "username": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for create-dbaas-pg-connection-pool: golang | Python | Java

CLI: exo api create-dbaas-pg-connection-pool

update-dbaas-pg-connection-pool

Update a DBaaS PostgreSQL connection pool

PUT /dbaas-postgres/{service-name}/connection-pool/{connection-pool-name}

Path parameters

NameInDescription
service-namepath
connection-pool-namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
database-namestringnoService database name
modestringnoPGBouncer pool mode

Allowed values: transaction, statement, session.
sizeintegernoSize of PGBouncer’s PostgreSQL side connection pool
usernamestringnoPool username
Example
{
  "database-name": "string",
  "mode": "transaction",
  "size": 0,
  "username": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for update-dbaas-pg-connection-pool: golang | Python | Java

CLI: exo api update-dbaas-pg-connection-pool

delete-dbaas-pg-connection-pool

Delete a DBaaS PostgreSQL connection pool

DELETE /dbaas-postgres/{service-name}/connection-pool/{connection-pool-name}

Path parameters

NameInDescription
service-namepath
connection-pool-namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for delete-dbaas-pg-connection-pool: golang | Python | Java

CLI: exo api delete-dbaas-pg-connection-pool

create-dbaas-pg-database

Create a DBaaS Postgres database

POST /dbaas-postgres/{service-name}/database

null

Path parameters

NameInDescription
service-namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
database-namestringyesService database name
lc-collatestringnoDefault string sort order (LC_COLLATE) for PostgreSQL database
lc-ctypestringnoDefault character classification (LC_CTYPE) for PostgreSQL database
Example
{
  "database-name": "string",
  "lc-collate": "string",
  "lc-ctype": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for create-dbaas-pg-database: golang | Python | Java

CLI: exo api create-dbaas-pg-database

delete-dbaas-pg-database

Delete a DBaaS Postgres database

DELETE /dbaas-postgres/{service-name}/database/{database-name}

null

Path parameters

NameInDescription
service-namepath
database-namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for delete-dbaas-pg-database: golang | Python | Java

CLI: exo api delete-dbaas-pg-database

create-dbaas-postgres-user

Create a DBaaS Postgres user

POST /dbaas-postgres/{service-name}/user

null

Path parameters

NameInDescription
service-namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
usernamestringyesUsername
allow-replicationbooleanno
Example
{
  "allow-replication": true,
  "username": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for create-dbaas-postgres-user: golang | Python | Java

CLI: exo api create-dbaas-postgres-user

delete-dbaas-postgres-user

Delete a DBaaS Postgres user

DELETE /dbaas-postgres/{service-name}/user/{username}

null

Path parameters

NameInDescription
service-namepath
usernamepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for delete-dbaas-postgres-user: golang | Python | Java

CLI: exo api delete-dbaas-postgres-user

reveal-dbaas-postgres-user-password

Reveal the secrets of a DBaaS Postgres user

GET /dbaas-postgres/{service-name}/user/{username}/password/reveal

null

Path parameters

NameInDescription
service-namepath
usernamepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
passwordstringPostgres password
usernamestringPostgres username
Example output
{
  "password": "string",
  "username": "string"
}

SDK reference for reveal-dbaas-postgres-user-password: golang | Python | Java

CLI: exo api reveal-dbaas-postgres-user-password

reset-dbaas-postgres-user-password

Reset the credentials of a DBaaS Postgres user

PUT /dbaas-postgres/{service-name}/user/{username}/password/reset

If no password is provided one will be generated automatically.

Path parameters

NameInDescription
service-namepath
usernamepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
passwordstringnoNew password
Example
{
  "password": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for reset-dbaas-postgres-user-password: golang | Python | Java

CLI: exo api reset-dbaas-postgres-user-password

create-dbaas-service-pg

Create a DBaaS PostgreSQL service

POST /dbaas-postgres/{name}

null

Path parameters

NameInDescription
namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
planstringyesSubscription plan
admin-passwordstringnoCustom password for admin user. Defaults to random string. This must be set only when a new service is being created.
admin-usernamestringnoCustom username for admin user. This must be set only when a new service is being created.
backup-scheduleBackup Scheduleno
fork-from-servicestringnoService to fork from
integrationsarray of IntegrationsnoService integrations to be enabled when creating the service.
ip-filterarray[string]noAllow incoming connections from CIDR address block, e.g. ‘10.20.0.0/16’
maintenanceMaintenancenoAutomatic maintenance settings
migrationMigrationnoMigrate data from existing server
pg-settingspostgresql.conf configuration valuesnoPostgreSQL-specific settings
pgbouncer-settingsSystem-wide settings for pgbouncer.noPGBouncer connection pooling settings
pglookout-settingsSystem-wide settings for pglookout.noPGLookout settings
recovery-backup-timestringnoISO time of a backup to recover from for services that support arbitrary times
shared-buffers-percentageintegernoPercentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
synchronous-replicationstringnoSynchronous replication type. Note that the service plan also needs to support synchronous replication.

Allowed values: quorum, off.
termination-protectionbooleannoService is protected against termination and powering off
timescaledb-settingsSystem-wide settings for the timescaledb extensionnoTimescaleDB extension configuration values
variantstringnoVariant of the PostgreSQL service, may affect the features that are exposed by default

Allowed values: timescale, aiven.
versionstringnoPostgreSQL major version

Allowed values: 14, 17, 15, 18, 13, 16.
work-memintegernoSets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).
Example
{
  "admin-password": "string",
  "admin-username": "string",
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "fork-from-service": "string",
  "integrations": [
    {
      "dest-service": "string",
      "settings": {},
      "source-service": "string",
      "type": "read_replica"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "recovery-backup-time": "string",
  "shared-buffers-percentage": 0,
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "variant": "timescale",
  "version": "14",
  "work-mem": 0
}

Backup Schedule

PropertyTypeRequiredDescription
backup-hourintegernoThe hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.
backup-minuteintegernoThe minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.

Integrations

PropertyTypeRequiredDescription
typestringyesIntegration type

Allowed values: read_replica.
dest-servicestringnoA destination service
settingsobjectnoIntegration settings
source-servicestringnoA source service

Maintenance

Automatic maintenance settings

PropertyTypeRequiredDescription
dowstringyesDay of week for installing updates

Allowed values: saturday, tuesday, never, wednesday, sunday, friday, monday, thursday.
timestringyesTime for installing updates, UTC

Migration

Migrate data from existing server

PropertyTypeRequiredDescription
hoststringyesHostname or IP address of the server where to migrate data from
portintegeryesPort number of the server where to migrate data from
dbnamestringnoDatabase name for bootstrapping the initial connection
ignore-dbsstringnoComma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)
methodstringnoThe migration method to be used

Allowed values: dump, replication.
passwordstringnoPassword for authentication with the server where to migrate data from
sslbooleannoThe server where to migrate data from is secured with SSL
usernamestringnoUser name for authentication with the server where to migrate data from

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for create-dbaas-service-pg: golang | Python | Java

CLI: exo api create-dbaas-service-pg

get-dbaas-service-pg

Get a DBaaS PostgreSQL service

GET /dbaas-postgres/{name}

Get a DBaaS PostgreSQL service

Path parameters

NameInDescription
namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
backup-scheduleBackup ScheduleBackup schedule
backupsarray of List of backups for the serviceList of backups for the service
componentsarray of ComponentsService component information objects
connection-infoConnection InfoPG connection information properties
connection-poolsarray of Connection PoolsPostgreSQL PGBouncer connection pools
created-atstringService creation timestamp (ISO 8601)
databasesarray of DBaaS Database NameList of PostgreSQL databases
disk-sizeintegerTODO UNIT disk space for data storage
integrationsarray of DBaaS IntegrationService integrations
ip-filterarray[string]Allowed CIDR address blocks for incoming connections
maintenanceAutomatic maintenance settingsAutomatic maintenance settings
max-connectionsintegerMaximum number of connections allowed to an instance
namestringService name
node-countintegerNumber of service nodes in the active plan
node-cpu-countintegerNumber of CPUs for each node
node-memoryintegerTODO UNIT of memory for each node
node-statesarray of Automatic maintenance settingsState of individual service nodes
notificationsarray of Service notificationsService notifications
pg-settingspostgresql.conf configuration valuesPostgreSQL-specific settings
pgbouncer-settingsSystem-wide settings for pgbouncer.PGBouncer connection pooling settings
pglookout-settingsSystem-wide settings for pglookout.PGLookout settings
planstringSubscription plan
prometheus-uriPrometheus URIPrometheus integration URI
shared-buffers-percentageintegerPercentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
statestringState of the service

Allowed values: running, rebuilding, rebalancing, poweroff.
synchronous-replicationstringSynchronous replication type. Note that the service plan also needs to support synchronous replication.

Allowed values: quorum, off.
termination-protectionbooleanService is protected against termination and powering off
timescaledb-settingsSystem-wide settings for the timescaledb extensionTimescaleDB extension configuration values
typestringService type code
updated-atstringService last update timestamp (ISO 8601)
uristringURI for connecting to the service (may be absent)
uri-paramsobjectservice_uri parameterized into key-value pairs
usersarray of UsersList of service users
versionstringPostgreSQL version
work-memintegerSets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).
zonestringThe zone where the service is running
Example output
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "params": [
      {}
    ],
    "standby": [
      "string"
    ],
    "syncing": [
      "string"
    ],
    "uri": [
      "string"
    ]
  },
  "connection-pools": [
    {
      "connection-uri": "string",
      "database": "string",
      "mode": "transaction",
      "name": "string",
      "size": 0,
      "username": "string"
    }
  ],
  "created-at": "2024-01-01T12:00:00Z",
  "databases": [
    "string"
  ],
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "max-connections": 0,
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "shared-buffers-percentage": 0,
  "state": "running",
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "allow-replication": true,
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "work-mem": 0,
  "zone": "string"
}

SDK reference for get-dbaas-service-pg: golang | Python | Java

CLI: exo api get-dbaas-service-pg

update-dbaas-service-pg

Update a DBaaS PostgreSQL service

PUT /dbaas-postgres/{name}

Update a DBaaS PostgreSQL service

Path parameters

NameInDescription
namepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
backup-scheduleBackup Scheduleno
ip-filterarray[string]noAllow incoming connections from CIDR address block, e.g. ‘10.20.0.0/16’
maintenanceMaintenancenoAutomatic maintenance settings
migrationMigrationnoMigrate data from existing server
pg-settingspostgresql.conf configuration valuesnoPostgreSQL-specific settings
pgbouncer-settingsSystem-wide settings for pgbouncer.noPGBouncer connection pooling settings
pglookout-settingsSystem-wide settings for pglookout.noPGLookout settings
planstringnoSubscription plan
shared-buffers-percentageintegernoPercentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
synchronous-replicationstringnoSynchronous replication type. Note that the service plan also needs to support synchronous replication.

Allowed values: quorum, off.
termination-protectionbooleannoService is protected against termination and powering off
timescaledb-settingsSystem-wide settings for the timescaledb extensionnoTimescaleDB extension configuration values
variantstringnoVariant of the PostgreSQL service, may affect the features that are exposed by default

Allowed values: timescale, aiven.
versionstringnoVersion
work-memintegernoSets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).
Example
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "shared-buffers-percentage": 0,
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "variant": "timescale",
  "version": "string",
  "work-mem": 0
}

Backup Schedule

PropertyTypeRequiredDescription
backup-hourintegernoThe hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.
backup-minuteintegernoThe minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.

Maintenance

Automatic maintenance settings

PropertyTypeRequiredDescription
dowstringyesDay of week for installing updates

Allowed values: saturday, tuesday, never, wednesday, sunday, friday, monday, thursday.
timestringyesTime for installing updates, UTC

Migration

Migrate data from existing server

PropertyTypeRequiredDescription
hoststringyesHostname or IP address of the server where to migrate data from
portintegeryesPort number of the server where to migrate data from
dbnamestringnoDatabase name for bootstrapping the initial connection
ignore-dbsstringnoComma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)
methodstringnoThe migration method to be used

Allowed values: dump, replication.
passwordstringnoPassword for authentication with the server where to migrate data from
sslbooleannoThe server where to migrate data from is secured with SSL
usernamestringnoUser name for authentication with the server where to migrate data from

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for update-dbaas-service-pg: golang | Python | Java

CLI: exo api update-dbaas-service-pg

delete-dbaas-service-pg

Delete a Postgres service

DELETE /dbaas-postgres/{name}

null

Path parameters

NameInDescription
namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for delete-dbaas-service-pg: golang | Python | Java

CLI: exo api delete-dbaas-service-pg


Other Operations

start-dbaas-pg-maintenance

Initiate PostgreSQL maintenance update

PUT /dbaas-postgres/{name}/maintenance/start

null

Path parameters

NameInDescription
namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for start-dbaas-pg-maintenance: golang | Python | Java

CLI: exo api start-dbaas-pg-maintenance

stop-dbaas-pg-migration

Stop a DBaaS PostgreSQL migration

POST /dbaas-postgres/{name}/migration/stop

null

Path parameters

NameInDescription
namepath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for stop-dbaas-pg-migration: golang | Python | Java

CLI: exo api stop-dbaas-pg-migration

create-dbaas-pg-upgrade-check

POST /dbaas-postgres/{service}/upgrade-check

Check whether you can upgrade Postgres service to a newer version

Path parameters

NameInDescription
servicepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
target-versionstringyesTarget version for upgrade

Allowed values: 14, 17, 15, 18, 13, 16.
Example
{
  "target-version": "14"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
create-timestring
idstring
resultstring
result-codesarray of Result Codes
successboolean
task-typestring
Example output
{
  "create-time": "2024-01-01T12:00:00Z",
  "id": "string",
  "result": "string",
  "result-codes": [
    {
      "code": "string",
      "dbname": "string"
    }
  ],
  "success": true,
  "task-type": "string"
}

SDK reference for create-dbaas-pg-upgrade-check: golang | Python | Java

CLI: exo api create-dbaas-pg-upgrade-check

update-dbaas-postgres-allow-replication

Update access control for one service user

PUT /dbaas-postgres/{service-name}/user/{username}/allow-replication

null

Path parameters

NameInDescription
service-namepath
usernamepath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
allow-replicationbooleanno
Example
{
  "allow-replication": true
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
usersarray of Users
Example output
{
  "users": [
    {
      "allow-replication": true,
      "username": "string"
    }
  ]
}

SDK reference for update-dbaas-postgres-allow-replication: golang | Python | Java

CLI: exo api update-dbaas-postgres-allow-replication

get-dbaas-settings-pg

Get DBaaS PostgreSQL settings

GET /dbaas-settings-pg

Get DBaaS PostgreSQL settings

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
settingsSettings
Example output
{
  "settings": {
    "pg": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "pgbouncer": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "pglookout": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "timescaledb": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}

Settings

PropertyTypeRequiredDescription
pgPGnopostgresql.conf configuration values
pgbouncerPgbouncernoPGBouncer connection pooling settings
pglookoutPglookoutnoPGLookout settings
timescaledbTimescaledbnoTimescaleDB extension configuration values

PG

postgresql.conf configuration values

PropertyTypeRequiredDescription
additionalPropertiesbooleanno
propertiesobjectno
titlestringno
typestringno

Pglookout

PGLookout settings

PropertyTypeRequiredDescription
additionalPropertiesbooleanno
propertiesobjectno
titlestringno
typestringno

Pgbouncer

PGBouncer connection pooling settings

PropertyTypeRequiredDescription
additionalPropertiesbooleanno
propertiesobjectno
titlestringno
typestringno

Timescaledb

TimescaleDB extension configuration values

PropertyTypeRequiredDescription
additionalPropertiesbooleanno
propertiesobjectno
titlestringno
typestringno

SDK reference for get-dbaas-settings-pg: golang | Python | Java

CLI: exo api get-dbaas-settings-pg

Last updated on