EDB Postgres Enterprise Manager REST APIs v1.0.0#
EDB Postgres Enterprise Manager uses a token-based authentication mechanism to allow access to exposed REST APIs.
PEM uses tokens for authentication purposes. To generate a token, please refer the section Token. After receiving a token string, you should include the token string in the ‘X-Auth-Token’ header when calling any resources except https://PEM-SERVER-IP/api/token/.
NOTE:
EDB Postgres Enterprise Manager is referred as PEM in this documentation.
PEM *uses self-certified SSL certificates, so you may encounter errors such as ‘SSL certificate problem: self signed certificate’. You may need to use an ‘insecure’ connection to connect to the server.
Rest api versions:
v1
v2
v3
v4
v5
v6
v7
v8
v9
v10
v11
v12
v13
v14 (Current)
Base URLs:
Email: EnterpriseDB Web: EnterpriseDB License: Limited Use Software License Agreement
Token#
A string generated and used by PEM REST APIs for authentication purposes
TokenGeneration#
Code samples
# You can also use wget
curl -X POST https://PEM-SERVER-IP/api/token/ \
-H Content-Type: application/json \
-H Accept: application/json
import requests
headers = {
Content-Type: application/json,
Accept: application/json
}
r = requests.post(https://PEM-SERVER-IP/api/token/, headers = headers)
print(r.json())
const inputBody = {
"username": "string",
"password": "string"
};
const headers = {
Content-Type:application/json,
Accept:application/json
};
fetch(https://PEM-SERVER-IP/api/token/,
{
method: POST,
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /token/
Generate a token for authentication.*
This URL creates a token to be used by the other REST APIs exposed by PEM. You must provide a valid username and password, which will be validated during the process.
The token will be valid for 20 mins.
Body parameter
{
"username": "string",
"password": "string"
}
Parameters#
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
body |
body |
object |
true |
Creates the token using the /token/ URL first. |
» username |
body |
string |
true |
Validates username, which has pem_user role. |
» password |
body |
string |
true |
Password for the username |
Example responses
{
"issuedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"schema_version": 0,
"backend_schema_version": 0,
"version_long": 0,
"version": "string",
"supported_api_versions": [
"string"
],
"deprecated_api_versions": [
"string"
]
}
Responses#
Status |
Meaning |
Description |
Schema |
|---|---|---|---|
201 |
Token was created and can be found as 'X-Subject-Token' in the response header. |
Inline |
|
401 |
The given information is not valid. |
None |
|
500 |
Something went wrong. |
None |
|
503 |
PEM backend database server is down. Service is not available now. |
None |
Response Schema#
Status Code 201
Contains information related to when the token was generated and when it expired.*
Name |
Type |
Required |
Restrictions |
Description |
|---|---|---|---|---|
» issuedAt |
string(date-time) |
false |
none |
Token was generated at this time. |
» expiresAt |
string(date-time) |
false |
none |
Provides date and time when the token expires. |
» schema_version |
integer |
false |
none |
Application-supported schema version |
» backend_schema_version |
integer |
false |
none |
Backend database schema version |
» version_long |
integer |
false |
none |
Version represented in long format |
» version |
string |
false |
none |
String reprentation of the PEM version |
» supported_api_versions |
[string] |
false |
none |
List of supported API versions |
» deprecated_api_versions |
[string] |
false |
none |
List of deprecated API versions |
Response Headers#
Status |
Header |
Type |
Format |
Description |
|---|---|---|---|---|
201 |
X-Subject-Token |
string |
Returns the new token, which can be used with REST APIs for further operations |
Note
This operation does not require authentication
delete_token#
Code samples
# You can also use wget
curl -X DELETE https://PEM-SERVER-IP/api/token/ \
-H X-Auth-Token: string
import requests
headers = {
X-Auth-Token: string
}
r = requests.delete(https://PEM-SERVER-IP/api/token/, headers = headers)
print(r.json())
const headers = {
X-Auth-Token:string
};
fetch(https://PEM-SERVER-IP/api/token/,
{
method: DELETE,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /token/
Release the token.*
Invalidates the token. It will no longer be available for further operations.
Parameters#
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
X-Auth-Token |
header |
string |
true |
Token of authorization |
Example responses
Responses#
Status |
Meaning |
Description |
Schema |
|---|---|---|---|
204 |
Successfully released the token from PEM. |
||
This token can not be used for any further operations. |
None |
Response Schema#
Note
This operation does not require authentication
- EDB Postgres Enterprise Manager REST APIs v14.0
- Agent Job
- Alert template
- Alerts
- get_alert_config_global
- post_alert_config_global
- get_alert_config_global{alert_id}
- put_alert_config_global{alert_id}
- delete_alert_config_global{alert_id}
- get_alert_config_agent{agent_id}
- post_alert_config_agent{agent_id}
- get_alert_config_agent{agent_id}_{alert_id}
- put_alert_config_agent{agent_id}_{alert_id}
- delete_alert_config_agent{agent_id}_{alert_id}
- get_alert_config_server{server_id}
- post_alert_config_server{server_id}
- get_alert_config_server{server_id}_{alert_id}
- put_alert_config_server{server_id}_{alert_id}
- delete_alert_config_server{server_id}_{alert_id}
- get_alert_config_server{server_id}database{database_name}
- post_alert_config_server{server_id}database{database_name}
- get_alert_config_server{server_id}database{database_name}_{alert_id}
- put_alert_config_server{server_id}database{database_name}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}_{alert_id}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}
- post_alert_config_server{server_id}database{database_name}schema{schema_name}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}_{alert_id}
- put_alert_config_server{server_id}database{database_name}schema{schema_name}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}schema{schema_name}_{alert_id}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}table{table_name}
- post_alert_config_server{server_id}database{database_name}schema{schema_name}table{table_name}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}table{table_name}_{alert_id}
- put_alert_config_server{server_id}database{database_name}schema{schema_name}table{table_name}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}schema{schema_name}table{table_name}_{alert_id}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}index{index_name}
- post_alert_config_server{server_id}database{database_name}schema{schema_name}index{index_name}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}index{index_name}_{alert_id}
- put_alert_config_server{server_id}database{database_name}schema{schema_name}index{index_name}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}schema{schema_name}index{index_name}_{alert_id}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}
- post_alert_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}_{alert_id}
- put_alert_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}_{alert_id}
- get_alert_config_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}_
- post_alert_config_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}_
- get_alert_config_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}_{alert_id}
- put_alert_config_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}_{alert_id}
- delete_alert_config_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}_{alert_id}
- Alerts History
- Alerts Status
- Copy Alert
- post_alert_copy_agent{agent_id}
- post_alert_copy_server{server_id}
- post_alert_copy_server{server_id}database{database_name}
- post_alert_copy_server{server_id}database{database_name}schema{schema_name}
- post_alert_copy_server{server_id}database{database_name}schema{schema_name}table{table_name}
- post_alert_copy_server{server_id}database{database_name}schema{schema_name}index{index_name}
- post_alert_copy_server{server_id}database{database_name}schema{schema_name}function{function_name}args{function_arguments}
- post_alert_copy_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}
- Copy Probe
- Custom Probe
- Email Groups
- Export Custom Alert Templates
- Export Custom Charts
- Export Custom Dashboards
- Export Custom Probes
- Import Custom Alert Templates
- Import Custom Charts
- Import Custom Dashboards
- Import Custom Probes
- >-
- Monitored Object Status
- Object
- get_server_group
- post_server_group
- get_server_group{group_id}
- put_server_group{group_id}
- delete_server_group{group_id}
- get_agent
- get_agent{agent_id}
- put_agent{agent_id}
- delete_agent{agent_id}
- get_server
- post_server
- get_server{server_id}
- put_server{server_id}
- delete_server{server_id}
- get_server{sid}database
- get_server{sid}database{db_name}
- get_server{sid}database{db_name}schema
- get_server{sid}database{db_name}schema{schema_name}
- get_server{sid}database{db_name}schema{schema_name}table
- get_server{sid}database{db_name}schema{schema_name}table{table_name}
- get_server{sid}database{db_name}schema{schema_name}index
- get_server{sid}database{db_name}schema{schema_name}index{index_name}
- get_server{sid}database{db_name}schema{schema_name}sequence
- get_server{sid}database{db_name}schema{schema_name}sequence{sequence_name}
- get_server{sid}database{db_name}schema{schema_name}view
- get_server{sid}database{db_name}schema{schema_name}view{view_name}
- get_server{sid}database{db_name}schema{schema_name}function
- get_server{sid}database{db_name}schema{schema_name}function{function_name}
- Probe Configuration
- get_probe_config_agent{agent_id}
- get_probe_config_server{server_id}
- get_probe_config_server{server_id}_{probe_id}
- put_probe_config_server{server_id}_{probe_id}
- get_probe_config_server{server_id}database{database_name}
- get_probe_config_server{server_id}database{database_name}_{probe_id}
- put_probe_config_server{server_id}database{database_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}_{probe_id}
- put_probe_config_server{server_id}database{database_name}schema{schema_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}table{table_name}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}table{table_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}index{index_name}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}index{index_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}function{function_name}_
- get_probe_config_server{server_id}database{database_name}schema{schema_name}function{function_name}_{probe_id}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}view{view_name}
- get_probe_config_server{server_id}database{database_name}schema{schema_name}view{view_name}_{probe_id}
- Probe data
- get_probe_data_agent{agent_id}_{probe_id}
- get_probe_data_server{server_id}_{probe_id}
- get_probe_data_server{server_id}database{database_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}table{table_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}index{index_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}view{view_name}_{probe_id}
- get_probe_data_server{server_id}database{database_name}schema{schema_name}function{function_name}_{probe_id}
- Probe history
- get_probe_history_agent{agent_id}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}table{table_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}index{index_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}sequence{sequence_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}view{view_name}from{start_time}to{end_time}_{probe_id}
- get_probe_history_server{server_id}database{database_name}schema{schema_name}function{function_name}from{start_time}to{end_time}_{probe_id}
- Schemas
- AlertPayload
- Alert
- AlertParams
- AlertTemplateParams
- ProbeDependencyParams
- AlternateServerProbeCode
- DeletedAlternateServerProbeCode
- ProbeColumn
- ChartExportTemplate
- DashboardExportTemplate
- CustomDashboardExportData
- CustomDashboardExportResponseData
- CustomDashboardImportPostData
- CustomChartExportData
- CustomChartExportResponseData
- CustomChartImportPostData
- AlertImportExportTemplate
- CustomAlertTemplateExportData
- CustomAlertTemplateExportResponseData
- CustomAlertTemplateImportPostData
- AlertTemplate
- AlertTemplatePost
- AlertTemplatePut
- AlertHistory
- ServerStatus
- AgentStatus
- AlertStatus
- CustomProbes
- CustomProbeExportData
- CustomProbeImportData
- CustomProbeImportPostData
- CustomProbePostData
- CustomProbePutData
- Probes
- ProbeConfigData
- CopyAgentData
- CopyServerData
- CopyDatabaseData
- CopySchemaData
- CopyAlertAgentData
- CopyAlertServerData
- CopyAlertDatabaseData
- CopyAlertSchemaData
- CopyAlertTableData
- CopyAlertIndexData
- CopyAlertFunctionData
- CopyAlertSequenceData
- Agent
- Agents
- Server
- ServerGroupBody
- ServerGroupBodyGet
- ServerBody
- ServerBodyUpdate
- AgentBody
- AgentJobBodyGet
- AgentJobBody
- AgentJobBodyPut
- AgentJobBodyPost
- Database
- Schema
- Table
- Index
- Sequence
- Function
- View
- Webhook
- WebhookPostData
- WebhookPutData
- WebhookGetHTTPHeaders
- WebhookHTTPHeaders
- EmailGroups
- EmailGroupsPostData
- EmailGroupsPutData
- EmailGroupOptions
- EmailGroupOptionsChanged
- ExcludeDatabases
- ExcludeDatabasesPutData
- Webhook