API schemas: part 2.
API input and response JSON Schema: EndUserRef — DataSourceConnectionList. Fields, required properties and API constraints.
Exact field names, required, enum, nullable and constraints are preserved from OpenAPI. $ref resolves relative to components.schemas in the full document. All parts: 1, 2, 3, 4.
EndUserRef
{
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.:@-]{0,255}$"
}HostedAuthLink
{
"type": "object",
"properties": {
"connection_id": {
"type": "string",
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"connect_url": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"expires_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
}
},
"required": [
"connection_id",
"connect_url",
"expires_at"
],
"additionalProperties": false,
"description": "Hosted authorization link; direct the end user to connect_url before it expires"
}CreateConnectionRequest
Related schemas: EndUserRef.
{
"type": "object",
"properties": {
"connector_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{1,78}$",
"example": "bitrix24"
},
"user_id": {
"$ref": "#/components/schemas/EndUserRef"
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"pattern": "^[\\p{L}\\p{N}][\\p{L}\\p{N}\\p{Pd} _.]+$"
},
"resume": {
"type": "object",
"properties": {
"connection_id": {
"type": "string",
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"expected_version": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"required": [
"connection_id",
"expected_version"
],
"additionalProperties": false
}
},
"required": [
"connector_id",
"name"
],
"additionalProperties": false,
"description": "Initiates hosted OAuth authorization. Optional resume renews an unactivated connection in place; account identity must match and expected_version guards concurrent attempts."
}AuthConfigListResponse
Related schemas: AuthConfig.
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AuthConfig"
}
},
"next_cursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 400,
"description": "Cursor for the next page; null when exhausted"
}
},
"required": [
"data",
"next_cursor"
],
"additionalProperties": false
}AuthConfig
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"connector_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{1,78}$",
"example": "bitrix24"
},
"mode": {
"type": "string",
"enum": [
"managed",
"custom"
]
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"client_id_mask": {
"type": "string",
"maxLength": 24
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"maxItems": 64
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
}
},
"required": [
"id",
"connector_id",
"mode",
"name",
"client_id_mask",
"scopes",
"status",
"version",
"created_at",
"updated_at"
],
"additionalProperties": false
}CreateAuthConfigRequest
{
"type": "object",
"properties": {
"connector_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{1,78}$",
"example": "bitrix24"
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"mode": {
"type": "string",
"enum": [
"managed",
"custom"
]
},
"client_id": {
"type": "string",
"minLength": 4,
"maxLength": 512
},
"client_secret": {
"type": "string",
"minLength": 8,
"maxLength": 4096
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"maxItems": 64
}
},
"required": [
"connector_id",
"name"
],
"additionalProperties": false,
"description": "Registers a named auth configuration; a custom mode requires the tenant's OAuth client, whose secret is delivered once to the engine boundary and never echoed"
}UpdateAuthConfigRequest
{
"type": "object",
"properties": {
"expected_version": {
"type": "integer",
"exclusiveMinimum": 0
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
]
}
},
"required": [
"expected_version"
],
"additionalProperties": false
}NetworkAttachment
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"mode": {
"type": "string",
"enum": [
"direct",
"wireguard",
"openvpn"
]
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
}
},
"dns_servers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"format": "ip"
},
{
"type": "string",
"format": "ip"
}
]
},
"maxItems": 3
},
"connection_enabled": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"pending",
"provisioning",
"active",
"degraded",
"draining",
"ready_to_revoke",
"revoked",
"failed"
]
},
"status_reason": {
"type": [
"string",
"null"
],
"maxLength": 120
},
"desired_generation": {
"type": "integer",
"exclusiveMinimum": 0
},
"observed_generation": {
"type": "integer",
"minimum": 0
},
"active_lease_count": {
"type": "integer",
"minimum": 0
},
"version": {
"type": "integer",
"exclusiveMinimum": 0
},
"last_health_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
},
"revoked_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
}
},
"required": [
"id",
"name",
"mode",
"destinations",
"dns_servers",
"connection_enabled",
"status",
"status_reason",
"desired_generation",
"observed_generation",
"active_lease_count",
"version",
"last_health_at",
"revoked_at",
"created_at",
"updated_at"
],
"additionalProperties": false
}NetworkAttachmentList
Related schemas: NetworkAttachment.
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NetworkAttachment"
}
},
"next_cursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 400,
"description": "Cursor for the next page; null when exhausted"
}
},
"required": [
"data",
"next_cursor"
],
"additionalProperties": false
}CreateNetworkAttachmentRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"dns_servers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"format": "ip"
},
{
"type": "string",
"format": "ip"
}
]
},
"maxItems": 3
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 64
},
"mode": {
"type": "string",
"enum": [
"direct"
]
}
},
"required": [
"name",
"destinations",
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dns_servers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"format": "ip"
},
{
"type": "string",
"format": "ip"
}
]
},
"maxItems": 3
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 64
},
"mode": {
"type": "string",
"enum": [
"wireguard"
]
},
"credential": {
"type": "object",
"properties": {
"private_key": {
"type": "string",
"minLength": 32,
"maxLength": 256
},
"peer_public_key": {
"type": "string",
"minLength": 32,
"maxLength": 256
},
"preshared_key": {
"type": "string",
"minLength": 32,
"maxLength": 256
},
"endpoint_host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"endpoint_port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"interface_addresses": {
"type": "array",
"items": {
"type": "string",
"minLength": 3,
"maxLength": 64
},
"minItems": 1,
"maxItems": 8
}
},
"required": [
"private_key",
"peer_public_key",
"endpoint_host",
"endpoint_port",
"interface_addresses"
],
"additionalProperties": false
}
},
"required": [
"name",
"destinations",
"mode",
"credential"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dns_servers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"format": "ip"
},
{
"type": "string",
"format": "ip"
}
]
},
"maxItems": 3
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 64
},
"mode": {
"type": "string",
"enum": [
"openvpn"
]
},
"credential": {
"type": "object",
"properties": {
"options": {
"type": "object",
"properties": {
"cipher": {
"type": "string",
"enum": [
"AES-256-GCM",
"AES-128-GCM",
"CHACHA20-POLY1305"
]
},
"auth": {
"type": "string",
"enum": [
"none",
"SHA1",
"SHA256",
"SHA512"
]
},
"tun_mtu": {
"type": "integer",
"minimum": 576,
"maximum": 9000
},
"ping": {
"type": "integer",
"minimum": 0,
"maximum": 3600
},
"ping_restart": {
"type": "integer",
"minimum": 0,
"maximum": 86400
},
"connect_retry": {
"type": "integer",
"minimum": 1,
"maximum": 300
},
"reneg_sec": {
"type": "integer",
"minimum": 0,
"maximum": 604800
},
"persist_tun": {
"type": "boolean"
},
"persist_key": {
"type": "boolean"
},
"mute_replay_warnings": {
"type": "boolean"
},
"verb": {
"type": "integer",
"minimum": 0,
"maximum": 4
}
},
"additionalProperties": false
},
"remote_host": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$"
},
"remote_port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"protocol": {
"type": "string",
"enum": [
"udp",
"tcp"
]
},
"ca_certificate": {
"type": "string",
"minLength": 64,
"maxLength": 16384
},
"client_certificate": {
"type": "string",
"minLength": 64,
"maxLength": 16384
},
"client_key": {
"type": "string",
"minLength": 64,
"maxLength": 16384
},
"tls_auth_key": {
"type": "string",
"minLength": 64,
"maxLength": 16384
},
"tls_auth_direction": {
"type": "string",
"enum": [
"0",
"1"
]
},
"username": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\0\\r\\n]+$"
},
"password": {
"type": "string",
"minLength": 1,
"maxLength": 4096,
"pattern": "^[^\\0\\r\\n]+$"
}
},
"required": [
"remote_host",
"remote_port",
"protocol",
"ca_certificate",
"client_certificate",
"client_key"
],
"additionalProperties": false,
"not": {
"required": [
"options",
"tls_auth_key"
],
"properties": {
"options": {
"required": [
"auth"
],
"properties": {
"auth": {
"enum": [
"none"
]
}
}
}
}
}
}
},
"required": [
"name",
"destinations",
"mode",
"credential"
],
"additionalProperties": false
}
],
"description": "Typed private-network configuration; arbitrary OpenVPN/WireGuard files, scripts, plugins, and routes are not accepted"
}DiscoverPostgresDatabasesResponse
{
"type": "object",
"properties": {
"databases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"access": {
"type": "string",
"enum": [
"verified",
"candidate",
"denied"
]
},
"connect_privilege": {
"type": "boolean"
}
},
"required": [
"name",
"access",
"connect_privilege"
],
"additionalProperties": false
},
"maxItems": 100
},
"incomplete": {
"type": "boolean"
},
"seed_database": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"error_code": {
"type": [
"string",
"null"
],
"enum": [
"network_unavailable",
"authentication_failed",
"login_trigger_failed",
"tls_failed",
"tls_configuration_unsupported",
"seed_database_unavailable",
"catalog_denied",
"discovery_unavailable",
null
]
}
},
"required": [
"databases",
"incomplete",
"seed_database",
"error_code"
],
"additionalProperties": false
}DataSourceConnection
Related schemas: DataSourceAttentionReason.
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"kind": {
"type": "string",
"enum": [
"postgres",
"mysql",
"sqlserver",
"mongodb",
"topic"
]
},
"endpoint": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 253
},
"minItems": 1,
"maxItems": 20
},
"port": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 65535
},
"resource": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"authentication": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"tls_mode": {
"type": "string",
"enum": [
"require",
"verify_ca",
"verify_full",
"mutual_tls"
]
},
"custom_ca": {
"type": "boolean"
},
"mutual_tls": {
"type": "boolean"
}
},
"required": [
"hosts",
"port",
"resource",
"authentication",
"tls_mode",
"custom_ca",
"mutual_tls"
],
"additionalProperties": false
},
"credential_version": {
"type": "integer",
"exclusiveMinimum": 0
},
"network_attachment_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"status": {
"type": "string",
"enum": [
"pending",
"active",
"degraded",
"revoked",
"failed"
]
},
"status_reason": {
"$ref": "#/components/schemas/DataSourceAttentionReason"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-07-16T12:00:00.000Z"
}
},
"required": [
"id",
"name",
"kind",
"endpoint",
"credential_version",
"network_attachment_id",
"status",
"status_reason",
"created_at",
"updated_at"
],
"additionalProperties": false
}DataSourceAttentionReason
{
"type": [
"string",
"null"
],
"enum": [
"authentication_failed",
"login_trigger_failed",
"catalog_denied",
"tls_failed",
null
],
"description": "Source-side condition a person must fix; set only while the connection is degraded"
}AddDatabaseFromConnectionRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"database": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"name",
"database"
],
"additionalProperties": false
}DiscoverPostgresDatabasesRequest
{
"type": "object",
"properties": {
"network_attachment_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"example": "9b2f6f2e-4b0a-4bd2-8b7e-3f8a1c2d4e5f"
},
"source": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"postgres",
"sqlserver"
]
},
"host": {
"type": "string",
"minLength": 1,
"maxLength": 253
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"seed_database": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"authentication": {
"type": "string",
"enum": [
"username_password"
]
},
"credential": {
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"password": {
"type": "string",
"minLength": 1,
"maxLength": 4096
}
},
"required": [
"username",
"password"
],
"additionalProperties": false
},
"tls": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"require"
]
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"verify_ca",
"verify_full"
]
},
"ca_certificate": {
"type": "string",
"minLength": 64,
"maxLength": 32768
}
},
"required": [
"mode",
"ca_certificate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"mutual_tls"
]
},
"ca_certificate": {
"type": "string",
"minLength": 64,
"maxLength": 32768
},
"client_certificate": {
"type": "string",
"minLength": 64,
"maxLength": 32768
},
"client_key": {
"type": "string",
"minLength": 64,
"maxLength": 32768
}
},
"required": [
"mode",
"ca_certificate",
"client_certificate",
"client_key"
],
"additionalProperties": false
}
]
}
},
"required": [
"kind",
"host",
"port",
"authentication",
"credential",
"tls"
],
"additionalProperties": false
}
},
"required": [
"source"
],
"additionalProperties": false
}DataSourceConnectionList
Related schemas: DataSourceConnection.
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DataSourceConnection"
}
},
"next_cursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 400,
"description": "Cursor for the next page; null when exhausted"
}
},
"required": [
"data",
"next_cursor"
],
"additionalProperties": false
}