Properties
| Name | Type | Description |
|---|---|---|
| global | object | |
| servers | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/enterprisedb/main/json-schema/enterprisedb-diagnose-output-schema.json",
"title": "DiagnoseOutput",
"x-generated": "2026-10-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/pg_backup_api.yaml#/components/schemas/DiagnoseOutput",
"type": "object",
"required": [
"global",
"servers"
],
"properties": {
"global": {
"type": "object",
"properties": {
"config": {
"$ref": "#/$defs/GlobalConfig"
},
"system_info": {
"$ref": "#/$defs/SystemInfo"
}
},
"required": [
"system_info"
]
},
"servers": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"backups": {
"$ref": "#/$defs/Backups"
},
"config": {
"$ref": "#/$defs/ServerConfig"
},
"status": {
"$ref": "#/$defs/Status"
},
"wals": {
"$ref": "#/$defs/Wals"
}
},
"required": [
"backups",
"config",
"status",
"wals"
]
}
}
},
"$defs": {
"Backups": {
"description": "Details of each backup stored by Barman for this server keyed by Backup ID.\n",
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"backup_id": {
"description": "The backup ID of the backup",
"type": "string"
},
"backup_label": {
"description": "The backup label generated by PostgreSQL",
"type": [
"string",
"null"
]
},
"begin_offset": {
"description": "The byte offset of the current WAL at the start of the backup",
"type": [
"integer",
"null"
],
"format": "int64"
},
"begin_time": {
"description": "The system time of the Barman server at the start of the backup (in ISO 8601 in the local timezone of the server)\n",
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+[+-][0-2]\\d:[0-5]\\d$"
},
"begin_wal": {
"description": "The current WAL segment at the start of the backup",
"type": [
"string",
"null"
]
},
"begin_xlog": {
"description": "The LSN of the PostgreSQL server at the start of the backup",
"type": [
"string",
"null"
]
},
"compression": {
"description": "The type of compression used to compress the backup",
"type": [
"string",
"null"
]
},
"config_file": {
"description": "The path to the `postgresql.conf` file of the PostgreSQL server when the backup was taken\n",
"type": [
"string",
"null"
]
},
"copy_stats": {
"type": [
"object",
"null"
],
"$ref": "#/$defs/CopyStats"
},
"deduplicated_size": {
"description": "The size of the backup in bytes accounting for any hard links to files in previous backups\n",
"type": [
"integer",
"null"
],
"format": "int64"
},
"end_offset": {
"description": "The byte offset of the current WAL at the end of the backup",
"type": [
"integer",
"null"
],
"format": "int64"
},
"end_time": {
"description": "The system time of the Barman server at the end of the backup (in ISO 8601 in the local timezone of the server)\n",
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+[+-][0-2]\\d:[0-5]\\d$"
},
"end_wal": {
"description": "The current WAL segment at the end of the backup",
"type": [
"string",
"null"
]
},
"end_xlog": {
"description": "The LSN of the PostgreSQL server at the end of the backup",
"type": [
"string",
"null"
]
},
"error": {
"description": "Error message (if the backup failed)",
"type": [
"string",
"null"
]
},
"hba_file": {
"description": "The path to the `pg_hba.conf` file of the PostgreSQL server at the time the backup was taken\n",
"type": [
"string",
"null"
]
},
"ident_file": {
"description": "The path to the `pg_ident.conf` file of the PostgreSQL server at the time the backup was taken\n",
"type": [
"string",
"null"
]
},
"included_files": {
"description": "All files referenced by include directives in the PostgreSQL config which were included in the backup\n",
"type": [
"array",
"null"
],
"items": {
"description": "Path to an included config file",
"type": "string"
}
},
"mode": {
"description": "The combined `backup_method` and `backup_options` configured for the server at the time of the backup - can be one of: `local-rsync-concurrent`, `local-rsync-exclusive`, `postgres-concurrent`, `postgres-exclusive`, `rsync-concurrent` or `rsync-exclusive`\n",
"type": [
"string",
"null"
]
},
"pgdata": {
"description": "The path to the PGDATA directory of the PostgreSQL server at the time the backup was taken\n",
"type": [
"string",
"null"
]
},
"server_name": {
"description": "The name of this server as configured in Barman",
"type": "string"
},
"size": {
"description": "The size of the backup in bytes",
"type": [
"integer",
"null"
],
"format": "int64"
},
"status": {
"description": "The current status of the backup",
"type": "string",
"enum": [
"DONE",
"EMPTY",
"FAILED",
"STARTED",
"SYNCING",
"WAITING_FOR_WALS"
]
},
"systemid": {
"description": "The system identifier of the PostgreSQL server from which the backup was taken\n",
"type": [
"string",
"null"
]
},
"tablespaces": {
"description": "The tablespaces included in this backup",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/Tablespace"
}
},
"timeline": {
"description": "The timeline of the PostgreSQL server when the backup was taken",
"type": [
"integer",
"null"
]
},
"version": {
"description": "The version of the PostgreSQL server",
"type": [
"integer",
"null"
]
},
"xlog_segment_size": {
"description": "The WAL segment size in bytes as reported by the PostgreSQL server when the backup was taken\n",
"type": [
"integer",
"null"
],
"format": "int64"
}
}
}
},
"Config": {
"type": "object",
"properties": {
"archiver": {
"description": "Whether Barman should check for and manage WALs archived to Barman via PostgreSQL WAL archiving\n",
"type": "boolean"
},
"archiver_batch_size": {
"description": "The maximum number of WAL files to be archived by Barman in a single run\n",
"type": "integer"
},
"backup_compression": {
"description": "The type of compression to be applied during the backup process (only supported when backup_method = postgres)\n",
"type": [
"string",
"null"
]
},
"backup_compression_format": {
"description": "The format for the backup output - this can be either \"plain\" or \"tar\" (only supported when backup_method = postgres)\n",
"type": [
"string",
"null"
]
},
"backup_compression_level": {
"description": "The compression level to be applied when compressing the backup (only supported when backup_method = postgres)\n",
"type": [
"integer",
"null"
]
},
"backup_compression_location": {
"description": "This can be set to either \"server\" or \"client\" depending on where the compression should be performed (only supported when backup_method = postgres)\n",
"type": [
"string",
"null"
]
},
"backup_method": {
"description": "The method used by Barman for backup execution - one of: local-rsync, postgres or rsync\n",
"type": "string"
},
"backup_options": {
"description": "A comma-separated list of options - either: `exclusive_backup` or `concurrent_backup` and optionally: `external_configuration`\n",
"type": "string"
},
"bandwidth_limit": {
"description": "Maximum transfer rate in kilobytes per second",
"type": [
"integer",
"null"
],
"format": "int64"
},
"barman_home": {
"description": "Main data directory for Barman",
"type": "string"
},
"barman_lock_directory": {
"description": "Directory for locks",
"type": "string"
},
"basebackup_retry_sleep": {
"description": "Number of seconds of wait after a failed copy, before retrying",
"type": "integer"
},
"basebackup_retry_times": {
"description": "Number of retries of base backup copy, after an error",
"type": "integer"
},
"check_timeout": {
"description": "Maximum execution time, in seconds per server, for a barman check",
"type": "integer"
},
"compression": {
"description": "Standard compression algorithm applied to WAL files",
"type": [
"string",
"null"
]
},
"configuration_files_directory": {
"description": "Directory for additional configuration files to be included",
"type": "string"
},
"create_slot": {
"description": "Whether Barman should automatically create the replication slot - one of `auto` or `manual`\n",
"type": "string"
},
"custom_compression_filter": {
"description": "Customised compression algorithm applied to WAL files",
"type": [
"string",
"null"
]
},
"custom_compression_magic": {
"description": "Customised compression magic which is checked in the beginning of a WAL file to select the custom algorithm\n",
"type": [
"string",
"null"
]
},
"custom_decompression_filter": {
"description": "Customised decompression algorithm applied to compressed WAL files",
"type": [
"string",
"null"
]
},
"forward_config_path": {
"description": "Determines whether a passive node should forward its configuration file path to its primary node during cron or sync-info commands\n",
"type": "boolean"
},
"immediate_checkpoint": {
"description": "Whether to request an immediate checkpoint at the start of a backup",
"type": "boolean"
},
"last_backup_maximum_age": {
"description": "A time frame that must contain the latest backup\n",
"type": [
"string",
"null"
]
},
"last_backup_minimum_size": {
"description": "The lower limit to the acceptable size of the latest successful backup\n",
"type": [
"integer",
"null"
],
"format": "int64"
},
"last_wal_maximum_age": {
"description": "A time frame that must contain the latest WAL file archive\n",
"type": [
"string",
"null"
]
},
"max_incoming_wals_queue": {
"description": "Maximum number of WAL files in the incoming queue that are allowed before barman check returns an error\n",
"type": [
"integer",
"null"
]
},
"minimum_redundancy": {
"description": "Minimum number of backups to be retained",
"type": "integer"
},
"network_compression": {
"description": "Enable data compression for network transfers",
"type": "boolean"
},
"parallel_jobs": {
"description": "How many parallel workers will copy files during a backup or recovery command\n",
"type": "integer"
},
"path_prefix": {
"description": "One or more absolute paths, separated by colon, where Barman looks for executable files\n",
"type": [
"string",
"null"
]
},
"post_archive_retry_script": {
"description": "Hook script launched after a WAL file is archived by maintenance",
"type": [
"string",
"null"
]
},
"post_archive_script": {
"description": "Hook script launched after a WAL file is archived by maintenance, after `post_archive_retry_script`\n",
"type": [
"string",
"null"
]
},
"post_backup_retry_script": {
"description": "Hook script launched after a base backup",
"type": [
"string",
"null"
]
},
"post_backup_script": {
"description": "Hook script launched after a base backup, after `post_backup_retry_script`\n",
"type": [
"string",
"null"
]
},
"post_delete_retry_script": {
"description": "Hook script launched after the deletion of a backup",
"type": [
"string",
"null"
]
},
"post_delete_script": {
"description": "Hook script launched after the deletion of a backup, after `post_delete_retry_script`\n",
"type": [
"string",
"null"
]
},
"post_recovery_retry_script": {
"description": "Hook script launched after a recovery\n",
"type": [
"string",
"null"
]
},
"post_recovery_script": {
"description": "Hook script launched after a recovery, after `post_recovery_retry_script`\n",
"type": [
"string",
"null"
]
},
"post_wal_delete_retry_script": {
"description": "Hook script launched after the deletion of a WAL file",
"type": [
"string",
"null"
]
},
"post_wal_delete_script": {
"description": "Hook script launched after the deletion of a WAL file, after post_wal_delete_retry_script`\n",
"type": [
"string",
"null"
]
},
"pre_archive_retry_script": {
"description": "Hook script launched before a WAL file is archived by maintenance, after `pre_archive_script`\n",
"type": [
"string",
"null"
]
},
"pre_archive_script": {
"description": "Hook script launched before a WAL file is archived by maintenance",
"type": [
"string",
"null"
]
},
"pre_backup_retry_script": {
"description": "Hook script launched before a base backup, after `pre_backup_script`",
"type": [
"string",
"null"
]
},
"pre_backup_script": {
"description": "Hook script launched before a base backup",
"type": [
"string",
"null"
]
},
"pre_delete_retry_script": {
"description": "Hook script launched before the deletion of a backup, after `pre_delete_script`\n",
"type": [
"string",
"null"
]
},
"pre_delete_script": {
"description": "Hook script launched before the deletion of a backup",
"type": [
"string",
"null"
]
},
"pre_recovery_retry_script": {
"description": "Hook script launched before a recovery, after `pre_recovery_script`",
"type": [
"string",
"null"
]
},
"pre_recovery_script": {
"description": "Hook script launched before a recovery",
"type": [
"string",
"null"
]
},
"pre_wal_delete_retry_script": {
"description": "Hook script launched before the deletion of a WAL file, after `pre_wal_delete_script`\n",
"type": [
"string",
"null"
]
},
"pre_wal_delete_script": {
"description": "Hook script launched before the deletion of a WAL file",
"type": [
"string",
"null"
]
},
"primary_ssh_command": {
"description": "Command used by a passive Barman server to login to the primary Barman server via ssh\n",
"type": [
"string",
"null"
]
},
"recovery_options": {
"description": "Options for recovery operations",
"type": "string"
},
"recovery_staging_path": {
"description": "Path on the recovery host where compressed backups can be temporarily staged during recovery\n",
"type": [
"string",
"null"
]
},
"retention_policy": {
"description": "Policy for retention of periodic backups and archive logs",
"type": [
"string",
"null"
]
},
"retention_policy_mode": {
"description": "Mode which defines how retention policies are applied",
"type": "string"
},
"reuse_backup": {
"description": "Defines how incremental backup should be applied - one of `copy`, `link` or `off`\n",
"type": [
"string",
"null"
]
},
"slot_name": {
"description": "Physical replication slot to be used by the `receive-wal` command",
"type": [
"string",
"null"
]
},
"streaming_archiver": {
"description": "Whether to use PostgreSQL's streaming protocol to receive transaction logs from a server\n",
"type": "boolean"
},
"streaming_archiver_batch_size": {
"description": "The maximum number of streamed WAL files to be archived by Barman in a single run\n",
"type": "integer"
},
"streaming_archiver_name": {
"description": "Identifier to be used as `application_name` by the `receive-wal` command\n",
"type": "string"
},
"streaming_backup_name": {
"description": "Identifier to be used as `application_name` by the `pg_basebackup` command\n",
"type": "string"
},
"tablespace_bandwidth_limit": {
"description": "Maximum transfer rate in kilobytes per second when copying a specific tablespace - specified as a comma separated list of TABLESPACE:BWLIMIT pairs\n",
"type": [
"string",
"null"
]
},
"wal_retention_policy": {
"description": "Policy for retention of archive logs (WAL files)",
"type": "string"
}
}
},
"CopyStats": {
"properties": {
"analysis_time": {
"description": "Total number of seconds spent in the analysis phase during this backup\n",
"type": "number"
},
"analysis_time_per_item": {
"description": "Number of seconds spent in the analysis phase for each item, where an item can be the PGDATA directory or a tablespace directory\n",
"type": "object",
"properties": {
"pgdata": {
"description": "Number of seconds spent in the analysis phase for PGDATA",
"type": "number"
},
"TABLESPACE": {
"description": "Number of seconds spent in the analysis phase for TABLESPACE",
"type": "number"
}
}
},
"copy_time": {
"description": "Total wall-clock time spent in the copy phase during this backup in seconds\n",
"type": "number"
},
"copy_time_per_item": {
"description": "Wall-clock time spent copying each item in seconds - an item can be the PGDATA directory, a tablespace directory, the pg_control file or any configuration files located outside the PGDATA directory\n",
"type": "object",
"properties": {
"pgdata": {
"description": "Number of wall-clock seconds spent in the copy phase for PGDATA\n",
"type": "number"
},
"TABLESPACE": {
"description": "Number of wall-clock seconds spent in the copy phase for TABLESPACE\n",
"type": "number"
},
"FILENAME": {
"description": "Number of wall-clock seconds spent in the copy phase for FILENAME\n",
"type": "number"
}
}
},
"number_of_workers": {
"description": "Number of workers used to copy files in the backup",
"type": "integer"
},
"serialized_copy_time": {
"description": "Total time spent copying data across all copy jobs in seconds",
"type": "number"
},
"serialized_copy_time_per_item": {
"description": "Total time spent copying each item across all copy jobs in seconds - an item can be the PGDATA directory, a tablespace directory, the pg_control file or any configuration files located outside the PGDATA directory\n",
"type": "object",
"properties": {
"pgdata": {
"description": "Total number of seconds spent by all copy jobs copying the data for PGDATA\n",
"type": "number"
},
"TABLESPACE": {
"description": "Total number of seconds spent by all copy jobs copying the data for TABLESPACE\n",
"type": "number"
},
"FILENAME": {
"description": "Total number of seconds spent by all copy jobs copying the data for FILENAME\n",
"type": "number"
}
}
},
"total_time": {
"description": "Total wall-clock time spent taking the backup in seconds",
"type": "number"
}
},
"required": [
"copy_time",
"total_time"
]
},
"GlobalConfig": {
"allOf": [
{
"$ref": "#/$defs/Config"
}
],
"properties": {
"barman_user": {
"description": "System user that runs Barman",
"type": "string"
},
"errors_list": {
"description": "List of configuration errors affecting multiple servers",
"type": "array",
"items": {
"description": "An error detected for a combination of servers while parsing the config\n",
"type": "string"
}
},
"log_file": {
"description": "Location of Barman's log file",
"type": "string"
},
"log_level": {
"description": "Level of logging (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
"type": "string"
}
},
"required": [
"errors_list"
]
},
"LastArchivedWal": {
"type": "object",
"properties": {
"compression": {
"description": "Compression algorithm used to compress the WAL",
"type": [
"string",
"null"
]
},
"name": {
"description": "Name of the WAL segment",
"type": "string"
},
"size": {
"description": "Size in bytes of the WAL stored on the Barman server",
"type": "integer",
"format": "int64"
},
"time": {
"description": "Timestamp in epoch time format representing the time this WAL was archived by Barman\n",
"type": "number"
}
}
},
"ReplicationSlot": {
"description": "Details of the replication slot being used by Barman on this PostgreSQL server in the form of an ordered array. The first item MUST be a string containing the slot_name. The second item MUST be a boolean reflecting the active state of the replication slot. The third item MUST be a string containing the LSN of the oldest WAL which still might be required by the consumer of this slot.\n",
"type": [
"array",
"null"
],
"items": {},
"maxItems": 3,
"minItems": 3
},
"ServerConfig": {
"allOf": [
{
"$ref": "#/$defs/Config"
}
],
"properties": {
"active": {
"description": "Whether the server is configured as active",
"type": "boolean"
},
"backup_directory": {
"description": "Directory where backup data for a server will be placed",
"type": "string"
},
"basebackups_directory": {
"description": "Directory where base backups will be placed",
"type": "string"
},
"conninfo": {
"description": "Connection string used by Barman to connect to the PostgreSQL server",
"type": "string"
},
"description": {
"description": "A human readable description of a server",
"type": [
"string",
"null"
]
},
"disabled": {
"description": "Whether the server has been disabled due to configuration errors",
"type": "boolean"
},
"errors_directory": {
"description": "Directory that contains WAL files that contain an error",
"type": "string"
},
"incoming_wals_directory": {
"description": "Directory where incoming WAL files are archived",
"type": "string"
},
"msg_list": {
"description": "List of configuration errors for this server",
"type": "array",
"items": {
"description": "An error detected for this server while parsing the config",
"type": "string"
}
},
"name": {
"description": "The name of this server as configured in Barman",
"type": "string"
},
"primary_conninfo": {
"description": "Connection string used by Barman to connect to the primary PostgreSQL server server when conninfo is pointing to a standby\n",
"type": [
"string",
"null"
]
},
"ssh_command": {
"description": "Command used by Barman to login to the PostgreSQL server via ssh",
"type": [
"string",
"null"
]
},
"streaming_conninfo": {
"description": "Connection string used by Barman to connect to the PostgreSQL server via streaming replication protocol\n",
"type": [
"string",
"null"
]
},
"streaming_wals_directory": {
"description": "Directory where WAL files are streamed from the PostgreSQL server to Barman\n",
"type": "string"
},
"wals_directory": {
"description": "Directory which contains WAL files",
"type": "string"
}
}
},
"Status": {
"description": "Status information about the PostgreSQL server",
"type": "object",
"properties": {
"archive_command": {
"description": "The current value of archive_command on the PostgreSQL server",
"type": [
"string",
"null"
]
},
"archive_mode": {
"description": "The current value of archive_mode on the PostgreSQL server",
"type": [
"string",
"null"
]
},
"archive_timeout": {
"description": "The current value of archive_timeout (in seconds) on the PostgreSQL server\n",
"type": "integer"
},
"archived_count": {
"description": "The number of WAL files that have been successfully archived by the PostgreSQL server\n",
"type": "integer"
},
"checkpoint_timeout": {
"description": "The current value of checkpoint_timeout (in seconds) on the PostgreSQL server\n",
"type": "integer"
},
"config_file": {
"description": "The current path to the `postgresql.conf` file of the PostgreSQL server\n",
"type": "string"
},
"connection_error": {
"description": "Error message in the event that barman cannot connect to the PostgreSQL server\n",
"type": "string"
},
"current_archived_wals_per_second": {
"description": "The WAL archive rate of the PostgreSQL server calculated over the time since the last stats reset\n",
"type": "number"
},
"current_lsn": {
"description": "The current LSN of the PostgreSQL server",
"type": "string"
},
"current_size": {
"description": "The total size of the PostgreSQL server in bytes",
"type": "number"
},
"current_xlog": {
"description": "The current WAL of the PostgreSQL server",
"type": [
"string",
"null"
]
},
"data_checksums": {
"description": "Whether data checksums are enabled for the PostgreSQL server - can be either `on` or `off`\n",
"type": "string"
},
"data_directory": {
"description": "The current path to the PGDATA directory of the PostgreSQL server",
"type": [
"string",
"null"
]
},
"failed_count": {
"description": "The number of failed attempts for archiving WAL files by the PostgreSQL server\n",
"type": "integer"
},
"has_backup_privileges": {
"description": "Whether the configured user has the PostgreSQL privileges required in order to take a backup\n",
"type": "boolean"
},
"hba_file": {
"description": "The current path to the `pg_hba.conf` file of the PostgreSQL server",
"type": "string"
},
"hot_standby": {
"description": "The current value of hot_standby on the PostgreSQL server",
"type": "string"
},
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enterprisedb/refs/heads/main/json-schema/enterprisedb-diagnose-output-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/enterprisedb-diagnose-output"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.