{ "$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-update-request-schema.json", "title": "tableflow.v1.CatalogIntegrationUpdateRequest", "description": "The desired state of the Catalog Integration", "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.CatalogIntegrationUpdateRequest", "type": "object", "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": [ "CatalogIntegrationUpdateRequest" ] }, "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": { "allOf": [ { "$ref": "#/$defs/tableflow.v1.CatalogIntegrationUpdateSpec" } ] } }, "$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 } } }, "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.CatalogIntegrationAwsGlueUpdateSpec": { "type": "object", "description": "The catalog integration Glue connection config for update operations.", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "AwsGlue" ], "description": "The type of the catalog integration.", "x-immutable": true }, "custom_database": { "type": "string", "description": "The custom database name to use in AWS Glue." } } }, "tableflow.v1.CatalogIntegrationSnowflakeUpdateSpec": { "type": "object", "description": "The catalog integration connection config for Snowflake Open Catalog (update operations).", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "Snowflake" ], "description": "The type of the catalog integration." }, "endpoint": { "description": "The catalog integration connection endpoint for Snowflake Open Catalog.", "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.CatalogIntegrationUnityUpdateSpec": { "type": "object", "description": "The catalog integration connection config for Unity Catalog.", "required": [ "kind" ], "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." } } }, "tableflow.v1.CatalogIntegrationUpdateSpec": { "type": "object", "description": "The desired state of the Catalog Integration", "required": [ "environment", "kafka_cluster" ], "properties": { "display_name": { "type": "string", "description": "The name of the catalog integration" }, "suspended": { "type": "boolean", "description": "Indicates whether the Catalog Integration should be suspended." }, "config": { "type": "object", "description": "The integration config", "oneOf": [ { "$ref": "#/$defs/tableflow.v1.CatalogIntegrationAwsGlueUpdateSpec" }, { "$ref": "#/$defs/tableflow.v1.CatalogIntegrationSnowflakeUpdateSpec" }, { "$ref": "#/$defs/tableflow.v1.CatalogIntegrationUnityUpdateSpec" } ] }, "environment": { "description": "The environment to which the target Kafka cluster belongs.", "allOf": [ { "$ref": "#/$defs/GlobalObjectReference" } ] }, "kafka_cluster": { "description": "The kafka cluster of the topic for which Tableflow is enabled", "allOf": [ { "$ref": "#/$defs/EnvScopedObjectReference" } ] } } } } }