{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/confluent/main/json-schema/confluent-tableflow-v1-catalog-integration-list-schema.json",
"title": "tableflow.v1.CatalogIntegrationList",
"description": "A Catalog Integration represents configuration related to a catalog integration\n\n\n## The Catalog Integrations Model\n",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/confluent-catalog-integrations-tableflow-v1-api-openapi.yml#/components/schemas/tableflow.v1.CatalogIntegrationList",
"type": "object",
"required": [
"api_version",
"kind",
"metadata",
"data"
],
"properties": {
"api_version": {
"type": "string",
"enum": [
"tableflow/v1"
],
"description": "APIVersion defines the schema version of this representation of a resource.",
"readOnly": true
},
"kind": {
"type": "string",
"description": "Kind defines the object this REST resource represents.",
"readOnly": true,
"enum": [
"CatalogIntegrationList"
]
},
"metadata": {
"allOf": [
{
"$ref": "#/$defs/ListMeta"
},
{
"properties": {
"first": {},
"last": {},
"prev": {},
"next": {}
}
}
]
},
"data": {
"type": "array",
"description": "A data property that contains an array of resource items. Each entry in the array is a separate resource.",
"items": {
"allOf": [
{
"$ref": "#/$defs/tableflow.v1.CatalogIntegration"
},
{
"type": "object",
"required": [
"id",
"metadata",
"spec"
],
"properties": {
"spec": {
"type": "object",
"required": [
"display_name",
"config",
"environment",
"kafka_cluster"
]
}
}
}
]
},
"uniqueItems": true
}
},
"$defs": {
"EnvScopedObjectReference": {
"type": "object",
"description": "ObjectReference provides information for you to locate the referred object",
"required": [
"id",
"related",
"resource_name"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the referred resource",
"minLength": 1,
"maxLength": 255
},
"environment": {
"type": "string",
"description": "Environment of the referred resource, if env-scoped",
"minLength": 1,
"maxLength": 255
},
"related": {
"type": "string",
"format": "uri",
"description": "API URL for accessing or modifying the referred object",
"minLength": 1,
"readOnly": true
},
"resource_name": {
"type": "string",
"format": "uri",
"description": "CRN reference to the referred resource",
"minLength": 1,
"readOnly": true
}
}
},
"GlobalObjectReference": {
"type": "object",
"description": "ObjectReference provides information for you to locate the referred object",
"required": [
"id",
"related",
"resource_name"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the referred resource",
"minLength": 1,
"maxLength": 255
},
"related": {
"type": "string",
"format": "uri",
"description": "API URL for accessing or modifying the referred object",
"minLength": 1,
"readOnly": true
},
"resource_name": {
"type": "string",
"format": "uri",
"description": "CRN reference to the referred resource",
"minLength": 1,
"readOnly": true
}
}
},
"ListMeta": {
"type": "object",
"description": "ListMeta describes metadata that resource collections may have",
"properties": {
"first": {
"description": "A link to the first page of results. If a response does not contain a first link, then direct navigation to the first page is not supported.",
"type": [
"string",
"null"
],
"format": "uri"
},
"last": {
"description": "A link to the last page of results. If a response does not contain a last link, then direct navigation to the last page is not supported.",
"type": [
"string",
"null"
],
"format": "uri"
},
"prev": {
"description": "A link to the previous page of results. If a response does not contain a prev link, then either there is no previous data or backwards traversal through the result set is not supported.",
"type": [
"string",
"null"
],
"format": "uri"
},
"next": {
"description": "A link to the next page of results. If a response does not contain a next link, then there is no more data available.",
"type": [
"string",
"null"
],
"format": "uri"
},
"total_size": {
"description": "Number of records in the full result set. This response may be paginated and have a smaller number of records.",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
},
"ObjectMeta": {
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
"required": [
"self"
],
"properties": {
"self": {
"description": "Self is a Uniform Resource Locator (URL) at which an object can be addressed. This URL encodes the service location, API version, and other particulars necessary to locate the resource at a point in time",
"type": "string",
"format": "uri",
"readOnly": true
},
"resource_name": {
"description": "Resource Name is a Uniform Resource Identifier (URI) that is globally unique across space and time. It is represented as a Confluent Resource Name",
"type": "string",
"format": "uri",
"readOnly": true
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was created. It is represented in RFC3339 format and is in UTC."
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was last updated. It is represented in RFC3339 format and is in UTC."
},
"deleted_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was (or will be) deleted. It is represented in RFC3339 format and is in UTC."
}
},
"readOnly": true
},
"tableflow.v1.CatalogIntegration": {
"type": "object",
"description": "A Catalog Integration represents configuration related to a catalog integration\n\n\n## The Catalog Integrations Model\n",
"properties": {
"api_version": {
"type": "string",
"enum": [
"tableflow/v1"
],
"description": "APIVersion defines the schema version of this representation of a resource.",
"readOnly": true
},
"kind": {
"type": "string",
"description": "Kind defines the object this REST resource represents.",
"readOnly": true,
"enum": [
"CatalogIntegration"
]
},
"id": {
"description": "ID is the \"natural identifier\" for an object within its scope/namespace; it is normally unique across time but not space. That is, you can assume that the ID will not be reclaimed and reused after an object is deleted (\"time\"); however, it may collide with IDs for other object `kinds` or objects of the same `kind` within a different scope/namespace (\"space\").",
"type": "string",
"maxLength": 255,
"readOnly": true
},
"metadata": {
"allOf": [
{
"$ref": "#/$defs/ObjectMeta"
},
{
"properties": {
"self": {},
"resource_name": {}
}
}
]
},
"spec": {
"$ref": "#/$defs/tableflow.v1.CatalogIntegrationSpec"
},
"status": {
"$ref": "#/$defs/tableflow.v1.CatalogIntegrationStatus"
}
}
},
"tableflow.v1.CatalogIntegrationAwsGlueSpec": {
"type": "object",
"description": "The catalog integration Glue connection config.",
"required": [
"kind",
"provider_integration_id"
],
"properties": {
"kind": {
"type": "string",
"enum": [
"AwsGlue"
],
"description": "The type of the catalog integration.",
"x-immutable": true
},
"provider_integration_id": {
"type": "string",
"description": "The provider integration id.",
"x-immutable": true
},
"custom_database": {
"type": "string",
"description": "The custom database name to use in AWS Glue."
}
}
},
"tableflow.v1.CatalogIntegrationSnowflakeSpec": {
"type": "object",
"description": "The catalog integration connection config for Snowflake Open Catalog.",
"required": [
"kind",
"endpoint",
"client_id",
"client_secret",
"warehouse",
"allowed_scope"
],
"properties": {
"kind": {
"type": "string",
"enum": [
"Snowflake"
],
"description": "The type of the catalog integration."
},
"endpoint": {
"description": "The catalog integration connection endpoint for Snowflake Open Catalog.\n",
"type": "string"
},
"client_id": {
"description": "The client ID of the catalog integration.",
"type": "string"
},
"client_secret": {
"description": "The client secret of the catalog integration.",
"type": "string"
},
"warehouse": {
"description": "Warehouse name of the Snowflake Open Catalog.",
"type": "string"
},
"allowed_scope": {
"description": "Allowed scope of the Snowflake Open Catalog.",
"type": "string"
},
"custom_namespace": {
"type": "string",
"description": "The custom namespace to use in Snowflake Open Catalog."
}
}
},
"tableflow.v1.CatalogIntegrationSpec": {
"type": "object",
"description": "The desired state of the Catalog Integration",
"properties": {
"display_name": {
"type": "string",
"description": "The name of the catalog integration"
},
"suspended": {
"type": "boolean",
"description": "Indicates whether the Catalog Integration should be suspended. The API allows setting it only to `false` i.e., to resume the Catalog Integration. Pausing the Catalog Integration on-demand is not currently supported."
},
"config": {
"type": "object",
"description": "The integration config",
"oneOf": [
{
"$ref": "#/$defs/tableflow.v1.CatalogIntegrationAwsGlueSpec"
},
{
"$ref": "#/$defs/tableflow.v1.CatalogIntegrationSnowflakeSpec"
},
{
"$ref": "#/$defs/tableflow.v1.CatalogIntegrationUnitySpec"
}
]
},
"environment": {
"allOf": [
{
"$ref": "#/$defs/GlobalObjectReference"
}
],
"description": "The environment to which the target Kafka cluster belongs."
},
"kafka_cluster": {
"allOf": [
{
"$ref": "#/$defs/EnvScopedObjectReference"
}
],
"description": "The kafka cluster of the topic for which Tableflow is enabled"
}
},
"x-enable-id": true,
"x-enable-listmeta": true,
"x-enable-objectmeta": true
},
"tableflow.v1.CatalogIntegrationStatus": {
"description": "The status of the Catalog Integration",
"type": "object",
"properties": {
"phase": {
"type": "string",
"x-extensible-enum": [
"PENDING",
"CONNECTED",
"FAILED"
],
"description": "The lifecycle phase of the catalog integration:\n\n PENDING: sync to catalog integration is pending;\n\n CONNECTED: catalog integration is connected and syncing;\n\n FAILED: catalog integration failed.\n",
"readOnly": true
},
"error_message": {
"type": "string",
"description": "Displayable error message if catalog integration is in a failed state.",
"readOnly": true
},
"last_sync_at": {
"type": "string",
"description": "The date and time at which the catalog was last synced. It is represented in RFC3339 format and is in UTC.\n",
"readOnly": true
}
},
"readOnly": true
},
"tableflow.v1.CatalogIntegrationUnitySpec": {
"type": "object",
"description": "The catalog integration connection config for Unity Catalog.",
"required": [
"kind",
"workspace_endpoint",
"catalog_name",
"client_id",
"client_secret"
],
"properties": {
"kind": {
"type": "string",
"enum": [
"Unity"
],
"description": "The type of the catalog integration."
},
"workspace_endpoint": {
"type": "string",
"description": "The Databricks workspace URL associated with the Unity Catalog."
},
"catalog_name": {
"type": "string",
"description": "The name of the catalog within Unity Catalog."
},
"client_id": {
"type": "string",
"description": "The OAuth client ID used to authenticate with the Unity Catalog."
},
"client_secret": {
"type": "string",
"description": "The OAuth client secret used for authentication with the Unity Catalog."
},
"custom_schema": {
"type": "string",
"description": "The custom schema name to use in Unity Catalog."
}
}
}
}
}